DEENESPTFRRUARHIKOZHNL

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

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

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

Служит тег-типом для обозначения in-place-конструирования в контейнерах, таких как Optional, без операций копирования.

Структура ara::core::in_place_t служит тег-типом для обозначения операций, при которых объекты должны конструироваться непосредственно на месте без операций копирования [SWS_CORE_04012]. Экземпляр обычно передается конструкторам классов-оберток, таких как ara::core::Optional, для прямой пересылки аргументов конструктору содержащегося типа. Создание осуществляется через явный конструктор по умолчанию, который определен как исключение-безопасный и noexcept [SWS_CORE_04012]. Поскольку тип не имеет состояния, сценарии сбоев или сложные фазы жизненного цикла отсутствуют.

Контекст

Структура ara::core::in_place_t представляет собой теговый тип внутри модуля core платформы AUTOSAR Adaptive Platform и предоставляется через заголовочный файл #include "ara/core/utility.h" [SWS_CORE_04012]. В современных интерфейсах C++ такой теговый тип служит семантическим элементом управления перегрузками при создании объектов. Основная роль ara::core::in_place_t заключается в явном объявлении операций как конструирования на месте (in-place). Экземпляр этого типа передается специализированным конструкторам классов-оберток, таких как ara::core::Optional, чтобы однозначно выразить намерение сконструировать содержащийся в контейнере объект непосредственно на месте.

Благодаря этому механизму отпадает необходимость создавать вне контейнера временный объект, который затем пришлось бы переносить в контейнер с помощью конструктора копирования или перемещения. Таким образом, класс выступает посредником между вызывающим кодом приложения и подпрограммами инициализации объемлющих типов, благодаря чему он имеет особое значение для управления ресурсами и эффективности в контексте критически важных для безопасности приложений.

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

Жизненный цикл ara::core::in_place_t имеет минималистичный дизайн. Класс объявляет явный конструктор по умолчанию explicit in_place_t() noexcept = default;, помеченный как noexcept [SWS_CORE_04012]. Будучи лишенной состояния теговой структурой, этот тип не содержит переменных-членов или динамических ресурсов. Интерпретация: структура служит исключительно типовым маркером для разрешения перегрузок компилятором и не инкапсулирует данные времени выполнения. Вопрос Q-2fd481aaddfdfbf3 (открытый) Соответственно, не существует ни сложных состояний, ни переходов между различными фазами жизни.

Экземпляры ara::core::in_place_t обычно создаются непосредственно в точке вызова как временные значения и сразу передаются целевому методу. Отношений владения управляемыми ресурсами не возникает, а при уничтожении объекта не требуется никаких операций по очистке. Поскольку тип полностью неизменяем и не имеет состояния, создание экземпляров и их уничтожение по своей природе потокобезопасны и могут без опасений использоваться в нескольких потоках без механизмов синхронизации.

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

Типичный сценарий использования ara::core::in_place_t сосредоточен на прямой пересылке аргументов конструирования в такие обертки, как ara::core::Optional. Сначала приложение подключает необходимый заголовочный файл #include "ara/core/utility.h" [SWS_CORE_04012]. При объявлении или инициализации объекта ara::core::Optional разработчик передает экземпляр ara::core::in_place_t в качестве первого аргумента в конструктор. Последующие аргументы в точности соответствуют списку параметров конструктора типа, который должен содержаться в Optional.

Обрабатывая тег, конструктор контейнера внутренне напрямую вызывает соответствующий конструктор объекта полезных данных во внутренней области памяти. Это предотвращает ненужные операции копирования и перемещения, что особенно выгодно для типов, которые влекут за собой дорогостоящие операции копирования или чей конструктор копирования удален. После успешного вызова целевого конструктора назначение тега полностью выполнено, и временный экземпляр тега автоматически уничтожается.

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

С точки зрения сценариев сбоев и безопасности исключений ara::core::in_place_t ведет себя абсолютно безошибочно. Согласно спецификации, конструктор по умолчанию объявлен как noexcept и имеет классификацию exception safe [SWS_CORE_04012]. Предусловий для вызова конструктора по умолчанию не существует, и никакие коды ошибок или исключения C++ не генерируются.

Если во время конструирования на месте возникает ошибка, ее причина кроется не в ara::core::in_place_t, а исключительно в конструкторе инкапсулированного типа полезных данных. Если его конструктор генерирует исключения или сообщает о состояниях ошибки при недопустимых параметрах, срабатывают определенные механизмы обработки ошибок объемлющего контейнера или целевого типа. Для самого in_place_t постусловий или действий по очистке в случае ошибки не требуется.

Данное руководство по классу основано на спецификациях AUTOSAR Adaptive для модуля core и было сформировано автоматически.

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

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

in_place_t функция

Default constructor

explicit in_place_t () noexcept=default;

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

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