typeid
De cppreference.com
Sintaxis:
#include <typeinfo> typeid( objeto );
El operador typeid, aplicado a una variable u objeto, retorna una referencia a un objeto del tipo std::type_info que describe las características del tipo de datos de 'objeto'.
Si 'objeto' es un puntero nulo, esta operación lanza una excepción del tipo std::bad_typeid.
En el estándar C++98, la cabecera <typeinfo> es requerida para que este operador funcione, y no incluirla se considera como un programa malformado.