std::meta::bases_of
| 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
| Cette section est incomplète Raison : aucun exemple |
Voir aussi
(C++26) |
vérifie si la réflexion représente une relation de classe de base directe (fonction) |