反射库 (C++26 起)
来自cppreference.com
本节定义的工具支持反射式编程,使 C++ 程序能够观察程序自身的结构,并根据这些观察结果生成代码。
核心语言
反射库与两项核心语言特性协同工作:
反射库
| 本节未完成 |
在标头
<meta> 定义 | |
(C++26) |
反射值的类型 (typedef) |
(C++26) |
反射函数抛出的异常 (类) |
提升编译时存储为静态存储 | |
(C++26) |
将编译期字符串提升为静态存储,返回表示该静态字符串的反射。 (函数模板) |
(C++26) |
将编译期数组提升为静态存储,返回表示该静态数组的反射 (函数模板) |
(C++26) |
将编译期字符串提升为静态存储,返回指向该静态字符串首字符的指针 (函数模板) |
(C++26) |
将编译期数组提升为静态存储,返回静态数组的跨度。 (函数模板) |
(C++26) |
将编译期值提升为静态存储,返回指向该静态对象的指针。 (函数模板) |
运算符表示 | |
(C++26) |
标明可重载运算符 (枚举) |
反射名字和位置 | |
反射查询 | |
(C++26) |
检查反射是否是一个完整类型 (函数) |
(C++26) |
检查反射是否是一个变量 (函数) |
(C++26) |
检查反射是否是一个类型 (函数) |
(C++26) |
检查反射是否是一个命名空间 (函数) |
(C++26) |
检查反射是否是一个类型别名 (函数) |
(C++26) |
检查反射是否是一个命名空间别名 (函数) |
(C++26) |
检查反射是否是一个函数 (函数) |
(C++26) |
检查反射是否是一个函数形参 (函数) |
可访问性查询 | |
(C++26) |
表示访问检查的上下文 (类) |
可访问性作用域识别 | |
反射成员查询 | |
反射布局查询 | |
标注反射 | |
值提取 | |
反射代换 | |
(C++26) |
指定反射值组成的范围 (概念) |
(C++26) |
检查给定的实参是否可以替换到给定的模板中 (函数模板) |
(C++26) |
将给定的实参替换到给定的模板中,并返回替换结果的反射 (函数模板) |
表达式结果反射 | |
(C++26) |
返回表示某个值或模板形参对象的反射,适合用作常量模板实参 (函数模板) |
(C++26) |
返回表示对象的反射,适合用作常量模板实参 (函数模板) |
(C++26) |
返回表示函数的反射,适合用作常量模板实参 (函数模板) |
类定义生成 | |
基础类型类别 | |
复合类型类别 | |
类型属性 | |
类型属性查询 | |
类型关系 | |
常性/易变性修改 | |
引用修改 | |
符号性修改 | |
数组修改 | |
指针修改 | |
其他变换 | |
检查字符串字面量 | |