C++ 关键字

来自cppreference.com
< cpp
 
 
C++ 语言
表达式
替代表示
字面量
布尔 - 整数 - 浮点
字符 - 字符串 - nullptr (C++11)
用户定义 (C++11)
工具设施
特性 (C++11)
类型
typedef 声明
类型别名声明 (C++11)
强制转换
隐式类型转换 - 显式类型转换
static_cast - dynamic_cast
const_cast - reinterpret_cast
内存分配
类特有的函数属性
特殊成员函数
模板
杂项
 
 

这是 C++ 的保留关键字的列表。由于他们已被语言使用,这些关键字不可重新定义或重载。

alignas (C++11 起)
alignof (C++11 起)
and
and_eq
asm
atomic_cancel (TM TS)
atomic_commit (TM TS)
atomic_noexcept (TM TS)
auto(1)
bitand
bitor
bool
break
case
catch
char
char16_t(C++11 起)
char32_t(C++11 起)
class
compl
concept (概念 TS)
const
constexpr(C++11 起)
const_cast
continue
decltype(C++11 起)
default(1)
delete(1)
do
double

dynamic_cast
else
enum
explicit
export(1)
extern(1)
false
float
for
friend
goto
if
import (模块 TS)
inline(1)
int
long
module (模块 TS)
mutable(1)
namespace
new
noexcept(C++11 起)
not
not_eq
nullptr (C++11 起)
operator
or
or_eq
private
protected
public
register(2)

reinterpret_cast
requires (概念 TS)
return
short
signed
sizeof(1)
static
static_assert(C++11 起)
static_cast
struct(1)
switch
synchronized (TM TS)
template
this
thread_local(C++11 起)
throw
true
try
typedef
typeid
typename
union
unsigned
using(1)
virtual
void
volatile
wchar_t
while
xor
xor_eq

  • (1) - 在 C++11 中含义发生了变化或者增加了新含义。注:关键字 export 也在模块 TS 中使用。
  • (2) - 在 C++17 中含义发生了变化。

注意,andbitororxorcomplbitandand_eqor_eqxor_eqnotnot_eq(以及双连符 <%%><::>%:%:%:)提供标准记号的替代表示形式

除了关键字,还有两个“具有特殊意义的标识符”,它们可以用作对象或函数的名字,但在某些语境中具有特殊的意义。

override (C++11)
final (C++11)
transaction_safe (TM TS)
transaction_safe_dynamic (TM TS)

此外,在任何位置包含双下划线(__)的任何标识符,或以一个下划线后接一个大写字母开头的任何标识符总是被保留的,而以一个下划线开头的标识符则在全局命名空间中保留作为名字的使用。参见标识符页面中的详细解释。

命名空间 std 用于放置 C++ 标准库中的名字。有关向其添加名字的规则,参见扩充 std 命名空间

名字 posix 被保留未来用作顶层命名空间的名字。如果程序在该命名空间中声明或定义任何东西,都具有未定义的行为。 (C++11 起)

在预处理指令中,下列记号会被预处理器识别:

if
elif
else
endif
defined

ifdef
ifndef
define
undef

include
line
error
pragma

下列标记会被预处理器在预处理指令之外识别:

_Pragma(C++11 起)

[编辑] 另请参阅

C 关键字C 文档