Ключевые слова в C++
Ключевые слова — это предварительно определенные зарезервированные идентификаторы, имеющие специальные значения. Их использование в программе в качестве идентификаторов не допускается. Для Microsoft C++ зарезервированы следующие ключевые слова. Имена с символами подчеркиваниями в начале — это расширения Microsoft.
__box 2 |
||
__gc 2 |
||
__hook 3 |
||
__nogc 2 |
||
__pin 2 |
||
__sealed 2 |
||
__unhook 3 |
||
__value 2 |
||
naked 1 |
||
noinline 1 |
noreturn 1 |
|
nothrow 1 |
novtable 1 |
|
property 1 |
||
thread 1 |
||
uuid 1 |
||
1 Расширенные атрибуты для ключевого слова __declspec.
2 Применяется только к управляемым расширениям для C++. В настоящее время использование этого синтаксиса не рекомендуется.
3 Встроенная функция, используемая в обработке событий.
Дополнительные сведения см. в разделе Функции языка для платформы CLR.
Блок, относящийся только к системам Microsoft
В Microsoft C++ идентификаторы с двумя начальными символами подчеркивания зарезервированы для реализаций компилятора. Таким образом, в Microsoft принято соглашение, что специфические ключевые слова для систем Microsoft должны начинаться с двух символов подчеркивания. Эти слова невозможно использовать как имена идентификаторов.
Расширения Microsoft по умолчанию включены. Чтобы обеспечить полную переносимость программ, можно отключить расширения Microsoft, задав во время компиляции совместимый со стандартом ANSI параметр командной строки /Za (компилировать для совместимости с ANSI). При этом ключевые слова для систем Microsoft будут отключены.
Если расширения Microsoft включены, в программах можно использовать ключевые слова, специфические для систем Microsoft. Для совместимости со стандартом ANSI эти ключевые слова начинаются с двух символов подчеркивания. С целью обратной совместимости поддерживаются версии с одним символом подчеркивания для всех ключевых слов, начинающихся с двух символов подчеркивания, кроме __except, __finally, __leave и __try. Кроме того, атрибут __cdecl доступен без начальных символов подчеркивания.
Ключевое слово __asm заменяет синтаксис asm C++. Ключевое слово asm зарезервировано для совместимости с другими реализациями C++, но оно не реализовано. Используйте ключевое слово __asm.
Ключевое слово __based имеет ограниченное применение: в компиляциях для 32- и 64-разрядных платформ.