DEENESPTFRRUARHIKOZHNL

struct ara::core::in_place_index_t

[SWS_CORE_04031] Upstream: RS_AP_00130

template <std::size_t Index> struct in_place_index_t {...};

Denote an index-distinguishing operation to be performed in-place. An instance of this type can be passed to certain constructors of ara::core::Variant 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 direkten In-Place-Konstruktion eines Werts in einem Variant anhand seines Index.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 39c809af4202 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Dient als Tag-Typ zur direkten In-Place-Konstruktion eines Werts in einem Variant anhand seines Index.

Die Klassenvorlage ara::core::in_place_index_t dient als Tag-Typ zur Kennzeichnung von In-Place-Konstruktionen an einem bestimmten Index innerhalb von ara::core::Variant, um unnötige Kopier- oder Verschiebevorgänge des Zielwerts zu vermeiden. Instanzen werden gezielt an passende Variant-Konstruktoren übergeben, wobei die Erzeugung über den Standardkonstruktor aus ara/core/utility.h erfolgt [SWS_CORE_04032]. Da der Konstruktor als explicit und noexcept definiert ist, sind implizite Typkonvertierungen ausgeschlossen und die Instanziierung ist garantiert ausnahmesicher [SWS_CORE_04032].

Kontext

Die Klassenvorlage ara::core::in_place_index_t ist eine Hilfsstruktur im Modul core der AUTOSAR Adaptive Platform und wird über die Header-Datei ara/core/utility.h zur Verfügung gestellt [SWS_CORE_04032]. Ihre funktionale Rolle besteht darin, als eindeutiger Tag-Typ für In-Place-Operationen zu dienen, die über einen numerischen Index unterschieden werden. Ein Exemplar dieses Typs wird an spezifische Konstruktoren von ara::core::Variant übergeben, um die Absicht anzuzeigen, dass die Konstruktion des enthaltenen Typs direkt vor Ort („in-place“) erfolgen soll, ohne dass Kopier- oder Verschiebevorgänge ausgeführt werden.

In der Kollaboration zwischen Aufrufer und dem Summentyp ara::core::Variant übernimmt ara::core::in_place_index_t die Funktion des Tag-Dispatchings. Interpretation: Die indexbasierte Unterscheidung dürfte insbesondere für Variant-Instanzen relevant sein, die mehrere Alternativen desselben Typs enthalten; in diesem Fall wäre eine Selektion allein über den Datentyp mehrdeutig, sodass die Adressierung über den Template-Parameter Index die exakte Typalternative im Typenpaket bestimmt. Frage Q-fc429a7c9e7e9362 (offen)

Lebenszyklus

Der Lebenszyklus von ara::core::in_place_index_t ist elementar und frei von komplexen Zustandsübergängen. Die Erzeugung erfolgt über den Standardkonstruktor explicit in_place_index_t() noexcept = default; [SWS_CORE_04032]. Durch die Kennzeichnung als explicit wird eine implizite Typumwandlung unterbunden, was eine explizite und typstrenge Instanziierung erzwingt [SWS_CORE_04032].

Da ara::core::in_place_index_t als reiner Indikator fungiert und keine internen Attribute oder dynamischen Ressourcen besitzt, ist das Objekt vollständig zustandslos. Die Zerstörung ist trivial und zieht keine Nebenwirkungen nach sich. Im Hinblick auf Nebenläufigkeit ist die Struktur inhärent threadsicher: Da keine veränderlichen Zustände existieren, können Instanzen ohne Synchronisationsaufwand über Thread-Grenzen hinweg verwendet werden.

Nutzungspfad

Der typische Ablauf zur Nutzung von ara::core::in_place_index_t gliedert sich in folgende Schritte:

  • Indexfestlegung: Der Aufrufer bestimmt den numerischen Template-Parameter Index, der die gewünschte Alternative innerhalb des ara::core::Variant repräsentiert.
  • Tag-Instanziierung: Eine Instanz von ara::core::in_place_index_t<Index> wird über den Standardkonstruktor erzeugt [SWS_CORE_04032]. Interpretation: In der Praxis dürfte die Erzeugung vorzugsweise als temporäres Argument direkt im Aufruf erfolgen. Frage Q-7c6292c2e97347b0 (offen)
  • Konstruktorübergabe: Die Tag-Instanz wird als erstes Argument an den Konstruktor von ara::core::Variant übergeben, gefolgt von den Konstruktorargumenten für den an dieser Position verwalteten Zieltyp.
  • Direkte Initialisierung: ara::core::Variant konstruiert das Zielobjekt direkt im bereitgestellten Speicherbereich ohne vorheriges Erzeugen temporärer Kopien.
In-Place-Konstruktion eines Variant-Werts über in_place_index_tAnwenderin_place_index_t<Index>VariantZielobjektexplicit in_place_index_t()Tag-InstanzVariant(in_place_index_t<Index>, args...)Index auflösenIn-Place-Konstruktion(args...)Objekt instanziiertInitialisierte Variant-Instanz

Sequenzdiagramm: Typischer Ablauf der In-Place-Konstruktion eines Variant-Werts über ara::core::in_place_index_t. Quellen: [SWS_CORE_04032]

Fehlerszenarien

Bezüglich der Fehlertoleranz zeichnet sich ara::core::in_place_index_t durch maximale Robustheit aus. Der Standardkonstruktor ist mit noexcept spezifiziert und gilt als ausnahmesicher („exception safe“) [SWS_CORE_04032]. Es existieren weder Fehlercodes noch definierte Fehlerzustände für diese Struktur.

Fehlerhafte Verwendungen bei impliziten Konvertierungen werden durch die Spezifikation als explicit zur Übersetzungszeit abgewiesen [SWS_CORE_04032]. Sollte während der Ausführung des In-Place-Konstruktors von ara::core::Variant eine Ausnahme ausgelöst werden, geht diese nicht von ara::core::in_place_index_t aus, sondern liegt im Fehlerverhalten des konstruierten Zieltyps begründet.

Dieser Leitfaden wurde durch eine KI auf Basis der AUTOSAR-Spezifikation R25-11 generiert.

UML-Klassendiagramm

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

G nara__core__in_place_index_t938 «struct» in_place_index_t + in_place_index_t()

Konstruktoren und Destruktor

Default constructor

explicit in_place_index_t () noexcept=default;

Dokumentation der Methoden

function in_place_index_t [SWS_CORE_04032] Upstream: RS_AP_00130

explicit in_place_index_t () noexcept=default;

Default constructor

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

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

Record
AUTOSAR/AP/record/SWS_CORE_04032
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_04032@rel:R25-11#8aa0e995
Content hash
8aa0e995
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_04032
Status: valid/unmigrated Version: rel:R25-11#ed0aabbb 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_04032@rel:R25-11#ed0aabbb
Point-in-Time History:
Recorded Revisions (8):
  • R25-11rel:R25-11#8aa0e9952026-09-30
  • R19-11rel:R19-11#1dfe84832026-10-14
  • R20-11rel:R20-11#98f310882026-10-14
  • R21-11rel:R21-11#98f310882026-10-14
  • R22-11rel:R22-11#b23504bd2026-10-14
  • R23-11rel:R23-11#b523cc942026-10-14
  • R24-11rel:R24-11#a52ebef82026-10-14
  • R25-11rel:R25-11#ed0aabbb2026-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