当前位置:主页 > 书籍配套资源 > C++11配套资源
《深入理解C++11:C++11新特性解析与应用》源代码

《深入理解C++11:C++11新特性解析与应用》源代码

  • 更新:2022-04-21
  • 大小:2.65 MB
  • 类别:C++11
  • 作者:Michael、Wong 、IBM、XL编译器中国开发团队
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

国内首本深入解读C++ 11新标准的专著,由C++标准委员会成员和IBM XL 编译器中国团队共同撰写。不仅详细阐述了C++ 11标准的设计原则,而且系统地讲解了C++ 11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。

全书一共8章:第1章从设计思维和应用范畴两个维度对C++ 11新标准中的所有特性进行了分类,呈现了C++ 11新特性的原貌;第2章讲解了在保证与C语言和旧版C++标准充分兼容的原则下增加的一些新特性;第3章讲解了具有广泛可用性、能与其他已有的或者新增的特性结合起来使用的、具有普适性的一些新特性;第4章讲解了C++ 11新标准对原有一些语言特性的改进,这些特性不仅能让C++变得更强大,而且还能提升程序员编写代码的效率;第5章讲解了C++ 11在安全方面所做的改进,主要涵盖枚举类型安全和指针安全两个方面的内容;第6章讲解了为了进一步提升和挖掘C++程序性能和让C++能更好地适应各种新硬件的发展而设计的新特性,如多核、多线程、并行编程方面的新特性;第7章讲解了一些颠覆C++一贯设计思想的新特性,如lambda表达式等;第8章讲解了C++11为了解决C++编程中各种典型实际问题而做出的有效改进,如对Unicode的深入支持等。附录中则介绍了C++ 11标准与其他相关标准的兼容性和区别、C++ 11中启用的特性、编译器对C++ 11的支持情况,以及学习C++ 11的相关资源。

国内首本深入解读C++ 11新标准的专著,由C++标准委员会成员和IBM XL 编译器中国团队共同撰写。不仅详细阐述了C++ 11标准的设计原则,而且系统地讲解了C++ 11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。

全书一共8章:第1章从设计思维和应用范畴两个维度对C++ 11新标准中的所有特性进行了分类,呈现了C++ 11新特性的原貌;第2章讲解了在保证与C语言和旧版C++标准充分兼容的原则下增加的一些新特性;第3章讲解了具有广泛可用性、能与其他已有的或者新增的特性结合起来使用的、具有普适性的一些新特性;第4章讲解了C++ 11新标准对原有一些语言特性的改进,这些特性不仅能让C++变得更强大,而且还能提升程序员编写代码的效率;第5章讲解了C++ 11在安全方面所做的改进,主要涵盖枚举类型安全和指针安全两个方面的内容;第6章讲解了为了进一步提升和挖掘C++程序性能和让C++能更好地适应各种新硬件的发展而设计的新特性,如多核、多线程、并行编程方面的新特性;第7章讲解了一些颠覆C++一贯设计思想的新特性,如lambda表达式等;第8章讲解了C++11为了解决C++编程中各种典型实际问题而做出的有效改进,如对Unicode的深入支持等。附录中则介绍了C++ 11标准与其他相关标准的兼容性和区别、C++ 11中启用的特性、编译器对C++ 11的支持情况,以及学习C++ 11的相关资源。

封面图

