频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

C++ Templates中文版 目录

作者: 陈伟柱 出处:人民邮电出版社  2008-03-28 21:09    砖    好    评论   进入论坛
阅读提示:《C++ Templates》中文版是C++模板编程的完全指南,旨在通过基本概念、常用技巧和应用实例3方面的有用资料,为读者打下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-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


回书目   上一节   下一节
专题
C++是垃圾语言?!
VC++基础开发专题
C++开发专栏
C++ Templates:中文版
C++沉思录
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。
国际文档格式标准开战
国际文档格式标准开战
初探敏捷开发
初探敏捷开发
Linux——从菜鸟到高手
Linux——从菜鸟到高手
· Linux——从菜鸟到高手
· 体验Visual Studio 200..
· SOA 面向服务架构
· CISSP认证成长之路
· 隐私保护技术探讨
· WCF开发基础
· 珊瑚虫QQ作者侵权案开庭
· SQL Server 2008/2005..
· 华为员工自杀频频拷问..
· 计算机网络维护入门
· 开源虚拟化技术Xen
· 贝恩资本携手华为22亿..
· 如何优化IT 控制能耗
· VMware技术应用
· 打造安全服务器
· iSCSI应用与发展
清除流氓软件——51CTO特别专题
清除流氓软件——51CTO特别专..
ARP攻击防范与解决方案
ARP攻击防范与解决方案
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· SQL Server 2008/2005..
· SOA 面向服务架构
· SQL Server 2008/2005..
· iSCSI应用与发展
· RAID——磁盘阵列基础
· 中间件应用技术专题
· 病毒查杀专题
· 国际文档格式标准开战
· Linux防火墙
· 打造安全服务器
· Sniffer安全技术从入门..
· SOA 面向服务架构
· ADSL应用面面俱到
· 入侵防护系统(IPS)初探
· TCP/IP协议专题
ARP攻击防范与解决方案
ARP攻击防范与解决方案
SQL Server 2008/2005全解
SQL Server 2008/2005全解
iSCSI应用与发展
iSCSI应用与发展
· iSCSI应用与发展
· 中间件应用技术专题
· SQL Server 2008/2005..
· SOA 面向服务架构
· iSCSI应用与发展
· RAID——磁盘阵列基础
· 身份认证技术
· 病毒查杀专题
· 清除流氓软件——51CTO..
· Sniffer安全技术从入门..
· SOA 面向服务架构
· 了解统一威胁管理(UTM)..
· ADSL应用面面俱到
· ADSL应用面面俱到
· 反垃圾邮件技术应用
· TCP/IP协议专题