这是 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 起) |
预处理器在预处理指令的语境中识别下列记号:
if elif else endif | ifdef ifndef define undef | include line error pragma | defined __has_include (C++17 起) __has_cpp_attribute (C++20 起) | export (C++20) import (C++20) module (C++20) |
预处理器在预处理指令的语境之外识别下列记号:
(责任编辑:admin) |