Namespaces
Variants

std::meta::parameters_of

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

如果r代表一个函数,则返回包含其函数参数反射的向量。如果r代表一个函数类型,则返回包含其参数类型反射的向量。

在这两种情况下,向量的元素按照参数出现的顺序排列。

参数

r - 表示一个函数或函数类型的反射

返回值

一个std::vector,包含反射。

异常

抛出std::meta::exception如果r不表示函数或函数类型。

注解

可以查询函数参数反射以获取参数的类型、标识符(如果有)以及注解列表。要获取函数体内的参数变量的值,请参见std::meta::variable_of。

参数的类型(由std::meta::type_of返回)是cv-无限定的,这可能与对应变量的类型不同:

void f(const int x)
{
    constexpr auto rp = std::meta::parameters_of(^^f)[0];
    static_assert(std::meta::type_of(rp) == ^^int);

    constexpr auto rv = std::meta::variable_of(rp);
    static_assert(&[:rv:] == &x);
    static_assert(std::meta::type_of(rv) == ^^const int);
}

示例

参阅

获取函数定义中反射的函数参数的变量
(函数)
获取反射函数的返回类型
(函数)