std::meta::type_of
ja.cppreference.net より
| ヘッダ <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) |
リフレクションが型を表すかどうかをチェックする (関数) |