"C++ 2017标准N4800修订版"
C++ 2017标准N4800是一个重要的文档,它代表了C++编程语言在2017年的一个工作草案。这个标准由ISO/IEC制定,用于规范和指导C++语言的使用和发展。N4800是N4791的修订版,旨在完善和更新先前的标准内容。尽管此版本是一个早期草案,存在不完整、错误和格式问题,但它仍为C++开发者提供了关键的语法、语义和实现规则。
标准文档主要分为多个章节,详细涵盖了C++语言的不同方面:
1. **范围**:这部分定义了标准适用的范围,包括C++语言的核心特性以及如何与其他编程语言标准相比较。
2. **规范参考**:列出与C++相关的其他规范和标准,以便于理解C++的合规性要求。
3. **术语和定义**:明确了文档中使用的专业术语和定义,这是理解和解析标准的基础。
4. **一般原则**:概述了C++语言的设计原则,包括实现合规性、文档结构、语法表示法等。
- **实现合规性**:解释了编译器和其他工具如何遵循标准并保持兼容性。
- **文档结构**:描述了标准文档的组织结构。
- **语法表示法**:规定了如何用BNF(巴科斯范式)或EBNF(扩展巴科斯范式)来描述C++的语法。
5. **词法约定**:详细定义了C++源代码的构成元素,如分隔符、翻译阶段、字符集、预处理令牌、替代令牌、关键字、操作符和标点符号、标识符、预处理数字和字面量等。
6. **基础**:涵盖声明和定义、一定义规则、作用域、名称查找、程序和链接、内存和对象、类型以及程序执行等核心概念。
- **声明和定义**:区分了声明和定义,讨论了它们在程序中的作用。
- **一定义规则**:确保程序中每个标识符的定义是唯一的。
- **作用域**:说明了变量、函数等在代码中的可见性和生命周期。
- **名称查找**:解释了如何找到标识符的引用所对应的定义。
- **程序和链接**:涉及到不同模块间的交互以及静态和动态链接的概念。
- **内存和对象**:定义了C++中的内存模型和对象的生命周期。
- **类型**:涵盖了C++中的基本类型、复合类型、类型转换以及类型系统的行为。
- **程序执行**:描述了C++程序的运行时行为和语义。
7. **表达式**:详细阐述了C++中的表达式,包括其分类、运算顺序、类型转换、操作符优先级、常量表达式等。
8. 后续章节将涉及声明、模板、类、对象、继承、成员函数、虚函数、异常处理、动态类型、库设施、并发和并行性等方面。
N4800标准为C++开发者提供了一套全面的规则和指南,帮助他们编写出符合标准、高效且可靠的代码。虽然这是一个早期草案,但它的内容对于理解和学习C++语言的最新进展至关重要。