Namespaces
Variants

std::meta::type_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::meta::info type_of( std::meta::info r );
(desde C++26)

Devuelve una reflexión que representa el tipo de lo que r representa.

Formalmente:

  • Si r representa un parámetro de función (véase std::meta::parameters_of), devuelve una reflexión del tipo correspondiente en la lista de tipos de parámetros de la función.
  • Si r representa un valor, objeto, variable, función, miembro de datos no estático o campo de bits sin nombre, devuelve una reflexión del tipo de lo que r representa.
  • Si r representa una anotación, devuelve std::meta::type_of(std::meta::constant_of(r)).
  • Si r representa un enumerador de un tipo de enumeración E :
  • si type_of es llamado después de la definición de E , devuelve una reflexión de E ;
  • en caso contrario (type_of es llamado dentro de la definición de E ), devuelve una reflexión de un tipo entero (que es el tipo del enumerador dentro de la definición de la enumeración).
  • Si r representa una relación de clase base directa (es decir, un elemento de std::meta::bases_of(x, ctx)), devuelve una reflexión de la clase base en la relación.
  • Si r representa una descripción de miembro de datos (es decir, un valor devuelto por std::meta::data_member_spec), devuelve una reflexión del tipo en la descripción.

Parámetros

r - una reflexión de algo que tiene un tipo

Valor de retorno

El tipo de lo que r representa.

Excepciones

Lanza std::meta::exception a menos que lo que r representa tenga un tipo. Es decir, r debe representar uno de:

  • valor
  • anotación
  • objeto
  • variable
  • función cuyo tipo no contenga un tipo placeholder no deducido y que no sea un constructor o destructor
  • enumerador
  • miembro de datos no estático
  • campo de bits sin nombre
  • relación de clase base directa
  • descripción de miembro de datos
  • parámetro de función

Ejemplo

Véase también

(C++26)
comprueba si la reflexión representa un tipo
(función)