DEENESPTFRRUARHIKOZHNL

structure 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

Guide utilisateurGÉNÉRÉ PAR IA

Sert de type tag pour marquer les constructions in situ dans des conteneurs tels qu'Optional sans opérations de copie.
GÉNÉRÉ PAR IA non vérifié Modèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : 011b812476bc Provenance Questions ouvertes (1)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand

Sert de type tag pour marquer les constructions in situ dans des conteneurs tels qu'Optional sans opérations de copie.

La structure ara::core::in_place_t sert de type tag pour identifier les opérations où des objets doivent être construits directement sur place sans opérations de copie [SWS_CORE_04012]. Une instance est typiquement transmise aux constructeurs de classes enveloppes telles que ara::core::Optional afin de relayer directement les arguments au constructeur du type contenu. La création s'effectue via un constructeur par défaut explicite, défini comme sûr vis-à-vis des exceptions et noexcept [SWS_CORE_04012]. Comme le type est sans état, il n'existe aucun scénario d'erreur ni phase complexe de cycle de vie.

Contexte

La structure ara::core::in_place_t est un type tag au sein du module core d'AUTOSAR Adaptive Platform et est fournie via le fichier d'en-tête #include "ara/core/utility.h" [SWS_CORE_04012]. Dans les interfaces C++ modernes, un tel type tag sert d'élément de contrôle sémantique pour la résolution des surcharges lors de la création d'objets. Le rôle principal de ara::core::in_place_t consiste à déclarer explicitement des opérations comme des constructions in situ. Une instance de ce type est transmise à des constructeurs spécialisés de classes enveloppes telles que ara::core::Optional, afin de signaler l'intention sans équivoque que l'objet conservé dans le conteneur doit être construit directement sur place.

Grâce à ce mécanisme, la nécessité de créer en dehors du conteneur un objet temporaire qui devrait ensuite être transféré dans le conteneur par constructeur de copie ou de déplacement disparaît. La classe fait ainsi office d'intermédiaire entre le code d'application appelant et les routines d'initialisation des types englobants, ce qui lui confère une importance particulière pour la gestion des ressources et l'efficacité dans le contexte d'applications critiques pour la sécurité.

Cycle de vie

Le cycle de vie de ara::core::in_place_t est de conception minimaliste. La classe déclare un constructeur par défaut explicite explicit in_place_t() noexcept = default; qualifié de noexcept [SWS_CORE_04012]. En tant que structure tag sans état, le type ne possède aucune variable membre ni ressource dynamique. Interprétation : la structure sert exclusivement de marqueur de type pour la résolution de surcharges par le compilateur et n'encapsule aucune donnée d'exécution. Question Q-2fd481aaddfdfbf3 (ouverte) Par conséquent, il n'existe ni états complexes ni transitions entre différentes phases de vie.

Les instances de ara::core::in_place_t sont habituellement créées directement au point d'appel comme valeurs temporaires et immédiatement transmises à la méthode cible. Elles n'engendrent aucune relation de possession sur des ressources gérées, et aucun travail de nettoyage n'est requis lors de la destruction de l'objet. Comme le type est parfaitement immuable et sans état, l'instanciation et la destruction sont naturellement sûres vis-à-vis de la concurrence et peuvent être utilisées sans danger à travers plusieurs threads sans mécanisme de synchronisation.

Parcours d'utilisation

Le chemin d'utilisation typique de ara::core::in_place_t se concentre sur le transfert direct des arguments de construction à des wrappers tels que ara::core::Optional. Dans un premier temps, l'application inclut le fichier d'en-tête requis #include "ara/core/utility.h" [SWS_CORE_04012]. Lors de la déclaration ou de l'initialisation d'un objet ara::core::Optional, le développeur transmet une instance de ara::core::in_place_t comme premier argument au constructeur. Les arguments suivants correspondent exactement à la liste des paramètres du constructeur du type destiné à être contenu dans le Optional.

Grâce à l'évaluation du tag, le constructeur du conteneur appelle directement en interne le constructeur approprié de l'objet de données utiles dans la zone de mémoire interne. Cela évite les opérations superflues de copie et de déplacement, ce qui est particulièrement avantageux pour les types entraînant des copies coûteuses ou dont le constructeur de copie a été supprimé. Une fois le constructeur cible appelé avec succès, l'objectif du tag est pleinement atteint et l'instance temporaire du tag est automatiquement détruite.

Scénarios d'erreur

En ce qui concerne les scénarios d'erreur et la sécurité vis-à-vis des exceptions, ara::core::in_place_t est totalement exempt d'erreur. Selon la spécification, le constructeur par défaut est déclaré comme noexcept et possède la classification exception safe [SWS_CORE_04012]. Il n'existe aucune précondition pour l'appel du constructeur par défaut, et aucun code d'erreur ni exception C++ n'est déclenché.

Si une erreur devait survenir pendant une construction sur place (in-place), la cause ne réside pas dans ara::core::in_place_t, mais exclusivement dans le constructeur du type de données utiles encapsulé. Si son constructeur lève des exceptions ou signale des états d'erreur en présence de paramètres non valides, les mécanismes de gestion d'erreur définis du conteneur englobant ou du type cible interviennent. Pour in_place_t lui-même, aucune postcondition ni opération de nettoyage n'est requise en cas d'erreur.

Ce guide de classe est basé sur les spécifications AUTOSAR Adaptive pour le module core et a été automatiquement organisé.

Diagramme de classes UML

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

G nara__core__in_place_t356 «struct» in_place_t + in_place_t()

Constructeurs et destructeur

in_place_t fonction

Default constructor

explicit in_place_t () noexcept=default;

Documentation des méthodes

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