std::meta::bases_of

来自cppreference.com
< cpp | meta
在标头 <meta> 定义
consteval std::vector<std::meta::info>
    bases_of( std::meta::info type, std::meta::access_context ctx );
(C++26 起)

返回一个 std::vector,其中包含与 type 所表示的类的各个基类说明符相对应的反射,按访问上下文 ctx 过滤。

Cstd::meta::dealias(type) 所表示的类类型。结果中的每个反射值 b 表示 CC 的基类之一之间的一个可访问的直接基类关系。如同由 std::meta::is_accessible(b, ctx) 确定可访问性。反射值出现的顺序与相应基类在 C 定义的基类子句中出现的顺序一致。

直接基类关系通常表示为一个有序对 (D, B),其中:

  • D 是派生类。
  • BD 的定义中由基类说明符指名的直接基类。

函数 std::meta::parent_ofstd::meta::type_of 分别返回该关系中的派生类和基类。

参数

type - 一个反射值,表示完整的类类型或其类型别名
ctx - 一个访问上下文

返回值

std::vector,包含表示各个直接基类关系的反射值。

异常

除非 std::meta::dealias(type) 表示一个在求值上下文中的某个点是完整的类类型,否则抛出 std::meta::exception

注解

如果 type 表示一个联合体类型,则结果为空向量。

示例

参阅