C++20标准草案:2020-11-14版

需积分: 1 0 下载量 41 浏览量 更新于2024-06-16 收藏 6.89MB PDF 举报
"ISO-IEC-14882-2020-C++Draft-2020-11-14" ISO/IEC 14882是C++编程语言的标准文档,其2020年版本是C++20标准的最新工作草案,发布于2020年11月14日,修订了N4849版本。尽管这是一份早期草案,可能存在不完整和错误,以及格式问题,但它为C++开发者提供了最新的语言规范。 C++20是C++语言的一个重要里程碑,引入了许多新特性以增强语言的效率、可读性和表达力。这份草案包含的内容广泛,涵盖从基础的语法约定到复杂的语言特性。 1. **范围**:标准定义了C++编程语言的各个方面,包括语法、语义、库和实现要求。 2. **规范引用**:标准可能引用了其他相关的技术规范,确保C++与这些规范兼容。 3. **术语和定义**:这部分定义了C++语言中的关键术语,是理解和解释标准其余部分的基础。 4. **一般原则**: - **实施合规**:讨论了编译器和其他工具如何符合C++20标准的要求。 - **文档结构**:介绍了标准文档的组织方式。 - **语法表示法**:规定了如何用BNF(巴科斯范式)或其他形式来描述C++的语法结构。 5. **词法约定**:这部分详细规定了C++源代码的构成,如分隔符、翻译阶段、字符集、预处理 token、替代token、关键字、操作符和标点符号、字面量等。 6. **基础**:涵盖了一些基本概念,如程序的预处理、声明和定义、一次定义规则、作用域、名字查找、程序和链接、内存和对象、类型、程序执行等。 6.1 **序言**:介绍标准的基本意图和目的。 6.2 **声明和定义**:描述了如何声明变量、函数等,并定义它们的作用。 6.3 **一次定义规则**:防止同一实体在程序的不同部分被多次定义。 6.4 **作用域**:规定了标识符的有效范围。 6.5 **名字查找**:阐述了如何找到标识符所引用的对象或函数。 6.6 **程序和链接**:涉及到程序的组成单元和不同模块之间的链接。 6.7 **内存和对象**:定义了对象的生命周期、存储和初始化。 6.8 **类型**:涵盖了C++中的类型系统,包括基本类型、复合类型、模板等。 6.9 **程序执行**:规定了程序的运行时行为。 C++20的具体新特性包括模块化(Modules)、协程(Coroutines)、Concepts(概念)、可选值(std::optional)、强类型枚举(Strongly-Typed Enums)、原子线程安全(Atomic Thread-Fence)、改进的Lambda表达式、并行算法扩展、新的数学函数和更多。这些新特性的引入旨在提高代码的可维护性、性能和并发能力。 ISO/IEC 14882-2020 C++ Draft 提供了C++20标准的详细规范,是开发者、教育者和编译器开发者理解C++语言的权威指南。