Namespaces
Variants

std::meta::parameters_of

Von de.cppreference.net
< cpp | meta
 
 
 
Reflexionsbibliothek
 
Reflexionstypen und -abfragen
Reflexionsabfragen
Reflexionslayoutabfragen
Typeigenschaften
Typeigenschaftsabfragen
 
Definiert in Header <meta>
consteval std::vector<std::meta::info> parameters_of( std::meta::info r );
(seit C++26)

Falls r eine Funktion darstellt, gibt einen Vektor zurück, der Reflexionen ihrer Funktionsparameter enthält. Falls r einen Funktionstyp darstellt, gibt einen Vektor zurück, der Reflexionen ihrer Parametertypen enthält.

In beiden Fällen sind die Elemente des Vektors in der Reihenfolge angeordnet, in der die Parameter erscheinen.

Parameter

r - eine Reflexion, die eine Funktion oder einen Funktionstyp darstellt

Rückgabewert

Ein std::vector von Reflexionen.

Ausnahmen

Wirft std::meta::exception, falls r keine Funktion oder keinen Funktionstyp darstellt.

Anmerkungen

Eine Reflexion eines Funktionsparameters kann nach dem Typ des Parameters, dem Bezeichner (falls vorhanden) und der Liste der Annotationen abgefragt werden. Um den Wert der Parametervariablen im Funktionskörper zu erhalten, siehe std::meta::variable_of.

Der Typ eines Parameters (wie von std::meta::type_of zurückgegeben) ist cv-unqualifiziert, was vom Typ der entsprechenden Variablen abweichen kann:

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);
}

Beispiel

Siehe auch

erhält die Variable des reflektierten Funktionsparameters in der Funktionsdefinition
(Funktion)
erhält den Rückgabetyp der reflektierten Funktion
(Funktion)