std::bad_typeid
De cppreference.com
<tbody>
</tbody>

| Definido en el archivo de encabezado <typeinfo>
|
||
class bad_typeid : public std::exception; |
||
Una excepción de este tipo se produce cuando un operador typeid se aplica a un valor de puntero nulo desreferenciado de un tipo polimórfico.
Inheritance diagram
Funciones miembro
Construye un objeto bad_typeid nuevo. (función miembro pública) |
Heredado de std::exception
Funciones miembro
[virtual] |
Destruye el objeto excepción. (función miembro virtual pública de std::exception)
|
[virtual] |
Devuelve una cadena aclaratoria. (función miembro virtual pública de std::exception)
|
Ejemplo
Ejecuta este código
#include <iostream>
#include <typeinfo>
struct S { // El tipo tiene que ser polimórfico
virtual void f();
};
int main()
{
S* p = nullptr;
try {
std::cout << typeid(*p).name() << '\n';
} catch(const std::bad_typeid& e) {
std::cout << e.what() << '\n';
}
}
Salida:
Attempted a typeid of NULL pointer!