Namespaces
Variants
Views
Actions

std::bad_typeid

From cppreference.com
< cpp | types
Revision as of 01:39, 29 April 2012 by P12bot (Talk | contribs)

Template:cpp/types/bad typeid/sidebar

Defined in header <typeinfo>
class bad_typeid : public std::exception;

An exception of this type is thrown when a typeid operator is applied to a dereferenced null pointer value or a polymorphic type.

Contents

Member functions

constructs a new bad_typeid object
(public member function)

Inherited from std::exception

Member functions

[virtual]
destructs the exception object
(virtual public member function of std::exception) [edit]
[virtual]
returns an explanatory string
(virtual public member function of std::exception) [edit]

Example

#include <iostream>
#include <typeinfo>
 
struct S { // The type has to be polymorphic
    virtual void f();
}; 
 
int main()
{
    S* p = nullptr;
    try {
        std::cout << typeid(*p).name() << '\n';
    } catch(const std::bad_typeid& e) {
        std::cout << e.what() << '\n';
    }
}

Output:

Attempted a typeid of NULL pointer!