std::type_info
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <typeinfo> | ||
| class type_info; | ||
The class type_info holds implementation-specific information about a type, including the name of the type and means to compare two types for equality or collating order. This is the class returned by the typeid operator. 
The type_info class is neither CopyConstructible nor CopyAssignable. 
Member functions
| (constructor) [deleted] | has neither default nor copy constructors (public member function) | 
| [virtual] | derived objects are safe to delete through pointer-to-base (virtual public member function) | 
| operator= [deleted] | can not be copy-assigned (public member function) | 
| checks whether the objects refer to the same type (public member function) | |
| checks whether the referred type precedes referred type of another type_indexobject in the implementation defined order, i.e. orders the referred types (public member function) | |
| (C++11) | returns a value which is identical for the same types (public member function) | 
| implementation defined name of the type (public member function) | 
See also
| (C++11) | wrapper around a type_infoobject, that can be used as index in associative and unordered associative containers(class) |