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 |