标注 (C++26 起)

来自cppreference.com


 
 
C++ 语言
 

以反射可观测的方式将信息附加到声明上。

语法

标注列表在属性说明符中引入。每个标注以 = 开头。

= 常量表达式

解释

标注可以应用于任何类型、类型别名、变量、函数、非 void 类型的函数形参、命名空间、枚举项、基类说明符或非静态数据成员的声明。

Estd::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);

替换到标注中不属于立即语境

示例

参阅