Namespaces
Variants

std::meta::template_arguments_of

Von de.cppreference.net
< cpp | meta
 
 
 
Reflektionsbibliothek
 
Reflektionstypen und -abfragen
Reflektionsabfragen
Reflektionslayoutabfragen
Typeigenschaften
Typeigenschaftsabfragen
 
Definiert in Header <meta>
consteval std::vector<std::meta::info> template_arguments_of( std::meta::info r );
(seit C++26)

Gibt einen Vektor zurück, der Reflektionen der Vorlagenargumente enthält, die zur Instantiierung der durch r repräsentierten Entität verwendet wurden, in der Reihenfolge, in der sie in der Vorlagenargumentliste erscheinen.

Für ein gegebenes Vorlagenargument A wird der entsprechende Reflektionswert R wie folgt bestimmt:

  • Falls A ein Typ oder ein Typalias ist, repräsentiert R den Typ.
  • Andernfalls, falls A eine Klassenvorlage, Variablenvorlage, ein Konzept oder eine Aliasvorlage ist, repräsentiert R die Vorlage.
  • Andernfalls (A ist ein Nicht-Typ-Vorlagenargument) sei P der entsprechende Vorlagenparameter.
  • Falls P einen Referenztyp hat, repräsentiert R das Objekt oder die Funktion, auf die A verweist.
  • Falls P einen Klassentyp hat, repräsentiert R das entsprechende Vorlagenparameterobjekt.
  • Andernfalls repräsentiert R den Wert von A.

Parameter

r - ein Reflektionswert

Rückgabewert

Ein Vektor, der Reflektionen der Vorlagenargumente dessen enthält, was r repräsentiert.

Ausnahmen

Wirft std::meta::exception, es sei denn std::meta::has_template_arguments(r) ist true (d. h. r repräsentiert eine aus einer Vorlage instantiiierte Entität).

Beispiel

#include <meta>
#include <type_traits>

static_assert(template_arguments_of(^^std::void_t<int>)[0] == ^^int);
static_assert(template_arguments_of(^^std::enable_if<true>).size() == 2);
static_assert(template_arguments_of(^^std::enable_if<true>)[0] ==
              std::meta::reflect_constant(true));
static_assert(template_arguments_of(^^std::enable_if<true>)[1] == ^^void);

int main() {}

Siehe auch

Template:cpp/meta/dsc is template
prüft, ob die reflektierte Entität durch Einsetzen von Vorlagenargumenten in eine Vorlage erzeugt wurde
(Funktion)