图书介绍
C++ Templates中文版PDF|Epub|txt|kindle电子书版本网盘下载
![C++ Templates中文版](https://www.shukui.net/cover/51/31043223.jpg)
- (美)范德沃德,(美)约祖蒂斯著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115312815
- 出版时间:2013
- 标注页数:497页
- 文件大小:73MB
- 文件页数:517页
- 主题词:C语言-程序设计
PDF下载
下载说明
C++ Templates中文版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第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关键字typename39
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关键字export63
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 oracles79
6.6.6 archetypes80
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 POI142
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尖括号Hack199
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 traits240
15.1.2 value trait243
15.1.3参数化trait247
15.1.4 policy和policy类249
15.1.5 trait和policy:区别在何处251
15.1.6成员模板和模板的模板参数252
15.1.7组合多个policie和/或trait254
15.1.8运用普通的迭代器进行累积255
15.2类型函数256
15.2.1确定元素的类型257
15.2.2确定class类型259
15.2.3引用和限定符261
15.2.4 promotion trait264
15.3 policy trait267
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章 metaprogram293
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和trule355
20.1.1安全处理异常356
20.1.2 holder358
20.1.3作为成员的holder360
20.1.4资源获取于初始化362
20.1.5 holder的局限363
20.1.6复制holder364
20.1.7跨函数调用来复制holder365
20.1.8 trule366
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章 tuple385
21.1 duo385
21.2可递归duo390
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