std::type_index
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <typeindex>
   | 
||
|   class type_index;  | 
(since C++11) | |
The type_index class is a wrapper class around a std::type_info object, that can be used as index in associative and unordered associative containers. The relationship with type_info object is maintained through a pointer, therefore type_index is CopyConstructible and CopyAssignable.
[edit] Member functions
|   constructs the object  (public member function)  | |
|    compares the underlying std::type_info objects  (public member function)  | |
|    returns hashed code  (public member function)  | |
|    returns implementation defined name of the type, associated with underlying type_info object (public member function)  | |
[edit] Helper classes
|    (C++11)  | 
   hash support for std::type_index   (class template specialization)  | 
[edit] See also
|    contains some type's information, generated by the implementation. This is the class, returned by the typeid operator (class)  | |