DEENESPTFRRUARHIKOZHNL

类 ara::core::Bitset::reference

[SWS_CORE_01759]

class reference {...};

Implements std::bitset::reference type from [bitset]

Header-Datei#include "ara/core/bitset.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopeclass ara::core::Bitset

用户指南人工智能生成

用作对位集中的单个位进行写访问和取反的代理对象。
AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 9b7177bcd0af 来源 未决问题(3)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用作对位集中的单个位进行写访问和取反的代理对象。

辅助类ara::core::Bitset::reference充当代理类型,用于对ara::core::Bitset中的单个位进行左值风格的访问。它允许针对性地修改所引用的位值,特别是根据[SWS_CORE_01712]通过成员函数flip()将其取反。由于将flip()声明为noexcept,该操作保证是异常安全的[SWS_CORE_01712]。作为重要的边界条件,根据解读,该代理对象仅在封闭容器的生命周期内有效。

上下文

嵌套辅助类ara::core::Bitset::reference在AUTOSAR Adaptive Platform模块core中充当代理对象,用于访问ara::core::Bitset中的单个位。由于单个位在C++类型系统中没有独立的内存地址,因此无法直接映射为原生引用(bool&),故reference实现了C++标准中std::bitset::reference的概念[bitset]。该类充当调用代码与容器内部位存储之间的中介ara::core::Bitset。它使开发人员能够在语法和语义上将单个位视为可修改的引用来处理,方法是将对代理的操作直接映射到底层位集中的对应位。该接口的重要组成部分是符合[SWS_CORE_01712]的成员函数flip(),该函数提供所寻址位的直接状态反转。

生命周期

ara::core::Bitset::reference 的实例通常具有生存期较短的特性。按照解读,其创建并非由应用程序开发者作为独立对象进行,而是在请求对特定位位置进行左值访问时,由容器 ara::core::Bitset 的非 const 访问机制在内部发起。所生成的代理对象逻辑上绑定到容器的特定位位置及底层存储区。因此,reference 实例的生命周期与外围 Bitset 对象的存在紧密耦合:若所引用的 Bitset 被销毁或其存储失效,后续通过该代理对象进行的访问可能会导致未定义行为(悬挂引用)。 问题 Q-44ce3478c9a2d987 (未决)在根据 [SWS_CORE_01712] 通过 flip() 完成诸如位取反等操作后,临时对象通常会被立即丢弃。关于并发性需要注意的是,在没有外部同步的情况下,通过独立的 reference 实例对同一容器的不同或相同位进行并发写访问可能不是线程安全的。

使用路径

ara::core::Bitset::reference 的主要用例是对单个位值进行针对性的查询和修改。在典型流程中,调用者通过下标运算符访问 ara::core::Bitset 中的某个位位置,从而返回一个临时的 reference 对象。现在可以在此引用上执行修改操作。该类专门提供了成员函数 flip() 用于位值取反,该函数根据 [SWS_CORE_01712] 进行规范化。该方法对所引用位的当前状态取反(0 变为 1,1 变为 0),并返回代理对象自身(reference&)的左值引用。这允许链式调用进一步的访问,或直接进一步使用修改后的结果。

通过 reference::flip 翻转位Anwenderara::core::Bitsetara::core::Bitset::referenceoperator[](pos)reference-Instanzflip()翻转位置 pos 处的位状态reference& (*this)

时序图:通过代理对象 reference 进行位取反的典型流程。来源:[SWS_CORE_01712]

错误场景

类 ara::core::Bitset::reference 的特点在于其面向鲁棒性与性能的设计。对于核心成员函数 flip(),根据 [SWS_CORE_01712] 明确指定了异常安全性“exception safe”以及标识符 noexcept。这意味着调用 flip() 保证不会抛出 C++ 异常。因此在此次调用中不会出现错误状态或异常处理;正确执行的前置条件是底层对容器对象的引用的有效性。

本指南由 AI 基于 Adaptive Platform 的 AUTOSAR 规范(Release R25-11)生成。

UML 类图

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

G nara__core__Bitset__reference533 reference + flip()

方法

flip 函数

≙ [bitset]

reference & ara::core::Bitset< N >::reference::flip () noexcept;

方法文档

函数 flip [SWS_CORE_01712] Upstream: RS_AP_00130

reference & ara::core::Bitset< N >::reference::flip () noexcept;

As per corresponding usage in [bitset]

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 717c5ca36cdd 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

代理类 ara::core::Bitset::reference 的同步成员函数 flip 用于翻转当前引用的位 [SWS_CORE_01712]。它通过头文件 ara/core/bitset.h 声明。该调用在现有引用实例上无参数直接进行。作为返回值,该函数返回对已修改 reference 对象(reference&)的引用。解读:根据规范说明“As per corresponding usage in [bitset]”,其行为推测符合 std::bitset::reference::flip,从而对位值取反并返回 *this。 问题 Q-23d82576a1b93125 (未决)

错误处理与异常安全性

该接口被声明为 noexcept 并被指定为异常安全(exception safe)[SWS_CORE_01712]。由于不传递参数且无需范围检查,因此不会出现特定的错误状态或错误码。

模块内的相互作用

在 ara::core::Bitset 内部,该函数补充了该模块的其他翻转操作:

  • ara::core::Bitset::reference::flip 定向翻转通过引用寻址的单个位 [SWS_CORE_01712]。
  • ara::core::Bitset::flip() 在无参数的情况下同步翻转整个 Bitset 的所有位,并返回对该 Bitset 的引用 [SWS_CORE_01730]。
  • ara::core::Bitset::flip(std::size_t pos) 翻转索引位置 pos 处的位,并返回一个 Result,在索引无效时其因 IsoStdOutOfRangeViolation 而失败 [SWS_CORE_01731]。

本文由 AI 创建并整理。

Header-Datei#include "ara/core/bitset.h"
Scopeclass ara::core::Bitset::reference
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_01712
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_01712@rel:R25-11#15e28d25
Content hash
15e28d25
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_01712
Status: valid/unmigrated Version: rel:R25-11#aa62487c Versionshistorie & Revisions (1 transition)
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_01712@rel:R25-11#aa62487c
Point-in-Time History:
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