Type support (basic types, RTTI) (original) (raw)

See also type system overview and fundamental types defined by the language.

Contents

[edit] Additional basic types and macros

Defined in header
size_t unsigned integer type returned by the sizeof operator (typedef) [edit]
ptrdiff_t signed integer type returned when subtracting two pointers (typedef) [edit]
nullptr_t(C++11) the type of the null pointer literal nullptr (typedef) [edit]
NULL implementation-defined null pointer constant (macro constant) [edit]
max_align_t(C++11) trivial type with alignment requirement as great as any other scalar type (typedef) [edit]
offsetof byte offset from the beginning of a standard-layout type to specified member (function macro) [edit]
byte(C++17) the byte type (enum) [edit]
Defined in header (deprecated) (until C++20)
Defined in header <stdbool.h>
__bool_true_false_are_defined(C++11)(deprecated) C compatibility macro constant, expands to integer literal 1 (macro constant) [edit]
Defined in header (deprecated) (until C++20)
Defined in header <stdalign.h>
__alignas_is_defined(C++11)(deprecated) C compatibility macro constant, expands to integer literal 1 (macro constant) [edit]
__alignof_is_defined(C++11)(deprecated) C compatibility macro constant, expands to integer literal 1 (macro constant) [edit]

[edit] Fixed width integer types (since C++11)

[edit] Fixed width floating-point types (since C++23)

[edit] Numeric limits

[edit] C numeric limits interface

[edit] Runtime type identification

Defined in header
type_info contains some type’s information, the class returned by the typeid operator (class) [edit]
bad_typeid exception that is thrown if an argument in a typeid expression is null (class) [edit]
bad_cast exception that is thrown by an invalid dynamic_cast expression, i.e. a cast of reference type fails (class) [edit]
Defined in header
type_index(C++11) wrapper around a type_info object, that can be used as index in associative and unordered associative containers (class) [edit]

[edit] 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

[edit] See also