アノテーション (C++26以上)
ja.cppreference.net から
リフレクションで観察できる方法で宣言に情報を付加します。
構文
アノテーションのリストは 属性指定子内で導入されます。各アノテーションは =で始まります。
= 定数式
|
|||||||||
説明
アノテーションは、型、型エイリアス、変数、関数、void以外の型の関数パラメータ、名前空間、列挙子、基底指定子、または非静的データメンバの任意の宣言に適用できます。
E を std::meta::reflect_constant(expr) とすると (ここで expr は 定数式である)、E は 定数式でなければなりません。E の結果は、アノテーションのリフレクションに対して std::meta::constant_of を呼び出すことで観察できます。
アノテーションは、たとえ同等の値を持ち同じ宣言に適用されても、常に互いに区別されます。
[[=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) |
リフレクトされたエンティティに適用され、指定された型を持つアノテーションを取得します (関数) |