Namespaces
Variants

std::meta::bases_of

De es.cppreference.net
< cpp | meta
 
 
 
Biblioteca de reflexión
 
Tipos de reflexión y consultas
Consultas de reflexión
Consultas de diseño de reflexión
Propiedades de tipo
Consultas de propiedades de tipo
 
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

Véase también

(C++26)
comprueba si la reflexión representa una relación de clase base directa
(función)