Namespaces
Variants

std::meta::identifier_of, std::meta::u8identifier_of

Depuis fr.cppreference.net
< cpp | meta
 
 
 
Bibliothèque de réflexion
Catégories de types primaires
Catégories de types composites
Propriétés de type ➜
Relations entre types
 
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::string_view identifier_of( std::meta::info r );
(1) (depuis C++26)
consteval std::u8string_view u8identifier_of( std::meta::info r );
(2) (depuis C++26)

Renvoie l'identifiant associé à ce que r représente.

1) Le résultat est une chaîne de caractères codée dans le codage littéral ordinaire.
2) Le résultat est une chaîne UTF-8.

La chaîne résultante est déterminée comme suit :

  • Si r représente une entité avec un typedef name for linkage purposes, renvoie ce nom.
  • Sinon, si r représente un literal operator ou un modèle d'opérateur littéral, renvoie son identifiant de suffixe littéral.
  • Sinon, si r représente un paramètre de fonction P d'une fonction F, alors soit S l'ensemble des déclarations, en ignorant toute instanciation explicite, qui sont accessibles depuis un point dans le contexte d'évaluation et qui déclarent soit F soit une fonction template dont F est une spécialisation, renvoie le nom qui a été introduit par une déclaration dans S pour le paramètre correspondant à P.
  • Sinon, si r représente une entité, renvoie son nom déclaré.
  • Sinon, si r représente une relation de classe de base directe, renvoie std::meta::identifier_of(std::meta::type_of(r)) ou std::meta::u8identifier_of(std::meta::type_of(r)).
  • Sinon, si r représente une description de membre de donnée (T, N, A, W, NUA, ANN), renvoie le nom de la description N.

Paramètres

r - une valeur de réflexion

Valeur de retour

L'identifiant de ce que r représente, comme décrit ci-dessus.

Exceptions

Lève std::meta::exception sauf si std::meta::has_identifier(r) est true et que la chaîne résultante est représentable dans le codage correspondant.

Notes

Le résultat V est terminé par un caractère nul : V.data()[V.size()] est garanti d'être '\0'. Chaque élément dans V est un objet potentiellement non unique avec une durée de stockage statique qui est utilisable dans des expressions constantes ; un pointeur vers un tel élément ne convient pas pour être utilisé comme argument de modèle pour un paramètre de modèle non-type de type pointeur.

Exemple

Voir aussi

vérifie si une réflexion représente une entité qui a un identifiant
(fonction)