std::meta::has_identifier
Depuis fr.cppreference.net
| Défini dans l'en-tête <meta>
|
||
consteval bool has_identifier( std::meta::info r );
|
(depuis C++26) | |
Détermine si ce que r représente a un identifiant associé (y compris un identifiant de suffixe littéral).
Formellement :
- Si
rreprésente une entité avec un nom de type pour les besoins de liaison, renvoietrue. - Sinon, si
rreprésente une classe, énumération, variable, champ de bits, ou espace de noms anonyme, renvoiefalse. - Sinon, si
rreprésente un alias de type, renvoie!std::meta::has_template_arguments(r). - Sinon, si
rreprésente un type, renvoietruesi :
rreprésente un type de classe non qualifié cv etstd::meta::has_template_arguments(r)estfalse, ourreprésente un type d'énumération non qualifié cv.
- Sinon, si
rreprésente une fonction, renvoietruesistd::meta::has_template_arguments(r)estfalse, et la fonction n'est pas un constructeur, destructeur, fonction opérateur, ou fonction de conversion. - Sinon, si
rreprésente un modèle, renvoietruesi le modèle n'est pas un modèle de constructeur, modèle de fonction opérateur, ou modèle de fonction de conversion. - Sinon, si
rreprésente un paramètre de fonction d'une fonction qui est instanciée à partir d'un modèle de fonction, et le paramètre est un élément d'un pack de paramètres de fonction, renvoiefalse. - Sinon, si
rreprésente un paramètre de fonctionPd'une fonctionF, alors soitSl'ensemble des déclarations, ignorant toute instanciation explicite, qui sont accessibles depuis un point dans le contexte d'évaluation et qui déclarent soitFsoit une fonction modèle dontFest une spécialisation ; renvoietruesi
- il existe une déclaration
DdansSqui introduit un nomNpour soitPsoit le paramètre correspondant àPdans la fonction modèle queDdéclare, et - aucune déclaration dans
Sne le fait en utilisant un nom autre queN.
- il existe une déclaration
void fun(int);
constexpr std::meta::info r = parameters_of(^^fun)[0];
static_assert(!has_identifier(r));
void fun(int x);
static_assert(has_identifier(r));
void fun(int x);
static_assert(has_identifier(r));
void poison() {
void fun(int y);
}
static_assert(!has_identifier(r));
- Sinon, si
rreprésente une variable, renvoiefalsesi soit la variable correspond à un élément d'un pack de paramètres de fonction, soitstd::meta::has_template_arguments(r)esttrue, et renvoietruesinon. - Sinon, si
rreprésente une liaison structurée, renvoiefalsesi la liaison structurée est un élément d'un pack de liaisons structurées, outruesinon. - Sinon, si
rreprésente un énumérateur, un membre de données non statique, un espace de noms ou un alias d'espace de noms, renvoietrue. - Sinon, si
rreprésente une relation de classe de base directe, renvoiestd::meta::has_identifier(std::meta::type_of(r)). - Sinon, si
rreprésente une description de membre de données (T, N, A, W, NUA, ANN), renvoietruesi le nom de la description N n'est pas ⊥. - Sinon, renvoie
false.
Paramètres
| r | - | une valeur de réflexion |
Valeur de retour
true si ce que r représente a un identifiant, false sinon.
Exemple
| Cette section est incomplète Raison : aucun exemple |
Voir aussi
(C++26) |
convertit un meta::operators énumérateur en son nom symbolique (fonction) |
(C++26) |
si l'entité réfléchie a un identifiant, obtient son nom (fonction) |
| obtient une chaîne appropriée pour identifier l'entité réfléchie (fonction) |