| Integer | |
|---|---|
| Signed | Unsigned |
| Int8 | UInt8 |
| Int16 | UInt16 |
| Int32 | UInt32 |
| Int64 | UInt64 |
| Int | UInt |
| LInt | LUInt |
| Byte | |
| Character |
|---|
| Char8 |
| Char16 |
| Char32 |
| Char |
| WChar |
| Real |
|---|
| Float |
| Double |
| LDouble |
| Pointer |
|---|
| T* |
| T[] |
| T[N] |
| Boolean |
|---|
| Bool |
Declaration: [Longest][Unsigned]Int[Size]
| Value | Description |
|---|---|
| U | specifies an unsigned interger otherwise integer is signed |
| Size | the size in bits suffix should be present within declaration to specify fixed size intergers. Notice that 64 bit integer is not specified until C++98! |
| [U]Int | the size of intergers is equal to machine word size |
| L[U]Int | the longest possible integer |
| Byte | a type size of which is equal to 8 bits |
Specifies a code points of the Unicode standard
| Value | Description |
|---|---|
| Char8 | the N-bit code unit of the Unicode UTF-N encoding form |
| Char16 | |
| Char32 | |
| WChar | the same as wchar_t sizeof wich is implementation-deļ¬ned |
| Char | A default framework-wide code unit. It is defined from one of specified above types |
This is just Capital case of original C++ real types
Plain C++ pointer types. No special definitions are provided
Tha same as C++::bool
| Public operators | Description | |
|---|---|---|
| Bool | operator == (const Type &) | Checks whether types are equal. Always returns True |
| Bool | operator != (const Type &) | Checks whether types are not equal. Always returns False |
| template <typename U> | Checks whether types are equal. Always returns False | |
| Bool | operator == (const Type<U> &) | |
| template <typename U> | Checks whether types are not equal. Always returns True | |
| Bool | operator != (const Type<U> &) | |
| Public types | ||
| typename | Kind | Defines a kind of a type |
| typename | Sign | Only integers! Defines a sign type for specified integer type |
| Particular attributes | ||
| T | min | Only integer and real types! Specialize a limit value for a specified type |
| T | max | |
| Bool | subscriptible | Only pointers! Tells whether pointer is subscriptible (T[] and T[N]) or not (T*) |
Defines one of the following classes
| Kind:: | Description |
|---|---|
| Nonfundamental | Represents all non-fundamental types as structures and classes |
| Pointer | Pointer types like T*, T[] and T[N] |
| Boolean | Matches boolean type |
| Character | Character type. Notice that Char16 and Char32 types are casted as Kind::Integer until C++11 standard. |
| Integer | All signed and unsigned integer types |
| Real | Real types |
Kind::Type<T> defines as Type<typename Type<T>::Kind>
Kind::Type<Bool>() == Type<Kind::Boolean>(); Kind::Type<Bool *>() == Type<Kind::Pointer>();
Kind::Type<Int32>() == Kind::Type<Int16>(); Kind::Type<Float>() == Kind::Type<Double>();
<a name="Sign"></a>
Only integer types! Defines one of the following classes
| Kind::Integer:: | Description |
|---|---|
| Signed | Represents all non-fundamental types as structures and classes. |
| Unsigned | Represents all non-fundamental types as structures and classes. |
| T | Type<T>::min | Type<T>::max |
|---|---|---|
| Integer types | ||
| Int8 | -128 | 127 |
| UInt8 | 0 | 255 |
| Int16 | -32768 | 32767 |
| UInt16 | 0 | 65535 |
| Int32 | -2147483648U | 2147483647 |
| UInt32 | 0 | 4294967295U |
| Int64 | -9223372036854775808LL | 9223372036854775807LL |
| UInt64 | 0 | 18446744073709551615ULL |
| Real types | ||
| Float | 1.17549435e-38F | 3.40282347e+38F |
| Double | 2.2250738585072014e-308 | 1.7976931348623157e+308 |
| LDouble | 2.2250738585072014e-308L | 1.7976931348623157e+308L |