std::meta::object_of
来自 zh.cppreference.net
| 定义于头文件 <meta>
|
||
consteval std::meta::info object_of( std::meta::info r );
|
(自 C++26 起) | |
给定变量的反射,返回该变量所引用对象的反射。
如果 r 代表一个对象,则返回 r。
参数
| r | - | 变量或静态对象的反射 |
返回值
由 r 所代表的事物所引用对象的反射。
异常
若 std::meta::exception 不代表以下任一情况,则抛出 r:
- 具有静态存储周期的对象;
- 具有静态存储周期的对象类型的变量;
- 引用具有静态存储周期的对象的引用类型变量,且满足以下任一条件:
- 该引用可在常量表达式中使用,或
- 该引用的生存期始于当前正在求值的核心常量表达式内部。
示例
运行此代码
#include <meta>
int x;
int& y = x;
// x and y are different variables:
static_assert(^^x != ^^y);
// x and y refer to the same object:
static_assert(std::meta::object_of(^^x) == std::meta::object_of(^^y));
int main() {}
参阅
(C++26) |
返回表示对象的反射,适合用作常量模板实参 (函数模板) |