DEENESPTFRRUARHIKOZHNL

structure 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

Guide utilisateurGÉNÉRÉ PAR IA

Sert de type tag pour la construction directe in situ d'une valeur dans un Variant à partir de son index.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 39c809af4202 Provenance Questions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert de type tag pour la construction directe in situ d'une valeur dans un Variant à partir de son index.

Le modèle de classe ara::core::in_place_index_t sert de type tag pour identifier des constructions in situ à un index déterminé au sein de ara::core::Variant, afin d'éviter les opérations inutiles de copie ou de déplacement de la valeur cible. Les instances sont transmises de manière ciblée aux constructeurs de Variant correspondants, la création s'effectuant via le constructeur par défaut issu de ara/core/utility.h [SWS_CORE_04032]. Le constructeur étant défini comme explicit et noexcept, les conversions de type implicites sont exclues et l'instanciation est garantie sans exception [SWS_CORE_04032].

Contexte

Le modèle de classe ara::core::in_place_index_t est une structure utilitaire du module core d'AUTOSAR Adaptive Platform et est mis à disposition via le fichier d'en-tête ara/core/utility.h [SWS_CORE_04032]. Son rôle fonctionnel consiste à servir de type tag unique pour les opérations in situ différenciées par un index numérique. Un exemplaire de ce type est transmis à des constructeurs spécifiques de ara::core::Variant afin d'indiquer l'intention que la construction du type contenu s'effectue directement sur place (« in-place »), sans exécuter d'opérations de copie ou de déplacement.

Dans la collaboration entre l'appelant et le type somme ara::core::Variant, ara::core::in_place_index_t prend en charge la fonction de tag dispatching. Interprétation : la distinction basée sur l'index devrait être particulièrement pertinente pour les instances de Variant contenant plusieurs alternatives du même type ; dans ce cas, une sélection reposant uniquement sur le type de données serait ambiguë, de sorte que l'adressage via le paramètre de modèle Index détermine l'alternative de type exacte dans le paquet de types. Question Q-fc429a7c9e7e9362 (ouverte)

Cycle de vie

Le cycle de vie de ara::core::in_place_index_t est élémentaire et dépourvu de transitions d'état complexes. La création s'effectue via le constructeur par défaut explicit in_place_index_t() noexcept = default; [SWS_CORE_04032]. La qualification en tant que explicit empêche toute conversion de type implicite, ce qui impose une instanciation explicite et strictement typée [SWS_CORE_04032].

Comme ara::core::in_place_index_t agit comme un pur indicateur et ne possède ni attributs internes ni ressources dynamiques, l'objet est totalement sans état. Sa destruction est triviale et n'entraîne aucun effet secondaire. En matière de concurrence, la structure est intrinsèquement thread-safe : en l'absence d'états mutables, les instances peuvent être utilisées sans effort de synchronisation au-delà des frontières des threads.

Parcours d'utilisation

Le déroulement typique pour l'utilisation de ara::core::in_place_index_t se divise en les étapes suivantes :

  • Définition de l'index : l'appelant détermine le paramètre de modèle numérique Index, qui représente l'alternative souhaitée au sein du ara::core::Variant.
  • Instanciation du tag : une instance de ara::core::in_place_index_t<Index> est créée via le constructeur par défaut [SWS_CORE_04032]. Interprétation : en pratique, la création devrait de préférence s'effectuer comme argument temporaire directement au sein de l'appel. Question Q-7c6292c2e97347b0 (ouverte)
  • Transmission au constructeur : l'instance de tag est transmise comme premier argument au constructeur de ara::core::Variant, suivie des arguments de constructeur pour le type cible géré à cette position.
  • Initialisation directe : ara::core::Variant construit l'objet cible directement dans la zone de mémoire allouée sans créer préalablement de copies temporaires.
Construction in situ d'une valeur Variant via in_place_index_tAnwenderin_place_index_t<Index>VarianteZielobjektexplicit in_place_index_t()Tag-InstanzVariant(in_place_index_t<Index>, args...)Résoudre l'indiceIn-Place-Konstruktion(args...)Objekt instanziiertInitialisierte Variant-Instanz

Diagramme de séquence : déroulement typique de la construction in situ d'une valeur de Variant via ara::core::in_place_index_t. Sources : [SWS_CORE_04032]

Scénarios d'erreur

Concernant la tolérance aux pannes, ara::core::in_place_index_t se caractérise par une robustesse maximale. Le constructeur par défaut est spécifié avec noexcept et est réputé sûr vis-à-vis des exceptions (« exception safe ») [SWS_CORE_04032]. Il n'existe ni codes d'erreur ni états d'erreur définis pour cette structure.

Les utilisations erronées lors de conversions implicites sont rejetées au moment de la compilation grâce à la spécification en tant que explicit [SWS_CORE_04032]. Si une exception devait être levée pendant l'exécution du constructeur in situ de ara::core::Variant, celle-ci ne proviendrait pas de ara::core::in_place_index_t, mais trouverait sa cause dans le comportement d'erreur du type cible construit.

Ce guide a été généré par une IA sur la base de la spécification AUTOSAR R25-11.

Diagramme de classes UML

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()

Constructeurs et destructeur

Default constructor

explicit in_place_index_t () noexcept=default;

Documentation des méthodes

fonction 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#c976717f
Content hash
c976717f
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