Namespaces
Variants

std::meta::parameters_of

ja.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 が関数または関数型を表さない場合。

注釈

関数パラメータのリフレクションは、パラメータの型、識別子(存在する場合)、および 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);
}

例

関連項目

リフレクションされた関数パラメータの変数を関数定義内で取得します
(関数)
リフレクションされた関数の戻り値の型を取得します
(関数)