这是 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 char8_t (C++20 起)char16_t (C++11 起)char32_t (C++11 起)class (1)compl concept (C++20 起)const consteval (C++20 起)constexpr (C++11 起)constinit (C++20 起)const_cast continue co_await (C++20 起)co_return (C++20 起)co_yield (C++20 起)decltype (C++11 起) | default (1)delete (1)do double dynamic_cast else enum explicit export (1)(3) extern (1)false float for friend goto if inline (1)int long mutable (1)namespace new noexcept (C++11 起)not not_eq nullptr (C++11 起)operator or or_eq private protected public reflexpr (反射 TS) | register (2)reinterpret_cast requires (C++20 起)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 中含义改变或添加新含义。
- (2) - C++17 中含义改变。
- (3) - C++20 中含义改变。
注意 and
、bitor
、or
、xor
、compl
、bitand
、and_eq
、or_eq
、xor_eq
、not
及 not_eq
(还有双标符 <%
、%>
、<:
、:>
、%:
及 %:%:
)提供标准记号的代用表示方法。
除了关键词外,还有拥有特殊含义的标识符,它们可用作对象或函数的名字,但在某些语境拥有特殊含义。
override (C++11)final (C++11) import (C++20)module (C++20)transaction_safe (TM TS)transaction_safe_dynamic (TM TS) |
还有,在任何位置含双下划线 __ 的所有标识符,和以一个下划线后随一个大写字母开始的所有标识符,都始终受保留,而所有以单下划线开始的标识符,保留用作全局命名空间中的名称。更多细节见标识符。
命名空间 std
用于放置标准 C++ 库中的名称。关于向它添加名称的规则,见扩充命名空间 std 。
名称 posix 保留作为未来的顶级命名空间。若程序于该命名空间声明或定义任何内容,则行为未定义。 | (C++11 起) |
预处理器在预处理指令的语境中识别下列记号:
ifelifelseendif | ifdefifndefdefineundef | includelineerrorpragma | defined__has_include (C++17 起)__has_cpp_attribute (C++20 起) |
预处理器在预处理指令的语境之外识别下列记号:
_Pragma(C++11 起) |
当前内容版权归 cppreference 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 cppreference .