Directorio de artículos
En C++, puede usar
typeid
el operador para obtener información de tipo sobre una expresión. Específicamente, puede usar
typeid(expression)
para obtener
expression
la información de tipo de , y el valor devuelto es un objeto de
std::type_info
tipo , y puede
name()
obtener el nombre del tipo a través de su función miembro.
Por ejemplo, el siguiente código muestra cómo imprimir los tipos de parámetros de una función:
#include <iostream>
#include <typeinfo>
void foo(int x, double y, const char* z) {
std::cout << "x: " << typeid(x).name() << std::endl;
std::cout << "y: " << typeid(y).name() << std::endl;
std::cout << "z: " << typeid(z).name() << std::endl;
}
int main() {
foo(42, 3.14, "hello");
return 0;
}
La salida es:
x: i
y: d
z: PKc
Entre ellos, i
significa int
tipo, d
significa double
tipo, PKc
significa const char*
tipo. Cabe señalar que typeid
el nombre de tipo devuelto puede ser específico del compilador, y diferentes compiladores pueden tener diferentes implementaciones.