目录

  • 免责声明
  • 前言
  • 第1章新标准的诞生1
  • 1.1曙光:C++11标准的诞生1
  • 1.1.1C++11/C++0x(以及C11/C1x)—新标准诞生1
  • 1.1.2什么是C++11/C++0x2
  • 1.1.3新C++语言的设计目标3
  • 1.2今时今日的C++5
  • 1.2.1C++的江湖地位5
  • 1.2.2C++11语言变化的领域5
  • 1.3C++11特性的分类7
  • 1.4C++特性一览11
  • 1.4.1稳定性与兼容性之间的抉择11
  • 1.4.2更倾向于使用库而不是扩展语言来实现特性12
  • 1.4.3更倾向于通用的而不是特殊的手段来实现特性13
  • 1.4.4专家新手一概支持13
  • 1.4.5增强类型的安全性14
  • 1.4.6与硬件紧密合作14
  • 1.4.7开发能够改变人们思维方式的特性15
  • 1.4.8融入编程现实16
  • 1.5本书的约定17
  • 1.5.1关于一些术语的翻译17
  • 1.5.2关于代码中的注释17
  • 1.5.3关于本书中的代码示例与实验平台18
  • 第2章保证稳定性和兼容性19
  • 2.1保持与C99兼容19
  • 2.1.1预定义宏19
  • 2.1.2__func__预定义标识符20
  • 2.1.3_Pragma操作符22
  • 2.1.4变长参数的宏定义以及__VA_ARGS__22
  • 2.1.5宽窄字符串的连接23
  • 2.2long long整型23
  • 2.3扩展的整型25
  • 2.4宏__cplusplus26
  • 2.5静态断言27
  • 2.5.1断言:运行时与预处理时27
  • 2.5.2静态断言与static_assert28
  • 2.6noexcept修饰符与noexcept操作符32
  • 2.7快速初始化成员变量36
  • 2.8非静态成员的sizeof39
  • 2.9扩展的friend语法40
  • 2.10final/override控制44
  • 2.11模板函数的默认模板参数48
  • 2.12外部模板50
  • 2.12.1为什么需要外部模板50
  • 2.12.2显式的实例化与外部模板的声明52
  • 2.13局部和匿名类型作模板实参54
  • 2.14本章小结55
  • 第3章通用为本,专用为末57
  • 3.1继承构造函数57
  • 3.2委派构造函数62
  • 3.3右值引用:移动语义和完美转发68
  • 3.3.1指针成员与拷贝构造68
  • 3.3.2移动语义69
  • 3.3.3左值、右值与右值引用75
  • 3.3.4std::move:强制转化为右值80
  • 3.3.5移动语义的一些其他问题82
  • 3.3.6完美转发85
  • 3.4显式转换操作符89
  • 3.5列表初始化92
  • 3.5.1初始化列表92
  • 3.5.2防止类型收窄96
  • 3.6POD类型98
  • 3.7非受限联合体106
  • 3.8用户自定义字面量110
  • 3.9内联名字空间113
  • 3.10模板的别名118
  • 3.11一般化的SFINEA规则119
  • 3.12本章小结121
  • 第4章新手易学,老兵易用123
  • 4.1右尖括号>的改进123
  • 4.2auto类型推导124
  • 4.2.1静态类型、动态类型与类型推导124
  • 4.2.2auto的优势126
  • 4.2.3auto的使用细则130
  • 4.3decltype134
  • 4.3.1typeid与decltype134
  • 4.3.2decltype的应用136
  • 4.3.3decltype推导四规则140
  • 4.3.4cv限制符的继承与冗余的符号143
  • 4.4追踪返回类型145
  • 4.4.1追踪返回类型的引入145
  • 4.4.2使用追踪返回类型的函数146
  • 4.5基于范围的for循环150
  • 4.6本章小结153
  • 第5章提高类型安全155
  • 5.1强类型枚举155
  • 5.1.1枚举:分门别类与数值的名字155
  • 5.1.2有缺陷的枚举类型156
  • 5.1.3强类型枚举以及C++11对原有枚举类型的扩展160
  • 5.2堆内存管理:智能指针与垃圾回收163
  • 5.2.1显式内存管理163
  • 5.2.2C++11的智能指针164
  • 5.2.3垃圾回收的分类167
  • 5.2.4C++与垃圾回收169
  • 5.2.5C++11与最小垃圾回收支持170
  • 5.2.6垃圾回收的兼容性172
  • 5.3本章小结173
  • 第6章提高性能及操作硬件的能力174
  • 6.1常量表达式174
  • 6.1.1运行时常量性与编译时常量性174
  • 6.1.2常量表达式函数176
  • 6.1.3常量表达式值178
  • 6.1.4常量表达式的其他应用180
  • 6.2变长模板183
  • 6.2.1变长函数和变长的模板参数183
  • 6.2.2变长模板:模板参数包和函数参数包185
  • 6.2.3变长模板:进阶189
  • 6.3原子类型与原子操作196
  • 6.3.1并行编程、多线程与C++11196
  • 6.3.2原子操作与C++11原子类型197
  • 6.3.3内存模型,顺序一致性与memory_order203
  • 6.4线程局部存储214
  • 6.5快速退出:quick_exit与at_quick_exit216
  • 6.6本章小结219
  • 第7章为改变思考方式而改变220
  • 7.1指针空值—nullptr220
  • 7.1.1指针空值:从0到NULL,再到nullptr220
  • 7.1.2nullptr和nullptr_t223
  • 7.1.3一些关于nullptr规则的讨论225
  • 7.2默认函数的控制227
  • 7.2.1类与默认函数227
  • 7.2.2“= default”与“= deleted”230
  • 7.3lambda函数234
  • 7.3.1lambda的一些历史234
  • 7.3.2C++11中的lambda函数235
  • 7.3.3lambda与仿函数238
  • 7.3.4lambda的基础使用240
  • 7.3.5关于lambda的一些问题及有趣的实验243
  • 7.3.6lambda与STL247
  • 7.3.7更多的一些关于lambda的讨论254
  • 7.4本章小结256
  • 第8章融入实际应用258
  • 8.1对齐支持258
  • 8.1.1数据对齐258
  • 8.1.2C++11的alignof和alignas261
  • 8.2通用属性267
  • 8.2.1语言扩展到通用属性267
  • 8.2.2C++11的通用属性268
  • 8.2.3预定义的通用属性270
  • 8.3Unicode支持274
  • 8.3.1字符集、编码和Unicode274
  • 8.3.2C++11中的Unicode支持276
  • 8.3.3关于Unicode的库支持280
  • 8.4原生字符串字面量284
  • 8.5本章小结286
  • 附录AC++11对其他标准的不兼容项目287
  • 附录B弃用的特性294
  • 附录C编译器支持301
  • 附录D相关资源304

资源下载

资源下载地址1:https://pan.baidu.com/s/1rNgTFnQqd6VgNi-lR7zfXw

相关资源

网友留言