c++学习书籍推荐《C++ Templates》下载

详细讲解C++模板语言的概念。
使用C++模板的常用设计技巧。
应用例证(其中一些是“高 级”应用)。
百度云及其他网盘下载地址:点我
名人推荐
如果今年你只打算买一本C++的书,那就选《C++Templates中文版》吧!
——JoshWalker,ACCU成员
《C++Templates中文版》是C++世界期待已久的重量级著作。
——MarcBriand,C/C++UsersJournal前任总编
一句话,模板圣经已经写就,请研习。
——MaximKhesin,CVISIONTechnologies,LLC
媒体推荐
如果今年你只打算买一本C++的书,那就选这本吧!
——Josh Walker,ACCU成员
C++世界期待已久的重量级著作。
——Marc Briand, C/C++ Users Journal前任总编
一句话,模板圣经已经写就,请研习。
——Maxim Khesin, CVISION Technologies, LLC
作者简介
David Vandevoorde 有20多年的C++工作经验,C++标准委员会成员。曾因为审校The C++ Programming Language一书的草稿,获得Bjarne Stroustrup的推荐,编写了C++ Solutions。
Nicolai M. Josuttis The C++ Standard Library - A Tutorial and Reference(中文版名为《C++标准库》)的作者,这本书出版以后成为实际上的标准读本。
目录
第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—DependentLookup(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 fixedtraits 240
15.1.2 valuetrait 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 promotiontrait 264
15.3 policytrait 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
c++学习书籍推荐《C++ Templates》下载的更多相关文章
- C语言学习书籍推荐《C Primer Plus(中文版)(第5版)》下载
普拉塔 (Prata S.) (作者), 云巅工作室 (译者) <C Primer Plus(中文版)(第5版)>共17章,介绍了C语言的基础知识,包括数据类型.格式化输入输出.运算符.表 ...
- java虚拟机的学习书籍推荐
javaEE开发已然是一个老生常谈的话题了,但经典之所以会成为经典,就是因为有可重复琢磨之处,每一次的反复推敲都会有不一样的收获.如果你不满足于做一个只会写if…else…的Java程序员,而是希望更 ...
- C++学习书籍推荐《Accelerated C++中文版》下载
百度云及其他网盘下载地址:点我 媒体推荐 书评 这是一本一流的C++入门书,它采用了一种和实践相结合的方式来解决具体的问题.相比我所见过的其他C++入门书来说,本书以令人惊奇的紧凑格式覆盖了更多的关于 ...
- C语言学习书籍推荐《C陷阱与缺陷》下载
下载地址:点我 凯尼格 (作者), 高巍 (译者) <C和C++经典著作:C陷阱与缺陷>适合有一定经验的C程序员阅读学习,即便你是C编程高手,<C和C++经典著作:C陷阱与缺陷> ...
- C语言学习书籍推荐《C和指针 Pointers On C》下载
<C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去. 全书共18 ...
- java学习书籍推荐
1. Java 语言基础 谈到Java 语言基础学习的书籍,大家肯定会推荐Bruce Eckel 的<Thinking in Java >.它是一本写的相当深刻的技术书籍,Java 语言基 ...
- linux学习书籍推荐linux学习书籍推荐
引用地址:http://www.cnblogs.com/notepi/archive/2013/06/15/3137103.html Linux 学习书目推荐 Linux基础 1.<Linux与 ...
- 19年最新 Python0基础学习书籍推荐(内涵PDF地址以及书籍源码)
去年看过一篇文章,是关于18年的最适合0基础学习的书籍,今年,最新的书籍也已经统计出来.书籍的PDF太过于难找,所以很多PDF都找不到. 仅仅只能找到英文版PDF 本文章统计了18.19并做过对比,在 ...
- c++学习书籍推荐《C++沉思录》下载
百度云及其他网盘下载地址:点我 编辑推荐 经典C++图书,应广大读者的强烈要求再版 目录 第0章 序幕第一篇 动机第1章 为什么我用C++第2章 为什么用C++工作第3章 生活在现实世界中 第二篇 类 ...
- c++学习书籍推荐《C++编程思想第一卷》下载
百度云及其他网盘下载地址:点我 编辑推荐 <C++编程思想>(第1卷)(第2版)第1版荣获"软件开发"杂志评选的1996年度 图书震撼大奖,中文版自2000年推出以来, ...
随机推荐
- 线性渐变、辐射渐变、角度渐变-QLinearGradient,QRadialGradient,QConicalGradient
渐变,是指逐渐的,有规律性的变化,是一种规律性很强的现象.Qt提供了一个与渐变相关的QGradient类,目前支持三种渐变画刷,分别是线性渐变(QLinearGradient).辐射渐变(QRadia ...
- murmurhash2算法 和 DJB Hash算法是目前最流行的hash算法
murmurhash2算法 和 DJB Hash算法是目前最流行的hash算法 1.DJB HASH算法 1 2 3 4 5 6 7 8 9 10 11 /* the famous DJB Hash ...
- 你需要了解的 C++ 17 Top 19 新特性(附精彩评论)
什么是 C++17? C++17(或 C++1z)是继 C++14 之后 C++ 编程语言 ISO/IEC 标准的下一次修订的非正式名称.C++17 现在功能已齐全,正在成为国际标准的路上.它的规范已 ...
- C# 屏蔽Ctrl Alt Del 快捷键方法+屏蔽所有输入
原文:C# 屏蔽Ctrl Alt Del 快捷键方法+屏蔽所有输入 Win32.cs /* * * FileCreate By Bluefire * Used To Import WindowsApi ...
- TIFF图片简介
每个TIFF文件都是从指示字节顺序的两个字节开始的.“II”表示小字节在先.“MM”表示大字节在先字节顺序.后面的两个字节表示数字42.数字42是“为了其深刻的哲学意义"而选择的. 42的读 ...
- 微信小程序把玩(三十八)获取设备信息 API
原文:微信小程序把玩(三十八)获取设备信息 API 获取设备信息这里分为四种, 主要属性: 网络信息wx.getNetWorkType, 系统信息wx.getSystemInfo, 重力感应数据wx. ...
- 华为虚拟机结合VMware搭建环境测试snmp
最近在研究zabbix监控,在实际生产环节中,我们不单单是需要对linux主机进行监控还需要对网络设备防火墙等等进行监控,那么在linux主机上我们可以安装zabbix-agernt,但是在路由器交换 ...
- mysql数据库同步系统otter部署实践(中国与欧洲同步)
otter的介绍就不说了, 自己去看官网https://github.com/alibaba/otter/wiki 本系统中, 中国的服务器部署在阿里云上, 欧洲服务器部署在亚马逊上, 由于阿里云的网 ...
- VC++的Unicode编程
本文来自:http://tech.ddvip.com/2007-03/117395585321221.html 一.什么是Unicode 先从ASCII说起,ASCII是用来表示英文字符的一种编码规范 ...
- MotionManager 陀螺仪实现方式
题外话: 权利的游戏开播了,引用一句话: 布兰:一个人如果还把,他还能勇敢么? 奈德:人在害怕时候的勇敢,才是真的勇敢. 回归正题: 说下关于 CMMotionManage ...