Namespaces
Variants

std::meta::bases_of

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>
    bases_of( std::meta::info type, std::meta::access_context ctx );
(depuis C++26)

Retourne un std::vector qui contient les réflexions correspondant aux spécificateurs de base de la classe représentée par type, filtré par le contexte d'accès ctx.

Soit C le type de classe représenté par std::meta::dealias(type). Chaque valeur de réflexion b dans le résultat représente une relation de classe de base directe accessible entre C et l'une des classes de base de C. L'accessibilité est déterminée comme par std::meta::is_accessible(b, ctx). Les valeurs de réflexion apparaissent dans l'ordre dans lequel les classes de base correspondantes apparaissent dans la clause de base de la définition de C.

Une relation de classe de base directe est généralement représentée comme une paire ordonnée (D, B), où :

  • D est la classe dérivée.
  • B est la classe de base directe nommée par un spécificateur de base dans la définition de D.

Les fonctions std::meta::parent_of et std::meta::type_of retournent respectivement la classe dérivée et la classe de base de la relation.

Paramètres

type - une valeur de réflexion qui représente soit un type de classe complet, soit un alias de type de celui-ci
ctx - un contexte d'accès

Valeur de retour

Un std::vector de valeurs de réflexion qui représente des relations de classe de base directe.

Exceptions

Lève std::meta::exception sauf si std::meta::dealias(type) représente un type de classe complet depuis un point du contexte d'évaluation.

Notes

Si type représente un type union, le résultat est un vecteur vide.

Exemple

Voir aussi

(C++26)
vérifie si la réflexion représente une relation de classe de base directe
(fonction)