std::meta::identifier_of, std::meta::u8identifier_of
Depuis fr.cppreference.net
| 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
rreprésente une entité avec un typedef name for linkage purposes, renvoie ce nom. - Sinon, si
rreprésente un literal operator ou un modèle d'opérateur littéral, renvoie son identifiant de suffixe littéral. - Sinon, si
rreprésente un paramètre de fonctionPd'une fonctionF, alors soitSl'ensemble des déclarations, en ignorant toute instanciation explicite, qui sont accessibles depuis un point dans le contexte d'évaluation et qui déclarent soitFsoit une fonction template dontFest une spécialisation, renvoie le nom qui a été introduit par une déclaration dansSpour le paramètre correspondant àP. - Sinon, si
rreprésente une entité, renvoie son nom déclaré. - Sinon, si
rreprésente une relation de classe de base directe, renvoiestd::meta::identifier_of(std::meta::type_of(r))oustd::meta::u8identifier_of(std::meta::type_of(r)). - Sinon, si
rrepré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
| Cette section est incomplète Raison : pas d'exemple |
Voir aussi
(C++26) |
vérifie si une réflexion représente une entité qui a un identifiant (fonction) |