DEENESPTFRRUARHIKOZHNL

estructura 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

Guía del usuarioGENERADO POR IA

Sirve como tipo etiqueta (tag) para la construcción directa in-place de un valor en un Variant según su índice.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 39c809af4202 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Sirve como tipo etiqueta (tag) para la construcción directa in-place de un valor en un Variant según su índice.

La plantilla de clase ara::core::in_place_index_t sirve como tipo etiqueta para identificar construcciones in-place en un índice determinado dentro de ara::core::Variant, con el fin de evitar operaciones innecesarias de copia o movimiento del valor de destino. Las instancias se pasan específicamente a los constructores de Variant adecuados, realizándose la creación mediante el constructor por defecto de ara/core/utility.h [SWS_CORE_04032]. Dado que el constructor está definido como explicit y noexcept, quedan excluidas las conversiones implícitas de tipo y la instanciación está garantizada como libre de excepciones [SWS_CORE_04032].

Contexto

La plantilla de clase ara::core::in_place_index_t es una estructura auxiliar en el módulo core de la AUTOSAR Adaptive Platform y se pone a disposición mediante el archivo de encabezado ara/core/utility.h [SWS_CORE_04032]. Su función consiste en servir como tipo etiqueta unívoco para operaciones in-place que se diferencian mediante un índice numérico. Se pasa un ejemplar de este tipo a constructores específicos de ara::core::Variant para indicar la intención de que la construcción del tipo contenido debe realizarse directamente in situ («in-place»), sin que se ejecuten operaciones de copia o movimiento.

En la colaboración entre el invocador y el tipo suma ara::core::Variant, ara::core::in_place_index_t asume la función de despacho por etiquetas (tag dispatching). Interpretación: es probable que la diferenciación basada en índices sea relevante en particular para aquellas instancias de Variant que contienen múltiples alternativas del mismo tipo; en tal caso, una selección basada únicamente en el tipo de datos resultaría ambigua, de modo que el direccionamiento mediante el parámetro de plantilla Index determina la alternativa de tipo exacta en el paquete de tipos. Pregunta Q-fc429a7c9e7e9362 (abierta)

Ciclo de vida

El ciclo de vida de ara::core::in_place_index_t es elemental y está libre de transiciones de estado complejas. La creación se efectúa mediante el constructor por defecto explicit in_place_index_t() noexcept = default; [SWS_CORE_04032]. Mediante la designación como explicit se impide una conversión de tipos implícita, lo que obliga a una instanciación explícita y de estricta tipificación [SWS_CORE_04032].

Dado que ara::core::in_place_index_t actúa como mero indicador y no posee atributos internos ni recursos dinámicos, el objeto carece completamente de estado. Su destrucción es trivial y no conlleva efectos secundarios. Con respecto a la concurrencia, la estructura es intrínsecamente segura para subprocesos: puesto que no existen estados mutables, las instancias pueden utilizarse a través de límites de subprocesos sin sobrecarga de sincronización.

Ruta de uso

El flujo típico para el uso de ara::core::in_place_index_t se divide en los siguientes pasos:

  • Determinación del índice: el invocador determina el parámetro de plantilla numérico Index, el cual representa la alternativa deseada dentro de ara::core::Variant.
  • Instanciación de la etiqueta: se crea una instancia de ara::core::in_place_index_t<Index> mediante el constructor por defecto [SWS_CORE_04032]. Interpretación: en la práctica, es de suponer que la creación se realice preferentemente como un argumento temporal directamente en la invocación. Pregunta Q-7c6292c2e97347b0 (abierta)
  • Paso al constructor: la instancia de etiqueta se pasa como primer argumento al constructor de ara::core::Variant, seguida de los argumentos de constructor para el tipo de destino gestionado en dicha posición.
  • Inicialización directa: ara::core::Variant construye el objeto de destino directamente en el área de memoria proporcionada, sin la creación previa de copias temporales.
Construcción in situ de un valor Variant mediante in_place_index_tAnwenderin_place_index_t<Index>VarianteZielobjektexplicit in_place_index_t()Tag-InstanzVariant(in_place_index_t<Index>, args...)Resolver índiceIn-Place-Konstruktion(args...)Objekt instanziiertInitialisierte Variant-Instanz

Diagrama de secuencia: flujo típico de la construcción in-place de un valor Variant mediante ara::core::in_place_index_t. Fuentes: [SWS_CORE_04032]

Escenarios de error

En cuanto a la tolerancia a fallos, ara::core::in_place_index_t se caracteriza por una robustez máxima. El constructor por defecto está especificado con noexcept y se considera seguro frente a excepciones («exception safe») [SWS_CORE_04032]. No existen ni códigos de error ni estados de error definidos para esta estructura.

Los usos erróneos en conversiones implícitas son rechazados en tiempo de compilación gracias a su especificación como explicit [SWS_CORE_04032]. En caso de que se lance una excepción durante la ejecución del constructor in-place de ara::core::Variant, esta no se origina en ara::core::in_place_index_t, sino que se debe al comportamiento de fallo del tipo de destino que se está construyendo.

Esta guía fue generada por una IA sobre la base de la especificación AUTOSAR R25-11.

Diagrama de clases 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()

Constructores y destructor

Default constructor

explicit in_place_index_t () noexcept=default;

Documentación de los métodos

función 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#81fe1899
Content hash
81fe1899
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