标注 (C++26 起) - cppreference.com
| 一般主题 | ||||||||||||||||
| 流程控制 | ||||||||||||||||
| 条件执行语句 | ||||||||||||||||
| 重复语句(循环) | ||||||||||||||||
| 跳转语句 | ||||||||||||||||
| 函数 | ||||||||||||||||
| 函数声明 | ||||||||||||||||
| lambda 函数表达式 | ||||||||||||||||
inline 说明符 | ||||||||||||||||
| 动态异常说明 (C++17 前*) | ||||||||||||||||
noexcept 说明符 (C++11) | ||||||||||||||||
| 异常 | ||||||||||||||||
| 命名空间 | ||||||||||||||||
| 类型 | ||||||||||||||||
| 说明符 | ||||||||||||||||
| ||||||||||||||||
| 存储期说明符 | ||||||||||||||||
| 初始化 | ||||||||||||||||
以反射可观测的方式将信息附加到声明上。
语法
标注列表在属性说明符中引入。每个标注以 = 开头。
= 常量表达式
|
|||||||||
解释
标注可以应用于任何类型、类型别名、变量、函数、非 void 类型的函数形参、命名空间、枚举项、基类说明符或非静态数据成员的声明。
设 E 为 std::meta::reflect_constant(expr)(其中 expr 为 常量表达式),则 E 必须是常量表达式。可以通过对标注的反射调用 std::meta::constant_of 来观测 E 的结果。
标注之间总是互不相同的,即使它们具有等价的值且应用于同一个声明也是如此。
[[=42, =42]] int x; static_assert(std::meta::annotations_of(^^x).size() == 2); [[=42]] int f(); [[=24]] int f(); static_assert(std::meta::annotations_of(^^f).size() == 2);
替换到标注中不属于立即语境。
示例
| 本节未完成 原因:暂无示例 |
参阅
(C++26) |
获取应用于所反射实体的标注 (函数) [编辑] |
(C++26) |
获取应用于所反射实体且具有指定类型的标注 (函数) [编辑] |