C++11标准文档N3376:编程语言C++的工作草案

需积分: 0 2 下载量 181 浏览量 更新于2024-07-27 收藏 4.85MB PDF 举报
"C++ 11的英文标准文档N3376,是C++编程语言的早期草案,包含了从范围、术语定义到程序执行、多线程等内容的详细规范。" C++ 11是C++编程语言的一个重要版本,引入了许多新特性并优化了语言标准。该文档N3376是这一版本的标准草案,虽然存在不完整和错误,但为开发者提供了深入理解C++ 11的关键信息。 1. **范围(Scope)**:这部分规定了C++ 11语言的应用范围,包括哪些部分是标准涵盖的,以及如何与其他编程语言标准相互作用。 2. **规范性引用(Normative references)**:列出影响C++ 11标准的其他技术文档,这些文档的条款在本标准中具有法律效力。 3. **术语和定义(Terms and definitions)**:定义了C++ 11中使用的专业术语,如类、对象、函数等,确保了语言规范的一致性。 4. **实现合规性(Implementation compliance)**:解释了符合C++ 11标准的编译器和库应满足的要求,包括最小功能集和行为一致性。 5. **国际标准的结构(Structure of this International Standard)**:描述了标准文档的组织结构,方便读者查找和理解各个部分。 6. **语法记号(Syntax notation)**:定义了用于表示C++ 11语法的记号系统,如BNF(巴科斯范式)规则。 7. **C++内存模型(The C++ memory model)**:阐述了C++程序中数据存储、访问和同步的抽象模型,是理解并发和多线程的基础。 8. **C++对象模型(The C++ object model)**:详细介绍了C++中的类型系统和对象生命周期,包括构造、析构、继承和动态绑定。 9. **程序执行(Program execution)**:定义了程序从开始到结束的执行过程,包括控制流、异常处理和程序终止。 10. **多线程执行(Multi-threaded executions and data races)**:介绍了C++ 11新增的多线程支持,包括线程创建、同步原语和数据竞争的定义。 11. **致谢(Acknowledgments)**:对参与标准制定工作的个人和组织表示感谢。 12. **词法约定(Lexical conventions)**:这部分详细规定了C++源代码的基本构成单元,如字符集、预处理、标识符、关键字、操作符和字面量等。 13. **预处理(Preprocessing)**:涵盖预处理器的运作,包括宏替换、条件编译和头文件包含。 14. **标识符(Identiifiers)**:定义了合法的标识符规则,包括保留字和用户自定义标识符。 15. **关键词(Keywords)**:列出了C++ 11的所有关键字,如`auto`, `nullptr`, `override`等,它们具有特殊的语言含义。 16. **操作符和标点符(Operators and punctuators)**:详细描述了C++中的操作符,包括算术、比较、逻辑、赋值等,以及标点符号的用法。 文档N3376对于C++ 11的深入学习和标准遵循至关重要,它不仅包含了语言的语法和语义,还涉及了编译器和运行时系统的实现细节。尽管是一个早期草案,但它仍为C++程序员和编译器开发者提供了宝贵的参考。