<typeinfo>

std::bad_typeid

class bad_typeid;
对指向具有空指针值的多态类型的指针使用 typeid 时抛出的异常

对指向具有空指针值的多态类型的指针使用 typeid 时抛出的异常的类型。

其成员 what 返回一个标识异常的空终止字符序列

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// bad_typeid example
#include <iostream>       // std::cout
#include <typeinfo>       // operator typeid, std::bad_typeid

class Polymorphic {virtual void Member(){}};

int main () {
  try
  {
    Polymorphic * pb = 0;
	std::cout << typeid(*pb).name();
  }
  catch (std::bad_typeid& bt)
  {
    std::cerr << "bad_typeid caught: " << bt.what() << '\n';
  }
  return 0;
}

可能的输出

bad_typeid caught: St10bad_typeid


异常安全

无异常保证:无成员抛出异常。

另见