C++ Templates中文版PDF电子书下载
- 电子书积分:15 积分如何计算积分?
- 作 者:(美)范德沃德,(美)约祖蒂斯著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2013
- ISBN:9787115312815
- 页数:497 页
第1章 关于本章 1
1.1阅读本书所需具备的知识 2
1.2本书的整体结构 2
1.3如何阅读本书 2
1.4关于编程风格的一些说明 3
1.5标准和现实 5
1.6代码例子和更多信息 5
1.7反馈 5
第1部分 基础 7
第2章 函数模板 9
2.1初探函数模板 9
2.1.1定义模板 9
2.1.2使用模板 10
2.2实参的演绎(deduction) 12
2.3模板参数 13
2.4重载函数模板 15
2.5小结 19
第3章 类模板 21
3.1类模板Stack的实现 21
3.1.1类模板的声明 22
3.1.2成员函数的实现 23
3.2类模板Stack的使用 25
3.3类模板的特化 27
3.4局部特化 29
3.5缺省模板实参 30
3.6小结 32
第4章 非类型模板参数 33
4.1非类型的类模板参数 33
4.2非类型的函数模板参数 36
4.3非类型模板参数的限制 37
4.4小结 38
第5章 技巧性基础知识 39
5.1关键字typename 39
5.2使用this-〉 41
5.3成员模板 42
5.4模板的模板参数 45
5.5零初始化 51
5.6使用字符串作为函数模板的实参 52
5.7小结 55
第6章 模板实战 57
6.1包含模型 57
6.1.1链接器错误 57
6.1.2头文件中的模板 59
6.2显式实例化 60
6.2.1显式实例化的例子 61
6.2.2整合包含模型和显式实例化 62
6.3分离模型 63
6.3.1关键字export 63
6.3.2分离模型的限制 65
6.3.3为分离模型做好准备 66
6.4模板和内联 67
6.5预编译头文件 68
6.6调试模板 70
6.6.1理解长段的错误信息 71
6.6.2浅式实例化 72
6.6.3长符号串 75
6.6.4跟踪程序 75
6.6.5 oracles 79
6.6.6 archetypes 80
6.7本章后记 80
6.8小结 81
第7章 模板术语 83
7.1“类模板”还是“模板类” 83
7.2实例化和特化 84
7.3声明和定义 85
7.4一处定义原则 86
7.5模板实参和模板参数 86
第2部分 深入模板 89
第8章 深入模板基础 91
8.1参数化声明 91
8.1.1虚成员函数 94
8.1.2模板的链接 95
8.1.3基本模板 96
8.2模板参数 96
8.2.1类型参数 97
8.2.2非类型参数 97
8.2.3模板的模板参数 98
8.2.4缺省模板实参 99
8.3模板实参 100
8.3.1函数模板实参 101
8.3.2类型实参 103
8.3.3非类型实参 105
8.3.4模板的模板实参 107
8.3.5实参的等价性 109
8.4友元 109
8.4.1友元函数 110
8.4.2友元模板 113
8.5本章后记 113
第9章 模板中的名称 115
9.1名称的分类 115
9.2名称查找 117
9.2.1 Argument-Dependent Lookup(ADL) 119
9.2.2友元名称插入 121
9.2.3插入式类名称 121
9.3解析模板 123
9.3.1非模板中的上下文相关性 123
9.3.2依赖型类型名称 125
9.3.3依赖型模板名称 127
9.3.4 using-declaration中的依赖型名称 129
9.3.5 ADL和显式模板实参 130
9.4派生和类模板 131
9.4.1非依赖型基类 131
9.4.2依赖型基类 132
9.5本章后记 134
第10章 实例化 137
10.1 On-Demand实例化 137
10.2延迟实例化 139
10.3 C++++的实例化模型 142
10.3.1两阶段查找 142
10.3.2 POI 142
10.3.3包含模型与分离模型 145
10.3.4跨翻译单元查找 146
10.3.5例子 147
10.4几种实现方案 149
10.4.1贪婪实例化 151
10.4.2询问实例化 152
10.4.3迭代实例化 153
10.5显式实例化 155
10.6本章后记 159
第11章 模板实参演译 163
11.1演绎的过程 163
11.2演绎的上下文 165
11.3特殊的演绎情况 167
11.4可接受的实参转型 168
11.5类模板参数 169
11.6缺省调用实参 169
11.7 Barton-Nackman方法 170
11.8本章后记 172
第12章 特化与重载 175
12.1当泛型代码不再适用的时候 175
12.1.1透明自定义 176
12.1.2语义的透明性 177
12.2重载函数模板 178
12.2.1签名 179
12.2.2重载的函数模板的局部排序 182
12.2.3正式的排序原则 183
12.2.4模板和非模板 185
12.3显式特化 185
12.3.1全局的类模板特化 186
12.3.2全局的函数模板特化 189
12.3.3全局成员特化 191
12.4局部的类模板特化 194
12.5本章后记 197
第13章 未来的方向 199
13.1尖括号Hack 199
13.2放松typename的原则 200
13.3缺省函数模板实参 201
13.4字符串文字和浮点型模板实参 202
13.5放松模板的模板参数的匹配 204
13.6 typedef模板 206
13.7函数模板的局部特化 207
13.8 typeof运算符 208
13.9命名模板实参 210
13.10静态属性 211
13.11客户端的实例化诊断信息 212
13.12重载类模板 214
13.13 List参数 215
13.14布局控制 217
13.15 初始化器的演绎 218
13.16函数表达式 219
13.17本章后记 221
第3部分 模板与设计 223
第14章 模板的多态威力 225
14.1动多态 225
14.2静多态 228
14.3动多态和静多态 231
14.3.1术语 231
14.3.2优点和缺点 232
14.3.3组合这两种多态 232
14.4新形式的设计模板 233
14.5泛型程序设计 234
14.6本章后记 236
第15章 trait与policy类 239
15.1一个实例:累加一个序列 239
15.1.1 fixed traits 240
15.1.2 value trait 243
15.1.3参数化trait 247
15.1.4 policy和policy类 249
15.1.5 trait和policy:区别在何处 251
15.1.6成员模板和模板的模板参数 252
15.1.7组合多个policie和/或trait 254
15.1.8运用普通的迭代器进行累积 255
15.2类型函数 256
15.2.1确定元素的类型 257
15.2.2确定class类型 259
15.2.3引用和限定符 261
15.2.4 promotion trait 264
15.3 policy trait 267
15.3.1只读的参数类型 268
15.3.2拷贝、交换和移动 271
15.4本章后记 275
第16章 模板与继承 277
16.1命名模板参数 277
16.2空基类优化 281
16.2.1布局原则 281
16.2.2成员作基类 284
16.3奇特的递归模板模式 286
16.4参数化虚拟性 289
16.5本章后记 290
第17章 metaprogram 293
17.1 metaprogram的第一个实例 293
17.2枚举值和静态常量 295
17.3第2个例子:计算平方根 297
17.4使用归纳变量 301
17.5计算完整性 304
17.6递归实例化和递归模板实参 304
17.7使用metaprogram来展开循环 306
17.8本章后记 309
第18章 表示式模板 313
18.1临时变量和分割循环 314
18.2在模板实参中编码表达式 319
18.2.1表达式模板的操作数 320
18.2.2 Array类型 323
18.2.3运算符 325
18.2.4回顾 327
18.2.5表达式模板赋值 329
18.3表达式模板的性能与约束 330
18.4本章后记 331
第4部分 高级应用程序 335
第19章 类型区分 337
19.1辨别基本类型 337
19.2辨别组合类型 340
19.3辨别函数类型 342
19.4运用重载解析辨别枚举类型 346
19.5辨别class类型 348
19.6辨别所有类型的函数模板 349
19.7本章后记 352
第20章 智能指针 355
20.1 holder和trule 355
20.1.1安全处理异常 356
20.1.2 holder 358
20.1.3作为成员的holder 360
20.1.4资源获取于初始化 362
20.1.5 holder的局限 363
20.1.6复制holder 364
20.1.7跨函数调用来复制holder 365
20.1.8 trule 366
20.2引用记数 368
20.2.1计数器在什么地方 370
20.2.2并发访问计数器 370
20.2.3析构和释放 371
20.2.4 CountingPtr模板 372
20.2.5一个简单的非侵入式计数器 375
20.2.6一个简单的侵入式计数器模板 377
20.2.7常数性 378
20.2.8隐式转型 379
20.2.9比较 381
20.3本章后记 383
第21章 tuple 385
21.1 duo 385
21.2可递归duo 390
21.2.1域的个数 390
21.2.2域的类型 392
21.2.3域的值 393
21.3 tuple构造 398
21.4本章后记 403
第22章 函数对象和回调 405
22.1直接调用、间接调用与内联调用 406
22.2函数指针与函数引用 409
22.3成员函数指针 411
22.4 class类型的仿函数 414
22.4.1 class类型仿函数的第1个实例 414
22.4.2 class类型仿函数的类型 416
22.5指定仿函数 417
22.5.1作为模板类型实参的仿函数 417
22.5.2作为函数调用实参的仿函数 418
22.5.3结合函数调用参数和模板类型参数 419
22.5.4作为非类型模板实参的仿函数 420
22.5.5函数指针的封装 421
22.6内省 423
22.6.1分析一个仿函数的类型 424
22.6.2访问参数的类型 425
22.6.3封装函数指针 426
22.7函数对象组合 431
22.7.1简单的组合 432
22.7.2混合类型的组合 436
22.7.3减少参数的个数 440
22.8值绑定 443
22.8.1选择绑定的目标 444
22.8.2绑定签名 446
22.8.3实参选择 447
22.8.4辅助函数 453
22.9仿函数操作:一个完整的实现 455
22.10本章后记 457
附录A一处定义原则 459
A.1翻译单元 459
A.2声明和定义 460
A.3一处定义原则的细节 461
A.3.1程序的一处定义约束 461
A.3.2翻译单元的一处定义约束 463
A.3.3跨翻译单元的等价性约束 465
附录B重载解析 471
B.1何时应用重载解析 472
B.2简化过的重载解析 472
B.2.1成员函数的隐含实参 474
B.2.2细化完美匹配 476
B.3重载的细节 477
B.3.1非模板优先 477
B.3.2转型序列 477
B.3.3指针的转型 478
B.3.4仿函数和代理函数 480
B.3.5其他的重载情况 481
参考资料 483
术语表 487
- 《AutoCAD 2018自学视频教程 标准版 中文版》CAD/CAM/CAE技术联盟 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019
- 《复分析 英文版》(中国)李娜,马立新 2019
- 《生物化学 本科临床 英文版》张晓伟 2018
- 《Dreamweaver CC 2018标准实例教程 中文版》杨雪静,胡仁喜编著 2019
- 《Flash CC动画制作实用教程 中文版》麓山文化 2019
- 《代数簇 英文版》(荷)Eduard Lo 2019
- 《全国高等教育艺术设计专业规划教材 AutoCAD2020中文版标准教程》(中国)张莉,周子良,何婧 2019
- 《高等学校中外合作办学适用教材 高等数学 上 英文版》(中国)潘斌,牛宏,陈丽 2019
- 《全国高等学校药学类专业教材 药理学 英文版》殷明,朱依谆主编 2017
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019