关键字是具有特殊意义的预定义保留标识符。 它们不能用作程序中的标识符。 Microsoft C++ 保留了下列关键字。 带有前导下划线的名称,以及为 C++/CX 和 C++/CLI 指定的名称都是 Microsoft 扩展。
标准 C++ 关键字
alignas
alignof
and
B
and_eq
B
asm
一个
auto
bitand
B
bitor
B
bool
break
case
catch
char
char8_t
C
char16_t
char32_t
class
compl
B
concept
C
const
const_cast
consteval
C
constexpr
constinit
C
continue
co_await
C
co_return
C
co_yield
C
decltype
default
delete
do
double
dynamic_cast
else
enum
explicit
export
C
extern
false
float
for
friend
goto
if
inline
a Microsoft 专用 __asm 关键字替换了 C++ asm 语法。 保留了 asm 以便与其他 C++ 实现兼容,但未成功。 将 __asm 用于 x86 目标上的内联程序集。 Microsoft C++ 不支持其他目标的内联程序集。
b 当指定 /permissive- 或 /Za(禁用语言扩展)时,扩展运算符同义词是关键字。 当启用 Microsoft 扩展时,它们不是关键字。
c 指定 /std:c++20 或更高版本(例如 /std:c++latest)时受支持。
Microsoft 专用 C++ 关键字
在 C++ 中,包含两个连续下划线的标识符会保留用于编译器实现。 Microsoft 约定位于带双下划线的 Microsoft 专用关键字前面。 这些单词不能用作标识符名称。
默认情况下将启用 Microsoft 扩展。 若要确保你的程序是完全可移植的,可通过在编译期间指定 /permissive- 或 /Za(禁用语言扩展)选项来禁用 Microsoft 扩展。 这些选项禁用某些 Microsoft 专用关键字。
启用 Microsoft 扩展后,你可以在程序中使用 Microsoft 特定关键字。 为了符合 ANSI,这些关键字的前面有一条双下划线。 出于后向兼容性考虑,支持许多双下划线关键字的单下划线版本。 提供的 __cdecl 关键字没有前导下划线。
__asm 关键字替代了 C++ asm 语法。 保留了 asm 以便与其他 C++ 实现兼容,但未成功。 请使用 __asm。
__based 关键字对 32 位和 64 位目标编译的用途有限。
__alignof
e
__asm
e
__assume
e
__based
e
__cdecl
e
__declspec
e
__event
__except
e
__fastcall
e
__finally
e
__forceinline
e
__hook
D
__if_exists
__if_not_exists
__inline
e
__int16
e
__int32
e
__int64
e
__int8
e
__interface
__leave
e
__m128
d 事件处理中使用的内部函数。
e 为了与以前的版本向后兼容,当启用 Microsoft 扩展时(默认),这些关键字既可以使用两个前导下划线,也可以使用一个前导下划线。
修饰符中的 __declspec Microsoft关键字
这些标识符是 __declspec 修饰符的扩展属性。 它们被视为该上下文中的关键字。
C++/CLI 和 C++/CX 关键字
__abstract
F
__box
F
__delegate
F
__gc
F
__identifier
__nogc
F
__noop
__pin
F
__property
F
__sealed
F
__try_cast
F
__value
F
abstract
G
array
G
as_friend
delegate
G
enum class
enum struct
event
G
f 仅适用于 C++ 托管扩展。 此语法现已弃用。 有关更多信息,请参见 Component Extensions for Runtime Platforms。
g 适用于 C++/CLI。