std::meta::parameters_of
来自 zh.cppreference.net
| 定义于头文件 <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);
}
示例
| 本节不完整 原因:缺少示例 |
参阅
(C++26) |
获取函数定义中反射的函数参数的变量 (函数) |
(C++26) |
获取反射函数的返回类型 (函数) |