C++编程语言标准草案:概述与核心要素

需积分: 15 0 下载量 13 浏览量 更新于2024-07-30 收藏 10.11MB PDF 举报
本文档是关于C++编程语言的标准草案,版本为N3242=11-0012,发布日期为2011年2月28日,它旨在更新和完善先前的草案N3225。这份早期版本的工作草案可能存在不完整和错误,并且格式方面有待改进。标准涵盖了C++语言的多个核心概念,包括其范围、规范引用、术语定义、实施合规性、语言结构、语法表示、内存模型、对象模型、程序执行、多线程并发和数据竞争等。 1. **范围**:标准定义了C++语言的应用领域,可能包括编程范式、目标平台兼容性和设计目标。 2. **规范引用**:文档列举了C++语言所依赖的其他国际或国内标准,确保与其他技术的协调一致。 3. **术语与定义**:这部分明确了C++语言中的关键术语,如变量、函数、类、模板等,为读者提供统一的理解基础。 4. **实施合规性**:阐述了编译器和实现者应遵循的标准要求,确保代码的一致性和互操作性。 5. **语言结构**:介绍了标准C++语言的整体组织结构,如源代码的组成、程序单元和模块化。 6. **语法表示**:详细说明了C++的符号体系,如关键字、运算符、表达式的书写规则等。 7. **C++内存模型**:解释了程序在内存中的数据布局、生命周期和同步机制,这对于理解并发编程至关重要。 8. **C++对象模型**:涵盖了类、对象、继承、封装和多态等内容,是面向对象编程的核心组成部分。 9. **程序执行**:涉及程序的加载、执行流程、异常处理和错误处理等方面。 10. **多线程执行与数据竞争**:讨论了如何在C++中处理并行计算,包括线程间的交互、同步和避免数据竞争的技术。 11. **感谢**:列出对参与者和支持者的致谢,体现了标准制定过程中的合作精神。 2. **词汇和语法细节**:深入探讨了C++的字符集、转义序列(trigraphs)、预处理器指令、替代令牌、标识符、关键字、运算符的使用等,这些都是编写和阅读C++代码的基础。 这份标准草案提供了C++语言的关键概念和规则,对于开发者来说,它是理解和遵循C++编程规范的重要参考,尤其是在处理复杂并发场景和编写高效、可维护代码时。尽管仍处于早期阶段,但它为C++程序员提供了一个明确的指南,以便于编写符合标准的高质量代码。
2009-12-15 上传
该资源不适合C、C++初学者,可作为C++高手向大师级进化的参考书。 内容: ... 17 Library introduction 17.1 General 17.2 The C standard library 17.3 Definitions 17.4 Additional definitions 17.5 Method of description (Informative) 17.6 Library-wide requirements 18 Language support library 18.1 General 18.2 Types 18.3 Implementation properties 18.4 Integer types 18.5 Start and termination 18.6 Dynamic memory management CONTENTS v c ISO/IEC N3000=09-0190 18.7 Type identification 18.8 Exception handling 18.9 Initializer lists 18.10Other runtime support 19 Diagnostics library 456 19.1 General 19.2 Exception classes 19.3 Assertions 19.4 Error numbers 19.5 System error support 20 General utilities library 20.1 General 20.2 Requirements 20.3 Utility components 20.4 Compile-time rational arithmetic 20.5 Tuples 20.6 Metaprogramming and type traits 20.7 Function objects . 520 20.8 Memory 541 20.9 Time utilities 583 20.10Date and time functions 596 20.11Class type_index 596 21 Strings library 599 21.1 General 599 21.2 Character traits 599 21.3 String classes 605 21.4 Class template basic_string 608 21.5 Numeric Conversions 635 21.6 Null-terminated sequence utilities . 636 22 Localization library 640 22.1 General 640 22.2 Header <locale> synopsis 640 22.3 Locales 641 22.4 Standard locale categories . 653 22.5 Standard code conversion facets 693 22.6 C Library Locales 695 23 Containers library 696 23.1 General 696 23.2 Container requirements 696 23.3 Sequence containers 719 23.4 Associative containers . 758 23.5 Unordered associative containers . 776 24 Iterators library 791 24.1 General 791 24.2 Iterator requirements 791 CONTENTS vi c ISO/IEC N3000=09-0190 24.3 Header <iterator> synopsis 796 24.4 Iterator primitives 799 24.5 Iterator adaptors . 802 24.6 Stream iterators . 816 25 Algorithms library 825 25.1 General 825 25.2 Non-modifying sequence operations 835 25.3 Mutating sequence operations 839 25.4 Sorting and related operations 848 25.5 C library algorithms 862 26 Numerics library 864 26.1 General 864 26.2 Numeric type requirements . 864 26.3 The floating-point environment 865 26.4 Complex numbers 866 26.5 Random number generation . 876 26.6 Numeric arrays 920 26.7 Generalized numeric operations 940 26.8 C Library 944 27 Input/output library 949 27.1 General 949 27.2 Iostreams requirements . 950 27.3 Forward declarations 950 27.4 Standard iostream objects 952 27.5 Iostreams base classes . 954 27.6 Stream buffers 972 27.7 Formatting and manipulators 982 27.8 String-based streams 1009 27.9 File-based streams 1021 28 Regular expressions library 1036 28.1 General 1036 28.2 Definitions 1036 28.3 Requirements 1037 28.4 Header <regex> synopsis 1039 28.5 Namespace std::regex_constants 1045 28.6 Class regex_error 1048 28.7 Class template regex_traits 1048 28.8 Class template basic_regex 1051 28.9 Class template sub_match 1056 28.10Class template match_results 1062 28.11Regular expression algorithms 1066 28.12Regular expression Iterators . 1070 28.13Modified ECMAScript regular expression grammar 1076 29 Atomic operations library 1079 29.1 General 1079 29.2 Header <atomic> synopsis 1079 CONTENTS vii c ISO/IEC N3000=09-0190 29.3 Order and Consistency . 1082 29.4 Lock-free Property 1084 29.5 Atomic Types 1085 29.6 Operations on Atomic Types 1094 29.7 Flag Type and Operations 1098 29.8 Fences . 1099 30 Thread support library 1101 30.1 General 1101 30.2 Requirements 1101 30.3 Threads 1102 30.4 Mutual exclusion . 1107 30.5 Condition variables 1121 30.6 Futures 1129 A Grammar summary 1149 A.1 Keywords 1149 A.2 Lexical conventions 1149 A.3 Basic concepts 1154 A.4 Expressions . 1154 A.5 Statements . 1158 A.6 Declarations . 1159 A.7 Declarators . 1162 A.8 Classes . 1164 A.9 Derived classes 1165 A.10 Special member functions 1165 A.11 Overloading . 1165 A.12 Templates 1166 A.13 Exception handling 1167 A.14 Preprocessing directives 1167 B Implementation quantities 1169 C Compatibility 1171 C.1 C++ and ISO C 1171 C.2 Standard C library 1181 D Compatibility features 1185 D.1 Increment operator with bool operand . 1185 D.2 static keyword . 1185 D.3 Access declarations 1185 D.4 Implicit conversion from const strings . 1185 D.5 register keyword 1185 D.6 C standard library headers . 1185 D.7 Old iostreams members 1186 D.8 char* streams 1187 D.9 Binders 1196 D.10 auto_ptr 1198 E Cross references 1201 Index 1218 CONTENTS viii ISO/IEC N3000=09-0190 Index of Grammar Productions 1243 Index of Library Names 1246 Index of Implementation Defined Behavior 1280