21 Language support library [language.support]

21.7 Type identification [support.rtti]

21.7.3 Class bad_­cast [bad.cast]

namespace std {
  class bad_cast : public exception {
  public:
    bad_cast() noexcept;
    bad_cast(const bad_cast&) noexcept;
    bad_cast& operator=(const bad_cast&) noexcept;
    const char* what() const noexcept override;
  };
}

Класс bad_­cast определяет тип объектов, создаваемых реализацией как исключения для сообщения о выполнении недопустимого dynamic_­cast выражения ([expr.dynamic.cast]).

bad_cast() noexcept;

Effects: Создает объект класса bad_­cast.

bad_cast(const bad_cast&) noexcept; bad_cast& operator=(const bad_cast&) noexcept;

Effects: Копирует объект класса bad_­cast.

const char* what() const noexcept override;

Returns: An реализации определенных НТБ .

Remarks: Сообщение может быть форматом null-terminated multibyte string, подходящим для преобразования и отображенным как wstring ([string.classes], [locale.codecvt])