Namespaces
Variants

std::meta::type_of

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

r が表すものの型を表すリフレクションを返します。

形式的には:

  • r が関数パラメータを表す場合 (std::meta::parameters_of を参照)、その関数のパラメータ型リストにおける対応する型のリフレクションを返します。
  • r が値、オブジェクト、変数、関数、非静的データメンバ、または無名ビットフィールドを表す場合、r が表すものの型のリフレクションを返します。
  • r がアノテーションを表す場合、std::meta::type_of(std::meta::constant_of(r)) を返します。
  • r が列挙型 E  の列挙子を表す場合:
  • もし type_of が E  の定義の後に呼び出されたなら、E  のリフレクションを返します。
  • そうでない場合 (type_of が E  の定義内で呼び出された場合)、整数型 (列挙定義内での列挙子の型) のリフレクションを返します。
  • r が直接基底クラスの関係 (すなわち std::meta::bases_of(x, ctx) の要素) を表す場合、その関係における基底クラスのリフレクションを返します。
  • r がデータメンバの記述 (すなわち std::meta::data_member_spec によって返された値) を表す場合、その記述内の型のリフレクションを返します。

引数

r - 型を持つ何かを表すリフレクション

戻り値

r が表すものの型。

例外

std::meta::exception を送出する。ただし、r が表すものが型を持つ場合を除く。すなわち、r は以下のいずれかを表さなければならない:

  • 値
  • アノテーション
  • オブジェクト
  • 変数
  • 型に未推論のプレースホルダ型を含まず、コンストラクタでもデストラクタでもない関数
  • 列挙子
  • 非静的データメンバ
  • 無名ビットフィールド
  • 直接基底クラスの関係
  • データメンバの記述
  • 関数パラメータ

例

関連項目

(C++26)
リフレクションが型を表すかどうかをチェックする
(関数)