国内首本全面深入解读C 11新标准的专著,由C 标准委员会代表和IBMXL编译器中国开发团队共同撰写。不仅详细阐述了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曙光:C++11标准的诞生
- 1.1.1C++11/C++0x(以及C11/C1x)—新标准诞生
- 1.1.2什么是C++11/C++0x
- 1.1.3新C++语言的设计目标
- 1.2今时今日的C++
- 1.2.1C++的江湖地位
- 1.2.2C++11语言变化的领域
- 1.3C++11特性的分类
- 1.4C++特性一览
- 1.4.1稳定性与兼容性之间的抉择
- 1.4.2更倾向于使用库而不是扩展语言来实现特性
- 1.4.3更倾向于通用的而不是特殊的手段来实现特性
- 1.4.4专家新手一概支持
- 1.4.5增强类型的安全性
- 1.4.6与硬件紧密合作
- 1.4.7开发能够改变人们思维方式的特性
- 1.4.8融入编程现实
- 1.5本书的约定
- 1.5.1关于一些术语的翻译
- 1.5.2关于代码中的注释
- 1.5.3关于本书中的代码示例与实验平台
- [第2章保证稳定性和兼容性
- 2.1保持与C99兼容](https://yq.aliyun.com/articles/173908/)
- 2.1.1预定义宏
- 2.1.2__func__预定义标识符
- 2.1.3_Pragma操作符
- 2.1.4变长参数的宏定义以及__VA_ARGS__
- 2.1.5宽窄字符串的连接
- 2.2long long整型
- 2.3扩展的整型
- 2.4宏__cplusplus
- 2.5静态断言
- 2.5.1断言:运行时与预处理时
- 2.5.2静态断言与static_assert
- 2.6noexcept修饰符与noexcept操作符
- 2.7快速初始化成员变量
- 2.8非静态成员的sizeof
- 2.9扩展的friend语法
- 2.10final/override控制
- 2.11模板函数的默认模板参数
- 2.12外部模板
- 2.12.1为什么需要外部模板
- 2.12.2显式的实例化与外部模板的声明
- 2.13局部和匿名类型作模板实参
- 2.14本章小结
- [第3章通用为本,专用为末
- 3.1继承构造函数](https://yq.aliyun.com/articles/174016/)
- 3.2委派构造函数
- 3.3右值引用:移动语义和完美转发
- 3.3.1指针成员与拷贝构造
- 3.3.2移动语义
- 3.3.3左值、右值与右值引用
- 3.3.4std::move:强制转化为右值
- 3.3.5移动语义的一些其他问题
- 3.3.6完美转发
-
3.4显式转换操作符