std::meta::annotations_of_with_type
Von de.cppreference.net
| 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, oderstd::meta::is_complete_type(type)istfalse.
Beispiel
Diesen Code ausführen
#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
(C++26) |
erhält die Annotationen, die auf die reflektierte Entität angewendet werden (Funktion) |
(C++26) |
prüft, ob die Reflexion eine Annotation darstellt (Funktion) |
(C++26) |
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) |