C++编程语言标准ISO/IEC 14882:2011详解

5星 · 超过95%的资源 需积分: 47 4 下载量 139 浏览量 更新于2024-07-26 2 收藏 14.26MB PDF 举报
"ISO.IEC.14882.-.Standard.for.Programming.Language.C++.2011.pdf" 涉及的是2011年版本的C++编程语言国际标准ISO/IEC 14882,它详细定义了C++语言的要求和规范。这个标准旨在为C++的实现提供清晰的指南,确保不同平台和编译器之间的源代码兼容性。 C++是一种通用编程语言,其基础是C语言(根据ISO/IEC 9899:1999标准),但C++在其基础上扩展了多种特性,包括但不限于: 1. **额外的数据类型**:如`bool`,以及更复杂的数据结构。 2. **类(Class)**:支持面向对象编程,包括封装、继承和多态。 3. **模板(Templates)**:允许泛型编程,创建可重用的代码片段,适用于多种数据类型。 4. **异常处理(Exceptions)**:提供了结构化的错误处理机制。 5. **命名空间(Namespaces)**:避免命名冲突,帮助组织代码。 6. **运算符重载(Operator Overloading)**:允许为运算符赋予特定类型的特殊含义。 7. **函数名重载(Function Overloading)**:同一作用域内可以有多个同名函数,但参数列表不同。 8. **引用(References)**:类似于指针但不可为空,提供了一种安全的别名机制。 9. **动态内存管理(Free Store Management Operators)**:如`new`和`delete`,用于在运行时分配和释放内存。 10. **库设施(Library Facilities)**:包括STL(标准模板库),如容器、迭代器、算法等。 标准文档分为多个部分,其中包括: - **1.1 范围**:明确了标准涵盖的C++语言的范围和应用领域。 - **1.2 引用标准**:列出其他相关标准和技术文档。 - **1.3 术语和定义**:定义了语言中使用的术语和概念。 - **1.4 实现合规性**:规定了实现C++标准的必要条件和合规性要求。 - **1.5 国际标准的结构**:描述了标准文档的组织结构。 - **1.6 语法记号**:定义了描述语言语法的记号规则。 - **1.7 C++内存模型**:阐述了C++程序如何管理和使用内存,包括线程间的交互。 - **1.8 C++对象模型**:定义了对象在内存中的表示方式以及它们如何相互作用。 ISO/IEC 14882:2011标准不仅对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