std::meta::bases_of
来自 zh.cppreference.net
| 定义于头文件 <meta>
|
||
consteval std::vector<std::meta::info>
bases_of( std::meta::info type, std::meta::access_context ctx );
|
(自 C++26 起) | |
返回一个 std::vector,该向量包含与 基类说明符 对应于由 type,并根据访问上下文 ctx。
令 C 为由 std::meta::dealias(type) 表示的类类型。每个反射值 b 在结果中表示一个可访问的 直接基类关系 在 C 与 C 的某个基类之间。访问性按如同由 std::meta::is_accessible(b, ctx) 确定的方式判断。反射值按照相应基类在 基类子句 的定义的 C 中出现的顺序排列。
直接基类关系通常表示为有序对 (D, B),其中:
- D是派生类。
- B是由 D 的定义中的基类说明符命名的直接基类。
函数 std::meta::parent_of 和 std::meta::type_of 分别返回该关系的派生类和基类。
参数
| type | - | 表示完整类类型或其类型别名的反射值 |
| ctx | - | 一个访问上下文 |
返回值
一个由反射值组成的 std::vector,表示直接基类关系。
异常
抛出 std::meta::exception,除非 std::meta::dealias(type) 表示一个在求值上下文中从某点开始完整的类类型。
注解
如果 type 表示一个联合类型,则结果为空向量。
示例
| 本节未完成 原因:无示例 |
参阅
(C++26) |
检查反射是否表示一个 直接基类关系 (函数) |