Namespaces
Variants

std::meta::object_of

来自 zh.cppreference.net
< cpp | meta
 
 
 
反射库
 
反射类型与查询
反射查询
反射布局查询
类型属性
类型属性查询
 
定义于头文件 <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() {}

参阅

返回表示对象的反射,适合用作常量模板实参
(函数模板)