Namespaces
Variants

Standard library header <typeinfo>

From cppreference.net
Standard library headers

此头文件是 类型支持 库的组成部分。

目录

包含某些类型的信息,由 typeid 运算符返回的类
(class)
typeid 表达式 中的参数为 null 时抛出的异常
(class)
由无效的 dynamic_cast 表达式抛出的异常,即引用类型转换失败时
(class)

概要

// 所有独立实现
namespace std {
  class type_info;
  class bad_cast;
  class bad_typeid;
}

std::type_info

namespace std {
  class type_info
  {
  public:
    virtual ~type_info();
    constexpr bool operator==(const type_info& rhs) const noexcept;
    bool before(const type_info& rhs) const noexcept;
    size_t hash_code() const noexcept;
    const char* name() const noexcept;
    type_info(const type_info&) = delete;
    type_info& operator=(const type_info&) = delete;
  };
}

std::bad_cast

namespace std {
  class bad_cast : public exception
  {
  public:
    // 查看特殊成员函数规范的描述
    constexpr const char* what() const noexcept override;
  };
}

std::bad_typeid

namespace std {
  class bad_typeid : public exception
  {
  public:
    // 查看特殊成员函数规范的描述
    constexpr const char* what() const noexcept override;
  };
}