Фундаментальний тип | Розмір (у байтах) | Клас значень CLI |
bool | System: -.Boolean | |
char | System::Sbyte | |
signed char | System::Sbyte | |
unsigned char | System::Byte | |
short | System::Intl6 | |
unsigned short | System::Uintl6 | |
int | System::Int32 | |
unsigned int | System::Uint32 | |
long | System::Int32 | |
unsigned long | System::Uint32 | |
long long | System::Int64 | |
unsigned long long | System::UInt64 | |
float | System:-.Single | |
double | System::Double | |
long double | System:-.Double | |
wchar_t | System::Char |
Оскільки імена фундаментальних типів ISO/ANSI C++ служать псевдонімами для імен класів у програмі C++/CLI, у принципі можна використати в коді C++/CLI і ті, і інших. Наприклад, ви вже знаєте, як записувати оператори, що створюють цілі змінною й змінні із плаваючою крапкою:
int count = 10;
double value = 2.5;
Ви можете використати імена класів, що відповідають фундаментальним типам, і компілювати програму без яких-небудь проблем:
System::lnt32 count = 10;
System::Double value = 2.5;
Хоча це зовсім законно, все-таки у своєму коді ви повинні використати імена фундаментальних типів, такі як int й double, замість імен класів System::Int32 й System::Double. Причина в тім, що відображення імен фундаментальних типів на імена класів і назад - це функціональність компілятора Visual C++. Інші компілятори не обов'язково реалізують такі перетворення.