最終更新日時(UTC):
が更新

履歴 編集

class
<typeinfo>

std::bad_typeid

namespace std {
  class bad_typeid : public exception;
}

概要

bad_typeidクラスは、ヌルポインタを指すオブジェクトを間接参照してtypeid演算子に渡された場合に送出される例外である。

メンバ関数

名前 説明 対応バージョン
bad_typeid() noexcept;
bad_typeid(const bad_typeid&) noexcept;
コンストラクタ
virtual ~bad_typeid() = default; デストラクタ
bad_typeid& operator=(const bad_typeid&) noexcept; 代入演算子
virtual const char* what() const noexcept; 実装定義のエラー内容を取得する

#include <iostream>
#include <typeinfo>

struct Polymorphic { virtual void f() {} };

int main()
{
  try {
    Polymorphic* p = 0;

    // オブジェクトpは Polymorphic* 型
    std::cout << "1: " << typeid(p).name() << std::endl;

    // ヌルポインタを指すオブジェクトを間接参照してtypeid演算子に渡す…
    std::cout << "2: " << typeid(*p).name() << std::endl;
  }
  catch (std::bad_typeid& e) {
    std::cerr << e.what() << std::endl;
  }
}

出力例

1: Polymorphic*
std::bad_typeid

参照