Type support (basic types, RTTI)
      From cppreference.net
     
     
      
       <
       
        cpp
       
      
     
     See also type system overview and fundamental types defined by the language .
| Contents | 
Additional basic types and macros
| 
          Defined in header
           
           
            <cstddef>
           
           | |
| unsigned integer type returned by the
         
          
           sizeof
          
         
         operator (typedef) | |
| signed integer type returned when subtracting two pointers (typedef) | |
| 
           
            
             
              (C++11)
             
            
           
           | the type of the null pointer literal
         
          
           nullptr (typedef) | 
| implementation-defined null pointer constant (macro constant) | |
| 
           
            
             
              (C++11)
             
            
           
           | trivial type with alignment requirement as great as any other scalar type (typedef) | 
| byte offset from the beginning of a
         
          standard-layout
         
         type to specified member (function macro) | |
| 
           
            
             
              (C++17)
             
            
           
           | the byte type (enum) | 
| 
          Defined in header
           
           
            <stdbool.h>
           
           | |
| 
           
            
             __bool_true_false_are_defined
            
           
           
           
            
             
              (C++11)
             
            
            
             
              (deprecated)
             
            
           
           | C compatibility macro constant, expands to integer literal
         
          
           
            1 (macro constant) | 
| 
          Defined in header
           
           
            <stdalign.h>
           
           | |
| 
           
            
             __alignas_is_defined
            
           
           
           
            
             
              (C++11)
             
            
            
             
              (deprecated)
             
            
           
           | C compatibility macro constant, expands to integer literal
         
          
           
            1 (macro constant) | 
| 
           
            
             __alignof_is_defined
            
           
           
           
            
             
              (C++11)
             
            
            
             
              (deprecated)
             
            
           
           | C compatibility macro constant, expands to integer literal
         
          
           
            1 (macro constant) | 
Fixed width integer types (since C++11)
Fixed width floating-point types (since C++23)
Numeric limits
| 
          Defined in header
           
           
            <limits>
           
           | |
| provides an interface to query properties of all fundamental numeric types (class template) | |
C numeric limits interface
Runtime type identification
| 
          Defined in header
           
           
            <typeinfo>
           
           | |
| contains some type’s information, the class returned by the typeid operator (class) | |
| exception that is thrown if an argument in a
         
          typeid expression
         
         is null (class) | |
| exception that is thrown by an invalid
         
          
           dynamic_cast
          
         
         expression, i.e. a cast of reference type fails (class) | |
| 
          Defined in header
           
           
            <typeindex>
           
           | |
| 
           
            
             
              (C++11)
             
            
           
           | wrapper around a 
          type_info
         object, that can be used as index in associative and unordered associative containers(class) | 
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
| DR | Applied to | Behavior as published | Correct behavior | 
|---|---|---|---|
| LWG 4036 | C++11 | 
          __alignof_is_defined
         was underspecified in the C++ standard | specified and deprecated | 
See also
| Type traits and metaprogramming library | |
| 
          
           
            C documentation
           
          
          for
          
           
            Type support library
           
          
          |