std::meta::parameters_of
ja.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 が関数または関数型を表さない場合。
注釈
関数パラメータのリフレクションは、パラメータの型、識別子(存在する場合)、および annotations のリストを照会できます。関数本体内のパラメータ変数の値を取得するには、std::meta::variable_of を参照してください。
パラメータの型(std::meta::type_of によって返される)は cv-unqualified であり、対応する変数の型と異なる場合があります。
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) |
リフレクションされた関数の戻り値の型を取得します (関数) |