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 GuideKI-GENERIERT

Dient als Tag-Typ zur Kennzeichnung von In-Place-Konstruktionen in Containern wie Optional ohne Kopiervorgänge.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 011b812476bc Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient als Tag-Typ zur Kennzeichnung von In-Place-Konstruktionen in Containern wie Optional ohne Kopiervorgänge.

Die Struktur ara::core::in_place_t dient als Tag-Typ zur Kennzeichnung von Operationen, bei denen Objekte direkt an Ort und Stelle ohne Kopiervorgänge konstruiert werden sollen [SWS_CORE_04012]. Eine Instanz wird typischerweise an Konstruktoren von Wrapper-Klassen wie ara::core::Optional übergeben, um die Argumente direkt an den Konstruktor des enthaltenen Typs weiterzuleiten. Die Erzeugung erfolgt über einen expliziten Standardkonstruktor, der als ausnahmesicher und noexcept definiert ist [SWS_CORE_04012]. Da der Typ zustandslos ist, existieren keine Fehlerszenarien oder komplexen Lebenszyklusphasen.

Kontext

Die Struktur ara::core::in_place_t ist ein Tag-Typ innerhalb des Moduls core der AUTOSAR Adaptive Platform und wird über die Header-Datei #include "ara/core/utility.h" bereitgestellt [SWS_CORE_04012]. In modernen C++-Schnittstellen dient ein solcher Tag-Typ als semantisches Steuerungselement für Überladungen bei der Objekterzeugung. Die primäre Rolle von ara::core::in_place_t besteht darin, Operationen explizit als In-Place-Konstruktionen zu deklarieren. Eine Instanz dieses Typs wird an spezialisierte Konstruktoren von Wrapper-Klassen wie ara::core::Optional übergeben, um die eindeutige Absicht zu signalisieren, dass das im Container gehaltene Objekt direkt an Ort und Stelle konstruiert werden soll.

Durch diesen Mechanismus entfällt die Notwendigkeit, außerhalb des Containers ein temporäres Objekt zu erzeugen, das anschließend per Kopier- oder Verschiebekonstruktor in den Container übertragen werden müsste. Die Klasse fungiert somit als Vermittler zwischen dem aufrufenden Anwendungscode und den Initialisierungsroutinen umschließender Typen, wodurch sie insbesondere für Ressourcenverwaltung und Effizienz im Kontext sicherheitskritischer Anwendungen von Bedeutung ist.

Lebenszyklus

Der Lebenszyklus von ara::core::in_place_t ist minimalistisch gestaltet. Die Klasse deklariert einen expliziten Standardkonstruktor explicit in_place_t() noexcept = default;, der als noexcept ausgezeichnet ist [SWS_CORE_04012]. Als zustandslose Tag-Struktur besitzt der Typ keinerlei Membervariablen oder dynamische Ressourcen. Interpretation: Die Struktur dient ausschließlich als Typ-Markierung zur Überladungsauflösung beim Compiler und kapselt keine Laufzeitdaten. Frage Q-2fd481aaddfdfbf3 (offen) Entsprechend existieren weder komplexe Zustände noch Übergänge zwischen unterschiedlichen Lebensphasen.

Instanzen von ara::core::in_place_t werden üblicherweise direkt am Aufrufpunkt als temporäre Werte erzeugt und unmittelbar an die Zielmethode weitergegeben. Es entstehen keine Besitzverhältnisse an verwalteten Ressourcen, und bei der Zerstörung des Objekts fallen keinerlei Aufräumarbeiten an. Da der Typ vollkommen unveränderlich und zustandslos ist, sind Instanziierung und Zerstörung von Natur aus nebenläufigkeitssicher und können gefahrlos über mehrere Threads hinweg ohne Synchronisationsmechanismen genutzt werden.

Nutzungspfad

Der typische Nutzungspfad von ara::core::in_place_t konzentriert sich auf die direkte Weiterleitung von Konstruktionsargumenten an Wrapper wie ara::core::Optional. Zunächst bindet die Anwendung die erforderliche Header-Datei #include "ara/core/utility.h" ein [SWS_CORE_04012]. Bei der Deklaration oder Initialisierung eines ara::core::Optional-Objekts übergibt der Entwickler eine Instanz von ara::core::in_place_t als erstes Argument an den Konstruktor. Die nachfolgenden Argumente entsprechen exakt der Parameterliste des Konstruktors des Typs, der im Optional gehalten werden soll.

Durch die Auswertung des Tags ruft der Containerkonstruktor intern direkt den passenden Konstruktor des Nutzdatenobjekts im internen Speicherbereich auf. Dies verhindert unnötige Kopier- und Verschiebevorgänge, was insbesondere bei Typen vorteilhaft ist, die teure Kopiervorgänge nach sich ziehen oder deren Kopierkonstruktor gelöscht ist. Nach dem erfolgreichen Aufruf des Zielkonstruktors ist der Zweck des Tags vollständig erfüllt, und die temporäre Tag-Instanz wird automatisch zerstört.

Fehlerszenarien

In Hinblick auf Fehlerszenarien und Ausnahmesicherheit verhält sich ara::core::in_place_t vollständig fehlerfrei. Gemäß Spezifikation ist der Standardkonstruktor als noexcept deklariert und besitzt die Einstufung exception safe [SWS_CORE_04012]. Es existieren keine Vorbedingungen für den Aufruf des Standardkonstruktors, und es werden weder Fehlercodes noch C++-Ausnahmen ausgelöst.

Sollte während einer In-Place-Konstruktion ein Fehler auftreten, liegt die Ursache nicht in ara::core::in_place_t, sondern ausschließlich im Konstruktor des umschlossenen Nutzdatentyps. Falls dessen Konstruktor bei ungültigen Parametern Ausnahmen wirft oder Fehlerzustände meldet, greifen die definierten Fehlerbehandlungsmechanismen des umschließenden Containers oder des Zieltyps. Für in_place_t selbst sind keine Nachbedingungen oder Aufräumarbeiten im Fehlerfall erforderlich.

Dieser Klassen-Leitfaden basiert auf den AUTOSAR-Adaptive-Spezifikationen für das Modul core und wurde automatisch kuratiert.

UML-Klassendiagramm

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

G nara__core__in_place_t356 «struct» in_place_t + in_place_t()

Konstruktoren und Destruktor

in_place_t function

Default constructor

explicit in_place_t () noexcept=default;

Dokumentation der Methoden

function 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#77f3b995
Content hash
77f3b995
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