Namespaces
Variants

std::meta::bases_of

来自 zh.cppreference.net
< 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。

令 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)
检查反射是否表示一个 直接基类关系
(函数)