◐ Shell
clean mode source ↗

std::bad_typeid - cppreference.com

De cppreference.com

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.

cpp/error/exception

Inheritance diagram

Funciones miembro

Construye un objeto bad_typeid nuevo.
(función miembro pública)

Heredado de std::exception

Funciones miembro

Destruye el objeto excepción.
(función miembro virtual pública de std::exception) [editar]
Devuelve una cadena aclaratoria.
(función miembro virtual pública de std::exception) [editar]

Ejemplo

#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!