DEENESPTFRRUARHIKOZHNL

struct ara::core::in_place_t

[SWS_CORE_04011] Upstream: RS_AP_00130

struct in_place_t {...};

Denote an operation to be performed in-place. An instance of this type can be passed to certain constructors of ara::core::Optional to denote the intention that construction of the contained type shall be done in-place, i.e. without any copying taking place.

Header-Datei#include "ara/core/utility.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core

User GuideAI-GEGENEREERD

Dient als tag-type om in-place-constructies in containers zoals Optional aan te duiden zonder kopieeracties.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 011b812476bc Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Dient als tag-type om in-place-constructies in containers zoals Optional aan te duiden zonder kopieeracties.

De structuur ara::core::in_place_t dient als tag-type ter aanduiding van bewerkingen waarbij objecten direct ter plekke zonder kopieeracties moeten worden geconstrueerd [SWS_CORE_04012]. Een instantie wordt doorgaans doorgegeven aan constructors van wrapper-classes zoals ara::core::Optional om de argumenten direct door te sturen naar de constructor van het ingekapselde type. Het aanmaken vindt plaats via een expliciete default-constructor die als uitzonderingsveilig en noexcept is gedefinieerd [SWS_CORE_04012]. Aangezien het type toestandloos is, bestaan er geen foutscenario's of complexe levenscyclusfasen.

Context

De structuur ara::core::in_place_t is een tag-type binnen de module core van het AUTOSAR Adaptive Platform en wordt via het headerbestand #include "ara/core/utility.h" ter beschikking gesteld [SWS_CORE_04012]. In moderne C++-interfaces dient een dergelijk tag-type als semantisch besturingselement voor overloads bij het aanmaken van objecten. De primaire rol van ara::core::in_place_t bestaat erin bewerkingen expliciet als in-place-constructies te declareren. Een instantie van dit type wordt doorgegeven aan gespecialiseerde constructors van wrapper-classes zoals ara::core::Optional om de eenduidige intentie te signaleren dat het in de container gehouden object direct ter plekke moet worden geconstrueerd.

Door dit mechanisme vervalt de noodzaak om buiten de container een tijdelijk object aan te maken dat vervolgens via een copy- of move-constructor naar de container zou moeten worden overgebracht. De class fungeert zodoende als tussenpersoon tussen de aanroepende applicatiecode en de initialisatieroutines van omsluitende types, waardoor zij met name voor resourcebeheer en efficiëntie in de context van veiligheidskritische toepassingen van belang is.

Levenscyclus

De levenscyclus van ara::core::in_place_t is minimalistisch van opzet. De class declareert een expliciete default-constructor explicit in_place_t() noexcept = default; die is aangeduid als noexcept [SWS_CORE_04012]. Als toestandloze tag-structuur bezit het type generlei membervariabelen of dynamische resources. Interpretatie: De structuur dient uitsluitend als type-markering voor overload-resolutie door de compiler en kapselt geen runtime-gegevens in. Vraag Q-2fd481aaddfdfbf3 (open) Dienovereenkomstig bestaan er noch complexe toestanden, noch overgangen tussen verschillende levensfasen.

Instanties van ara::core::in_place_t worden gewoonlijk direct op het aanroeppunt als tijdelijke waarden aangemaakt en onmiddellijk aan de doelmethode doorgegeven. Er ontstaan geen eigendomsverhoudingen met betrekking tot beheerde resources en bij de vernietiging van het object zijn er geen enkele opruimwerkzaamheden nodig. Aangezien het type volkomen onveranderlijk en toestandloos is, zijn instantiëring en vernietiging van nature veilig voor gelijktijdigheid en kunnen ze zonder gevaar over meerdere threads heen zonder synchronisatiemechanismen worden gebruikt.

Gebruikspad

Het typische gebruikstraject van ara::core::in_place_t concentreert zich op het direct doorsturen van constructie-argumenten naar wrappers zoals ara::core::Optional. Allereerst includeert de applicatie het vereiste headerbestand #include "ara/core/utility.h" [SWS_CORE_04012]. Bij de declaratie of initialisatie van een ara::core::Optional-object geeft de ontwikkelaar een instantie van ara::core::in_place_t als eerste argument door aan de constructor. De daaropvolgende argumenten komen exact overeen met de parameterlijst van de constructor van het type dat in de Optional moet worden gehouden.

Door de evaluatie van de tag roept de containerconstructor intern direct de passende constructor van het payload-object in het interne geheugengebied aan. Dit voorkomt onnodige kopieer- en verplaatsingsacties, wat met name voordelig is bij types die dure kopieeroperaties met zich meebrengen of waarvan de copy-constructor is verwijderd. Na de succesvolle aanroep van de doelconstructor is het doel van de tag volledig bereikt en wordt de tijdelijke tag-instantie automatisch vernietigd.

Foutscenario's

Met het oog op foutscenario's en uitzonderingsveiligheid gedraagt ara::core::in_place_t zich volledig foutvrij. Conform de specificatie is de default-constructor gedeclareerd als noexcept en heeft deze de classificatie exception safe [SWS_CORE_04012]. Er bestaan geen precondities voor het aanroepen van de default-constructor en er worden noch foutcodes, noch C++-uitzonderingen gegenereerd.

Mocht tijdens een in-place-constructie een fout optreden, dan ligt de oorzaak niet in ara::core::in_place_t, maar uitsluitend in de constructor van het omsloten payload-type. Indien diens constructor bij ongeldige parameters uitzonderingen genereert of fouttoestanden meldt, treden de gedefinieerde foutafhandelingsmechanismen van de omsluitende container of van het doeltype in werking. Voor in_place_t zelf zijn geen postcondities of opruimwerkzaamheden in geval van een fout vereist.

Deze class-handleiding is gebaseerd op de AUTOSAR Adaptive-specificaties voor de module core en is automatisch samengesteld.

UML-klassendiagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__core__in_place_t356 «struct» in_place_t + in_place_t()

Constructors en destructor

in_place_t functie

Default constructor

explicit in_place_t () noexcept=default;

Documentatie van de methoden

functie in_place_t [SWS_CORE_04012] Upstream: RS_AP_00130

explicit in_place_t () noexcept=default;

Default constructor

Header-Datei#include "ara/core/utility.h"
Scopestruct ara::core::in_place_t
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_04012
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_04012@rel:R25-11#cd6f9fe6
Content hash
cd6f9fe6
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_04012
Status: valid/unmigrated Version: rel:R25-11#60e4f564 Versionshistorie & Revisions (1 transition, 8 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_04012@rel:R25-11#60e4f564
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#77f3b9952026-09-30
  • R19-11rel:R19-11#63f31e082026-10-14
  • R20-11rel:R20-11#388fe03d2026-10-14
  • R21-11rel:R21-11#388fe03d2026-10-14
  • R22-11rel:R22-11#5a0e98052026-10-14
  • R23-11rel:R23-11#b9ae75262026-10-14
  • R24-11rel:R24-11#5501994f2026-10-14
  • R25-11rel:R25-11#60e4f5642026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill