Namespaces
Variants

std::meta::annotations_of_with_type

De fr.cppreference.net
< cpp | meta
 
 
 
Bibliothèque de réflexion
 
Types et requêtes de réflexion
Requêtes de réflexion
Requêtes de disposition de réflexion
Propriétés de type
Requêtes de propriété de type
 
Défini dans l'en-tête <meta>
consteval std::vector<std::meta::info>
    annotations_of_with_type( std::meta::info item, std::meta::info type );
(depuis C++26)

Renvoie le résultat de std::meta::annotations_of(item) filtré selon le type représenté par type.

Paramètres

item - une valeur de réflexion
type - une réflexion de type ou d'alias de type

Valeur de retour

Un vecteur contenant chaque élément e dans std::meta::annotations_of(item) où std::meta::remove_const(std::meta::type_of(e)) est égal à std::meta::remove_const(type), en préservant leur ordre.

Exceptions

Lève std::meta::exception si std::meta::annotations_of(item) lèverait une exception, ou si

  • std::meta::dealias(type) ne représente pas un type, ou si
  • std::meta::is_complete_type(type) est false.

Exemple

#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() {}

Voir aussi

obtient les annotations s'appliquant à l'entité réfléchie
(fonction)
vérifie si la réflexion représente une annotation
(fonction)
obtient une réflexion de la valeur constante de l'entité réfléchie
(fonction)
(C++26)
obtient une réflexion du type de l'entité réfléchie
(fonction)