Descrição
Ele lança uma exceção em typeid de ponto nulo.
Declaração
A seguir está a declaração para std :: bad_typeid.
C ++ 98
class bad_typeid;
C ++ 11
class bad_typeid;
Parâmetros
Nenhum
Valor de retorno
Nenhum
Exceções
No-throw guarantee - esta função de membro nunca lança exceções.
Corridas de dados
O objeto local é modificado.
Exemplo
No exemplo abaixo para std :: bad_typeid.
#include <iostream>
#include <typeinfo>
struct S {
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';
}
}
A saída deve ser assim -
Attempted a typeid of NULL pointer!