# Standard library header <typeinfo>

From cppreference.com
< cpp‎ | header

This header is part of the type support library.

### Classes

type_info | contains some type's information, generated by the implementation. This is the class returned by the typeid operator. (class)
bad_typeid | exception that is thrown if an argument in a typeid expression is null (class)
bad_cast | exception that is thrown by an invalid `dynamic_cast` expression, i.e. a cast of reference type fails (class)

### Synopsis

    namespace std {
      class type_info;
      class bad_cast;
      class bad_typeid;
    }

#### Class std::type_info

    class type_info {
    public:
      virtual ~type_info();
      bool operator==(const type_info& rhs) const noexcept;
      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& rhs) = delete; // cannot be copied
      type_info& operator=(const type_info& rhs) = delete; // cannot be copied
    };

#### Class std::bad_cast

    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;
    };

#### Class std::bad_typeid

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

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/header/typeinfo&oldid=91252"