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.
[edit] 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_index object 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)  | |
[edit] See also
|    (C++11)  | 
   wrapper around a type_info object, that can be used as index in associative and unordered associative containers   (class)  |