std::meta::variable_of

来自cppreference.com
< cpp | meta
在标头 <meta> 定义
consteval std::meta::info variable_of( std::meta::info r );
(C++26 起)

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

参数

r - 一个表示函数形参的反射(即某个表示函数 rfstd::meta::parameters_of(rf) 中的元素)

返回值

表示变量的反射,该变量对应于 r 所表示的函数形参。

异常

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

  • r 表示某个函数 F 的形参,并且
  • variable_of 的调用是 F 函数体求值的一部分。

示例

#include <meta>
#include <print>

void f(int int_arg)
{
    constexpr auto rp = std::meta::parameters_of(^^f)[0];
    // const int& x = [:rp:];  // 错误:不能拼接形参的反射
    const int& x = [:std::meta::variable_of(rp):]; // OK,x 指代 int_arg

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

int main()
{
    f(42);
}

输出:

42

参阅