Namespaces
Variants

std::meta::annotations_of_with_type

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

Gibt das Ergebnis von std::meta::annotations_of(item) gefiltert gemäß dem Typ, der durch type dargestellt wird.

Parameter

item – ein Reflexionswert
type – eine Reflexion eines Typs oder eines Typalias

Rückgabewert

Ein Vektor, der jedes Element e in std::meta::annotations_of(item) enthält, wo std::meta::remove_const(std::meta::type_of(e)) gleich std::meta::remove_const(type) ist, unter Beibehaltung ihrer Reihenfolge.

Ausnahmen

Wirft std::meta::exception, wenn std::meta::annotations_of(item) werfen würde, oder wenn

  • std::meta::dealias(type) keinen Typ darstellt, oder
  • std::meta::is_complete_type(type) ist false.

Beispiel

#include <meta>

struct Option { bool value; };

struct C {
    [[=Option{true}]] int a;
    [[=Option{false}]] int b;
};

static_assert([:annotations_of_with_type(^^C::a, ^^Option)[0]:].value);
static_assert(![:annotations_of_with_type(^^C::b, ^^Option)[0]:].value);

int main() {}

Siehe auch

erhält die Annotationen, die auf die reflektierte Entität angewendet werden
(Funktion)
prüft, ob die Reflexion eine Annotation
darstellt (Funktion)
erhält eine Reflexion des konstanten Werts der reflektierten Entität
(Funktion)
(C++26)
erhält eine Reflexion des Typs der reflektierten Entität
(Funktion)