std::meta::identifier_of, std::meta::u8identifier_of
ja.cppreference.net より
| ヘッダ <meta>
|
||
consteval std::string_view identifier_of( std::meta::info r );
|
で定義 (1) | (C++26 以上) |
consteval std::u8string_view u8identifier_of( std::meta::info r );
|
(2) | (C++26 以上) |
r が表すものに関連付けられた識別子を返します。
1) 結果は、通常のリテラルエンコーディングでエンコードされた文字列です。
2) 結果は UTF-8 文字列です。
結果の文字列は以下のように決定されます。
rがリンケージ目的の typedef 名を持つエンティティを表す場合、その名前を返します。- そうでなく、
rがリテラル演算子またはリテラル演算子テンプレートを表す場合、そのリテラルサフィックス識別子を返します。 - そうでなく、
rが関数Pの関数パラメータFを表す場合、Sを、評価コンテキスト内のある点から到達可能であり、かつFまたはFが特殊化であるテンプレート関数のいずれかを宣言する、宣言の集合とします。S内のある宣言によってPに対応するパラメータに対して導入された名前を返します。 - そうでなく、
rがエンティティを表す場合、その宣言された名前を返します。 - そうでなく、
rが直接基底クラス関係を表す場合、std::meta::identifier_of(std::meta::type_of(r))またはstd::meta::u8identifier_of(std::meta::type_of(r))を返します。 - そうでなく、
rがデータメンバ記述 (T, N, A, W, NUA, ANN)を表す場合、その記述の名前 N を返します。
引数
| r | - | リフレクション値 |
戻り値
上述の通り、r が表すものの識別子。
例外
std::meta::exception を送出します。ただし、std::meta::has_identifier(r) がtrue であり、結果の文字列が対応するエンコーディングで表現可能な場合を除きます。
注記
結果 V はヌル終端されます: V.data()[V.size()] は '\0' であることが保証されます。V の各要素は、静的ストレージ期間を持つ可能性のある一意ではないオブジェクトであり、定数式で使用可能です。そのような要素へのポインタは、ポインタ型の非型テンプレートパラメータのテンプレート引数として使用するのには適していません。
例
| このセクションは不完全です 理由: 例がありません |
関連項目
(C++26) |
リフレクションが識別子を持つエンティティを表すかどうかを調べる (関数) |