DEENESPTFRRUARHIKOZHNL

структура 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

Руководство пользователяСОЗДАНО ИИ

Служит тег-типом для прямого in-place-конструирования значения в Variant по его индексу.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 39c809af4202 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Служит тег-типом для прямого in-place-конструирования значения в Variant по его индексу.

Шаблон класса ara::core::in_place_index_t служит тег-типом для обозначения in-place-конструирования по определенному индексу внутри ara::core::Variant во избежание ненужных операций копирования или перемещения целевого значения. Экземпляры целенаправленно передаются подходящим конструкторам Variant, при этом создание осуществляется через конструктор по умолчанию из ara/core/utility.h [SWS_CORE_04032]. Поскольку конструктор определен как explicit и noexcept, неявные преобразования типов исключены, а создание экземпляра гарантированно является исключение-безопасным [SWS_CORE_04032].

Контекст

Шаблон класса ara::core::in_place_index_t представляет собой вспомогательную структуру в модуле core платформы AUTOSAR Adaptive Platform и предоставляется через заголовочный файл ara/core/utility.h [SWS_CORE_04032]. Его функциональная роль заключается в том, чтобы служить уникальным тег-типом для in-place-операций, различаемых по числовому индексу. Экземпляр этого типа передается специфическим конструкторам ara::core::Variant, чтобы указать намерение выполнить конструирование содержащегося типа непосредственно на месте («in-place») без выполнения операций копирования или перемещения.

Во взаимодействии между вызывающей стороной и типом-суммой ara::core::Variant шаблон ara::core::in_place_index_t берет на себя функцию тег-диспетчеризации (tag dispatching). Интерпретация: дифференциация на основе индексов, вероятно, особенно актуальна для экземпляров Variant, содержащих несколько альтернатив одного и того же типа; в этом случае выбор исключительно по типу данных был бы неоднозначным, поэтому адресация через параметр шаблона Index определяет точную альтернативу типа в пакете типов. Вопрос Q-fc429a7c9e7e9362 (открытый)

Жизненный цикл

Жизненный цикл ara::core::in_place_index_t элементарен и свободен от сложных переходов состояний. Создание выполняется через конструктор по умолчанию explicit in_place_index_t() noexcept = default; [SWS_CORE_04032]. Благодаря обозначению как explicit предотвращается неявное преобразование типов, что обеспечивает явное создание экземпляров со строгой типизацией [SWS_CORE_04032].

Поскольку ara::core::in_place_index_t функционирует как чистый индикатор и не имеет внутренних атрибутов или динамических ресурсов, объект полностью лишен состояния (stateless). Уничтожение тривиально и не влечет за собой побочных эффектов. С точки зрения параллелизма структура по своей сути потокобезопасна: поскольку изменяемые состояния отсутствуют, экземпляры могут использоваться через границы потоков без затрат на синхронизацию.

Путь использования

Типичный порядок использования ara::core::in_place_index_t делится на следующие шаги:

  • Определение индекса: вызывающая сторона определяет числовой параметр шаблона Index, представляющий желаемую альтернативу внутри ara::core::Variant.
  • Создание экземпляра тега: экземпляр ara::core::in_place_index_t<Index> создается через конструктор по умолчанию [SWS_CORE_04032]. Интерпретация: на практике создание, вероятно, предпочтительно выполняется в качестве временного аргумента непосредственно при вызове. Вопрос Q-7c6292c2e97347b0 (открытый)
  • Передача в конструктор: экземпляр тега передается в качестве первого аргумента конструктору ara::core::Variant, за которым следуют аргументы конструктора для целевого типа, управляемого в этой позиции.
  • Прямая инициализация: ara::core::Variant конструирует целевой объект непосредственно в выделенной области памяти без предварительного создания временных копий.
Конструирование значения Variant на месте (in-place) через in_place_index_tAnwenderin_place_index_t<Index>VariantZielobjektexplicit in_place_index_t()Tag-InstanzVariant(in_place_index_t<Index>, args...)разрешить индексIn-Place-Konstruktion(args...)Objekt instanziiertInitialisierte Variant-Instanz

Диаграмма последовательности: типичный процесс in-place-конструирования значения Variant через ara::core::in_place_index_t. Источники: [SWS_CORE_04032]

Сценарии ошибок

Что касается отказоустойчивости, ara::core::in_place_index_t отличается максимальной надежностью. Конструктор по умолчанию специфицирован с noexcept и считается безопасным относительно исключений («exception safe») [SWS_CORE_04032]. Для этой структуры не существует ни кодов ошибок, ни определенных состояний ошибок.

Ошибочное использование при неявных преобразованиях отклоняется во время компиляции за счет спецификации в качестве explicit [SWS_CORE_04032]. Если во время выполнения in-place-конструктора ara::core::Variant возникает исключение, оно исходит не от ara::core::in_place_index_t, а обусловлено поведением при ошибках конструируемого целевого типа.

Данное руководство было сгенерировано ИИ на основе спецификации AUTOSAR R25-11.

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

Конструкторы и деструктор

in_place_index_t функция

Default constructor

explicit in_place_index_t () noexcept=default;

Документация методов

функция 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#27a301b7
Content hash
27a301b7
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