Namespaces
Variants

std::meta::type_of

Depuis 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és de type
 
Défini dans l'en-tête <meta>
consteval std::meta::info type_of( std::meta::info r );
(depuis C++26)

Renvoie une réflexion représentant le type de ce que r représente.

Formellement :

  • Si r représente un paramètre de fonction (voir std::meta::parameters_of), renvoie une réflexion du type correspondant dans la liste-des-types-paramètres de la fonction.
  • Si r représente une valeur, un objet, une variable, une fonction, un membre de données non statique, ou un champ de bits sans nom, renvoie une réflexion du type de ce que r représente.
  • Si r représente une annotation, renvoie std::meta::type_of(std::meta::constant_of(r)).
  • Si r représente un énumérateur d'un type énumération E  :
  • si type_of est appelé après la définition de E , renvoie une réflexion de E  ;
  • sinon (type_of est appelé dans la définition de E ), renvoie une réflexion d'un type entier (qui est le type de l'énumérateur dans la définition de l'énumération).
  • Si r représente une relation de classe de base directe (c'est-à-dire un élément de std::meta::bases_of(x, ctx)), renvoie une réflexion de la classe de base dans la relation.
  • Si r représente une description de membre de données (c'est-à-dire une valeur renvoyée par std::meta::data_member_spec), renvoie une réflexion du type dans la description.

Paramètres

r - une réflexion de quelque chose qui a un type

Valeur de retour

Le type de ce que r représente.

Exceptions

Lève std::meta::exception sauf si ce que r représente a un type. C'est-à-dire que r doit représenter l'un des éléments suivants :

  • valeur
  • annotation
  • objet
  • variable
  • fonction dont le type ne contient pas de type placeholder non déduit et qui n'est pas un constructeur ou un destructeur
  • énumérateur
  • membre de données non statique
  • champ de bits sans nom
  • relation de classe de base directe
  • description de membre de données
  • paramètre de fonction

Exemple

Voir aussi

(C++26)
vérifie si la réflexion représente un type
(fonction)