Namespaces
Variants

std::meta::variable_of

来自 zh.cppreference.net
< cpp | meta
 
 
 
反射库
 
反射类型和查询
反射查询
反射布局查询
类型属性
类型属性查询
 
定义于头文件 <meta>
consteval std::meta::info variable_of( std::meta::info r );
(C++26 起)

给定一个表示函数参数的反射 r,返回表示函数定义中对应变量的反射。

参数值

r - 一个表示函数参数的反射(即 std::meta::parameters_of(rf) 中的元素,其中 rf 表示一个函数)

返回值

一个表示变量的反射,该变量对应于由 r 表示的函数参数。

异常

除非满足以下条件,否则抛出 std::meta::exception:

  • r表示函数 F 的一个参数,且
  • 对 variable_of 的调用是 F's 函数体求值的一部分。

示例

#include <meta>
#include <print>

void f(int int_arg)
{
    constexpr auto rp = std::meta::parameters_of(^^f)[0];
    // const int& x = [:rp:];  // error: cannot splice the reflection of a parameter
    const int& x = [:std::meta::variable_of(rp):]; // OK, x refers to int_arg

    std::println("{}", x);
}

int main()
{
    f(42);
}

输出:

42

参阅

获取反射函数的参数
(函数)