std::bad_cast
Defined in header <typeinfo> | ||
|---|---|---|
class bad_cast : public std::exception; |
An exception of this type is thrown when a dynamic_cast to a reference type fails the run-time check (e.g. because the types are not related by inheritance), and also from std::use_facet if the requested facet does not exist in the locale.
Inheritance diagram.
Member functions
| constructs a new bad_cast object (public member function) |
Inherited from std::exception
Member functions
|
[virtual] | destroys the exception object (virtual public member function of std::exception) |
|
[virtual] | returns an explanatory string (virtual public member function of std::exception) |
Example
#include <iostream>
#include <typeinfo>
struct Foo { virtual ~Foo() {} };
struct Bar { virtual ~Bar() {} };
int main()
{
Bar b;
try {
Foo& f = dynamic_cast<Foo&>(b);
} catch(const std::bad_cast& e)
{
std::cout << e.what() << '\n';
}
}Possible output:
Bad dynamic cast
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/types/bad_cast