std::meta::bases_of
| Definido en el encabezado <meta>
|
||
consteval std::vector<std::meta::info>
bases_of( std::meta::info type, std::meta::access_context ctx );
|
(desde C++26) | |
Devuelve un std::vector que contiene las reflexiones correspondientes a los especificadores de base de la clase representada por type, filtrado por el contexto de acceso ctx.
Sea C el tipo de clase representado por std::meta::dealias(type). Cada valor de reflexión b en el resultado representa una accesible relación de clase base directa entre C y una de las clases base de C. La accesibilidad se determina como si fuera por std::meta::is_accessible(b, ctx). Los valores de reflexión aparecen en el orden en que las clases base correspondientes aparecen en la cláusula base de la definición de C.
Una relación de clase base directa se representa típicamente como un par ordenado (D, B), donde:
- D es la clase derivada.
- B es la clase base directa nombrada por un especificador de base en la definición de D.
Las funciones std::meta::parent_of y std::meta::type_of devuelven respectivamente la clase derivada y la clase base de la relación.
Parámetros
| type | - | un valor de reflexión que representa un tipo de clase completo o un alias de tipo del mismo |
| ctx | - | un contexto de acceso |
Valor de retorno
Un std::vector de valores de reflexión que representa relaciones de clase base directas.
Excepciones
Lanza std::meta::exception a menos que std::meta::dealias(type) represente un tipo de clase que sea completo desde algún punto en el contexto de evaluación.
Notas
Si type representa un tipo unión, el resultado es un vector vacío.
Ejemplo
| Esta sección está incompleta Motivo: sin ejemplo |
Véase también
(C++26) |
comprueba si la reflexión representa una relación de clase base directa (función) |