首页

《深入理解C++11_新特性解析与应用》PDF版本下载

标签:C++,_func预定义,宏_cplusplus,POD类型,decltype,lambda函数     发布时间:2016-11-29   
  • 云盘下载:
  • [提取码:0000]
  • 本地下载:
       ( 需积分:2  )

一、目录介绍

深入理解C++11_新特性解析与应用副本.jpg

前言
第1章  新标准的诞生1
1.1    曙光:C++11标准的诞生1
1.1.1  C++11/C++0x(以及C11/C1x)——新标准诞生1
1.1.2  什么是C++11/C++0x2
1.1.3  新C++语言的设计目标3
1.2    今时今日的C++5
1.2.1  C++的江湖地位5
1.2.2  C++11语言变化的领域5
1.3    C++11特性的分类7
1.4    C++特性一览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.2    longlong整型23
2.3    扩展的整型25
2.4    宏_cplusplus26
2.5    静态断言27
2.5.1  断言:运行时与预处理时27
2.5.2  静态断言与static_assert28
2.6    noexcept修饰符与noexcept操作符32
2.7    快速初始化成员变量36
2.8    非静态成员的sizeof39
2.9    扩展的friend语法40
2.10   final/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.4  std: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.6    POD类型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.2    auto类型推导124
4.2.1  静态类型、动态类型与类型推导124
4.2.2  auto的优势126
4.2.3  auto的使用细则130
4.3    decltype134
4.3.1  typeid与decltype134
4.3.2  decltype的应用136
4.3.3  decltype推导四规则140
4.3.4  cv限制符的继承与冗余的符号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.2  C++11的智能指针164
5.2.3  垃圾回收的分类167
5.2.4  C++与垃圾回收169
5.2.5  C++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.2  nullptr和nullptr_t223
7.1.3  一些关于nullptr规则的讨论225
7.2    默认函数的控制227
7.2.1  类与默认函数227
7.2.2  “=default”与“=deleted”230
7.3    lambda函数234
7.3.1  lambda的一些历史234
7.3.2  C++11中的lambda函数235
7.3.3  lambda与仿函数238
7.3.4  lambda的基础使用240
7.3.5  关于lambda的一些问题及有趣的实验243
7.3.6  lambda与STL247
7.3.7  更多的一些关于lambda的讨论254
7.4    本章小结256

第8章  融入实际应用258
8.1    对齐支持258
8.1.1  数据对齐258
8.1.2  C++11的alignof和alignas261
8.2    通用属性267
8.2.1  语言扩展到通用属性267
8.2.2  C++11的通用属性268
8.2.3  预定义的通用属性270
8.3    Unicode支持274
8.3.1  字符集、编码和Unicode274
8.3.2  C++11中的Unicode支持276
8.3.3  关于Unicode的库支持280
8.4    原生字符串字面量284
8.5    本章小结286

附录AC++11对其他标准的不兼容项目287
附录B弃用的特性294
附录C编译器支持301
附录D相关资源304

��