Namespaces
Variants

std::meta::identifier_of, std::meta::u8identifier_of

ja.cppreference.net より
< cpp | meta
 
 
 
リフレクションライブラリ
 
リフレクション型と問い合わせ
リフレクション問い合わせ
リフレクションレイアウト問い合わせ
型プロパティ
型プロパティ問い合わせ
 
ヘッダ <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 の各要素は、静的ストレージ期間を持つ可能性のある一意ではないオブジェクトであり、定数式で使用可能です。そのような要素へのポインタは、ポインタ型の非型テンプレートパラメータのテンプレート引数として使用するのには適していません。

例

関連項目

リフレクションが識別子を持つエンティティを表すかどうかを調べる
(関数)