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

用户指南人工智能生成

用作在 Optional 等容器中标记就地构造而无需复制操作的标签类型。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 011b812476bc 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用作在 Optional 等容器中标记就地构造而无需复制操作的标签类型。

结构体 ara::core::in_place_t 用作标记应直接就地构造对象而无需复制操作的标签类型 [SWS_CORE_04012]。实例通常传递给包装类(如 ara::core::Optional)的构造函数,以将参数直接转发给所包含类型的构造函数。创建通过显式默认构造函数进行,该构造函数被定义为异常安全且 noexcept [SWS_CORE_04012]。由于该类型是无状态的,因此不存在错误场景或复杂的生命周期阶段。

上下文

结构体 ara::core::in_place_t 是 AUTOSAR Adaptive Platform 模块 core 内的标签类型,并通过头文件 #include "ara/core/utility.h" 提供 [SWS_CORE_04012]。在现代 C++ 接口中,此类标签类型用作对象创建时重载决策的语义控制元素。ara::core::in_place_t 的主要角色是将操作显式声明为就地构造。该类型的实例被传递给包装类(如 ara::core::Optional)的特化构造函数,以指示应直接就地构造容器中持有的对象的明确意图。

通过该机制,无需在容器外部创建临时对象后再通过复制或移动构造函数转移到容器中。该类因而充当调用方应用代码与外围类型初始化例程之间的中介,从而在安全关键型应用的上下文中对资源管理和效率尤为重要。

生命周期

ara::core::in_place_t 的生命周期设计极为精简。该类声明了一个标记为 noexcept 的显式默认构造函数 explicit in_place_t() noexcept = default; [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 本身,在出错时无需后置条件或清理工作。

本类指南基于 core 模块的 AUTOSAR Adaptive 规范,并经过自动整理。

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#058846dc
Content hash
058846dc
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