Namespaces
Variants

std::meta::has_identifier

ja.cppreference.net より
< cpp | meta
 
 
 
リフレクションライブラリ
 
リフレクション型とクエリ
リフレクションクエリ
リフレクションレイアウトクエリ
型プロパティ
型プロパティクエリ
 
ヘッダ <meta>
consteval bool has_identifier( std::meta::info r );
(C++26 以上)

で定義rリテラル接尾辞識別子を含む関連付けられた識別子を保有するかどうかを判定します。

正式には:

  • r が リンケージのための typedef 名を伴うエンティティを表す場合、true を返します。
  • そうでなく、r が無名のクラス、列挙体、変数、ビットフィールド、または名前空間を表す場合、false を返します。
  • そうでなく、r が型エイリアスを表す場合、!std::meta::has_template_arguments(r) を返します。
  • そうでなく、r が型を表す場合、次の場合に true を返します:
  • rcv 修飾されていないクラス型を表し、std::meta::has_template_arguments(r) が false である、または
  • rcv 修飾されていない列挙型を表す。
  • そうでなく、r が関数を表す場合、true が std::meta::has_template_arguments(r) であり、その関数がコンストラクタ、デストラクタ、演算子関数、または変換関数でないならば false を返します。
  • そうでなく、r がテンプレートを表す場合、そのテンプレートがコンストラクタテンプレート、演算子関数テンプレート、または変換関数テンプレートでなければ true を返します。
  • そうでなく、r が関数テンプレートからインスタンス化された関数の関数パラメータを表し、そのパラメータが関数パラメータパックの要素である場合、false を返します。
  • そうでなく、r が関数 P のF関数パラメータを表す場合、S を、評価コンテキスト内のある点から到達可能であり、かつ F または F が特殊化であるテンプレート関数のいずれかを宣言する、すべての宣言(明示的インスタンス化を除く)の集合とします。次の場合に true を返します:
  • D 内に、S または、N が宣言するテンプレート関数内で P に対応するパラメータに対して、名前 P を導入する宣言 D が存在し、かつ
  • S 内のいかなる宣言も、N 以外の名前を使用してそうしていない。
void fun(int);
constexpr std::meta::info r = parameters_of(^^fun)[0];
static_assert(!has_identifier(r));

void fun(int x);
static_assert(has_identifier(r));

void fun(int x);
static_assert(has_identifier(r));

void poison() {
    void fun(int y);
}
static_assert(!has_identifier(r));
  • そうでなく、r が変数を表す場合、その変数が関数パラメータパックの要素に対応するか、false が std::meta::has_template_arguments(r) であるならば true を返し、そうでなければ true を返します。
  • そうでなく、r が構造化束縛を表す場合、その構造化束縛が構造化束縛パックの要素であれば false を、そうでなければ true を返します。
  • そうでなく、r が列挙子、非静的データメンバ、名前空間、または名前空間エイリアスを表す場合、true を返します。
  • そうでなく、r が 直接基底クラス関係を表す場合、std::meta::has_identifier(std::meta::type_of(r)) を返します。
  • そうでなく、r が データメンバ記述 (T, N, A, W, NUA, ANN)を表す場合、記述の名前 trueN が ⊥ でなければ を返します。
  • そうでなければ、false を返します。

引数

r - リフレクション値

戻り値

truer が表すものが識別子を持つ場合は false、そうでなければ

。

理由: 例がありません

(C++26) 列挙子をそのシンボル名に変換します
(関数)
反映されたエンティティが識別子を持つ場合、その名前を取得します
(関数)
反映されたエンティティを識別するのに適した文字列を取得します
(関数)