Standard library header <typeindex>

From cppreference.com

This header is part of the types support library.

Contents

[edit] Classes

(C++11)
wrapper around a type_info object, that can be used as index in associative and unordered associative containers
(class)
hash support for std::type_index
(class template specialization)
Forward declarations
Defined in header <functional>
(C++11)
hash function object
(class template)

[edit] Synopsis

namespace std {
    class type_index;
    template <class T> struct hash;
    template<> struct hash<type_index>;
}

[edit] Class std::type_index

class type_index {
public:
    type_index(const type_info& rhs) noexcept;
    bool operator==(const type_index& rhs) const noexcept;
    bool operator!=(const type_index& rhs) const noexcept;
    bool operator< (const type_index& rhs) const noexcept;
    bool operator<= (const type_index& rhs) const noexcept;
    bool operator> (const type_index& rhs) const noexcept;
    bool operator>= (const type_index& rhs) const noexcept;
    size_t hash_code() const;
    const char* name() const;
private:
    const type_info* target; // exposition only
    // Note that the use of a pointer here, rather than a reference,
    // means that the default copy/move constructor and assignment
    // operators will be provided and work as expected.
};