图书介绍

C++ Templates中文版PDF|Epub|txt|kindle电子书版本网盘下载

C++ Templates中文版
  • (美)范德沃德,(美)约祖蒂斯著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115312815
  • 出版时间:2013
  • 标注页数:497页
  • 文件大小:73MB
  • 文件页数:517页
  • 主题词:C语言-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

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

热门推荐