std::meta::type_of
来自cppreference.com
| 在标头 <meta> 定义
|
||
| |
(C++26 起) | |
返回表示 r 所表示事物的类型的反射。
形式上:
- 如果
r表示函数形参(见 std::meta::parameters_of),则返回该函数的形参类型列表中对应类型的反射。 - 如果
r表示值、对象、变量、函数、非静态数据成员或无名位域,则返回r所表示事物的类型的反射。 - 如果
r表示标注,则返回std::meta::type_of(std::meta::constant_of(r))。 - 如果
r表示枚举类型 E 的枚举项:
- 如果在 E 的定义之后调用
type_of,则返回 E 的反射; - 否则(在 E 的定义内部调用
type_of),则返回整数类型的反射(该类型是枚举项在枚举定义内部的类型)。
- 如果在 E 的定义之后调用
- 如果
r表示直接基类关系(即std::meta::bases_of(x, ctx)中的元素),则返回该关系中基类的反射。 - 如果
r表示数据成员描述(即 std::meta::data_member_spec 返回的值),则返回该描述中类型的反射。
参数
| r | - | 某事物的反射,该事物具有类型 |
返回值
r 所表示事物的类型。
异常
除非 r 所表示的事物具有类型,否则抛出 std::meta::exception。也就是说,r 必须表示以下之一:
- 值
- 标注
- 对象
- 变量
- 函数(其类型不包含未推导的占位符类型,且该函数不是构造函数或析构函数)
- 枚举项
- 非静态数据成员
- 无名位域
- 直接基类关系
- 数据成员描述
- 函数形参
示例
| 本节未完成 原因:暂无示例 |
参阅
| 本节未完成 |