列出到C++20为止的所有的关键字
时间: 2025-06-06 16:36:12 AIGC 浏览: 31
<think>嗯,用户让我列出到C++20为止的所有关键字。首先,我需要确认C++20的标准中新增了哪些关键字,同时确保不遗漏之前版本的关键字。记得C++的关键字随着标准更新会有变化,比如C++11引入了auto、nullptr等,C++20可能也有新增的。
首先,我应该从C++98开始回顾,然后逐步添加后续版本的新关键字。C++03主要是修正,没有新增关键字。C++11增加了如alignas、constexpr、decltype、noexcept、static_assert等。C++14可能没有新增关键字,或者有少量调整。C++17引入了像inline、namespace等在变量和命名空间用法上的新关键字?或者可能像concept这样的概念是C++20引入的?
C++20的关键新增应该包括concept、requires、co_await、co_return、co_yield这些协程相关的关键字,还有char8_t。此外,可能还有modules和import相关的关键字,比如module和import,但需要确认它们是否是关键字还是上下文相关的标识符。
接下来,我需要整理所有版本的关键字,确保没有重复,并按字母顺序排列。需要注意一些关键字可能在不同的标准中被弃用或修改,但用户要求的是到C++20为止的所有关键字,包括之前的版本。比如export在C++11中被保留但很少使用,仍然是关键字。
我需要检查是否有遗漏。例如,C++20新增的concept和requires是否正确?还有像constinit、consteval这些编译时相关的关键字是否属于C++20?是的,constinit和consteval是C++20引入的。
另外,协程相关的co_await、co_return、co_yield是否正确?是的,这些是C++20的新关键字。还有char8_t用于UTF-8字符类型。
现在,我需要将所有关键字按字母顺序排列,并注明C++11、C++17、C++20新增的部分。确保每个关键字都正确归类,避免错误。例如,static_assert是C++11引入的,而thread_local也是C++11的。
可能需要参考官方文档或可靠来源来验证,确保每个关键字的正确性。例如,C++20确实新增了concept、requires、constinit、consteval、co_await、co_return、co_yield、char8_t等。
最后,组织这些信息,分版本列出,并用清晰的格式呈现给用户,同时使用LaTeX的数学公式格式,但用户的问题不涉及数学公式,所以可能不需要。但根据系统指令,行内数学表达式需要用$...$,但这里可能用不上。不过用户要求的是关键字列表,所以主要用列表形式,确保每个关键字正确无误,并正确标注其引入的版本。</think>以下是截至C++20标准的所有关键字列表,按字母顺序排列并标注了新增版本(未标注的为C++98/03原有):
```cpp
alignas (C++11新增)
alignof (C++11新增)
and
and_eq
asm
atomic_cancel (C++20新增协程相关)
atomic_commit (C++20新增协程相关)
atomic_noexcept (C++20新增协程相关)
auto (语义扩展于C++11)
bitand
bitor
bool
break
case
catch
char
char8_t (C++20新增)
class
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
delete
do
double
dynamic_cast
else
enum
explicit
export
extern
false
float
for
friend
goto
if
inline
int
long
mutable
namespace
new
noexcept (C++11新增)
not
not_eq
nullptr (C++11新增)
operator
or
or_eq
private
protected
public
reflexpr (C++20反射提案暂未正式纳入)
register (C++17起语义弱化)
reinterpret_cast
requires (C++20新增)
return
short
signed
sizeof
static
static_assert (C++11新增)
static_cast
struct
switch
synchronized (C++20模块系统相关)
template
this
thread_local (C++11新增)
throw
true
try
typedef
typeid
typename
union
unsigned
using
virtual
void
volatile
wchar_t
while
xor
xor_eq
```
### 重要说明:
1. **C++20关键新增**:
- 协程相关:`co_await`, `co_return`, `co_yield`
- 概念约束:`concept`, `requires`
- 编译期增强:`consteval`, `constinit`
- 字符类型:`char8_t`(用于UTF-8编码)
2. **上下文相关关键字**:
- `import`和`module`(C++20模块系统)在特定上下文中作为关键字使用,但未列入标准关键字列表
3. **特殊标记**:
- `reflexpr`属于反射TS提案,暂未正式纳入C++20标准
- `atomic_cancel`等与事务内存相关特性可能因编译器实现差异而存在
建议在实际开发中参考编译器文档(如GCC/Clang/MSVC)对C++20特性的支持情况。
阅读全文
相关推荐


















