C++模板元编程

C++模板元编程

(美) 大卫 (David,A.) 等, 著

出版社:机械工业出版社

年代:2009

定价:55.0

书籍简介:

本书是关于C++模板元编程的著作。本书主要介绍Traits和类型操纵、深入探索元函数、整型外覆器和操作、序列与迭代器、算法、视图与迭代器适配器、诊断、跨越编译期和运行期边界、领域特定的嵌入式语言、DSEL设计演练,另外附录部分还介绍了预处理元编程概述、typename和template关键字。本书通过理论联系实践,深入讲解了C++高级编程技术。

书籍目录:

译者序

序言

前言

致谢

第1章概述1

1.1起步走1

1.2元程序的概念1

1.3在宿主语言中进行元编程3

1.4在C++中进行元编程3

1.4.1数值计算3

1.4.2类型计算5

1.5为何进行元编程6

1.5.1替代方案1:运行期计算6

1.5.2替代方案2:用户分析6

1.5.3为何进行C++元编程7

1.6何时进行元编程7

1.7为何需要元编程程序库7

第2章Traits和类型操纵9

2.1类型关联9

2.1.1采用一种直接的方式9

2.1.2采用一种迂回方式10

2.1.3寻找一个捷径11

2.2元函数12

2.3数值元函数14

2.4在编译期作出选择15

2.4.1进一步讨论iter_swap15

2.4.2美中不足16

2.4.3另一个美中不足17

2.4.4“美中不足”之外覆器18

2.5BoostTypeTraits程序库概览19

2.5.1一般知识20

2.5.2主类型归类(PrimaryTypeCategorization)20

2.5.3次类型归类(SecondaryTypeCategorization)21

2.5.4类型属性22

2.5.5类型之间的关系23

2.5.6类型转化23

2.6无参元函数23

2.7元函数的定义24

2.8历史24

2.9细节25

2.9.1特化25

2.9.2实例化26

2.9.3多态26

2.10练习27

第3章深入探索元函数30

3.1量纲分析30

3.1.1量纲的表示31

3.1.2物理量的表示33

3.1.3实现加法和减法33

3.1.4实现乘法34

3.1.5实现除法37

3.2高阶元函数39

3.3处理占位符40

3.3.1lambda元函数41

3.3.2apply元函数42

3.4lambda的其他能力43

3.4.1偏元函数应用43

3.4.2元函数复合43

3.5Lambda的细节43

3.5.1占位符43

3.5.2占位符表达式的定义45

3.5.3Lambda和非元函数模板45

3.5.4“懒惰”的重要性46

3.6细节46

3.7练习48

第4章整型外覆器和操作49

4.1布尔外覆器和操作49

4.1.1类型选择49

4.1.2缓式类型选择51

4.1.3逻辑运算符53

4.2整数外覆器和运算55

4.2.1整型运算符57

4.2.2_c整型速记法58

4.3练习59

第5章序列与迭代器61

5.1Concepts61

5.2序列和算法62

5.3迭代器62

5.4迭代器Concepts63

5.4.1前向迭代器63

5.4.2双向迭代器64

5.4.3随机访问迭代器65

5.5序列Concepts66

5.5.1序列遍历Concepts66

5.5.2可扩展性68

5.5.3关联式序列68

5.5.4可扩展的关联式序列69

5.6序列相等性71

5.7固有的序列操作71

5.8序列类72

5.8.1list72

5.8.2vector73

5.8.3deque74

5.8.4range_c74

5.8.5map74

5.8.6set75

5.8.7iterator_range75

5.9整型序列外覆器75

5.10序列派生76

5.11编写你自己的序列77

5.11.1构建tiny序列77

5.11.2迭代器的表示78

5.11.3为tiny实现at79

5.11.4完成tiny_iterator的实现81

5.11.5begin和end82

5.11.6加入扩充性85

5.12细节86

5.13练习87

第6章算法90

6.1算法、惯用法、复用和抽象90

6.2MPL中的算法92

6.3插入器93

6.4基础序列算法95

6.5查询算法97

6.6序列构建算法98

6.7编写你自己的算法100

6.8细节101

6.9练习102

第7章视图与迭代器适配器104

7.1一些例子104

7.1.1对从序列元素计算出来的值进行比较104

7.1.2联合多个序列107

7.1.3避免不必要的计算108

7.1.4选择性的元素处理109

7.2视图Concept109

7.3迭代器适配器110

7.4编写你自己的视图110

7.5历史112

7.6练习112

第8章诊断114

8.1调试错误114

8.1.1实例化回溯114

8.1.2错误消息格式化怪癖116

8.2使用工具进行诊断分析123

8.2.1听取他者的意见124

8.2.2使用导航助手124

8.2.3清理场面124

8.3有目的的诊断消息生成126

8.3.1静态断言128

8.3.2MPL静态断言129

8.3.3类型打印136

8.4历史138

8.5细节138

8.6练习139

第9章跨越编译期和运行期边界140

9.1for_each140

9.1.1类型打印140

9.1.2类型探访142

9.2实现选择143

9.2.1if语句143

9.2.2类模板特化144

9.2.3标签分派144

9.3对象生成器147

9.4结构选择149

9.5类复合153

9.6(成员)函数指针作为模板实参156

9.7类型擦除157

9.7.1一个例子158

9.7.2一般化159

9.7.3“手工”类型擦除160

9.7.4自动类型擦除161

9.7.5保持接口162

9.8奇特的递归模板模式164

9.8.1生成函数164

9.8.2管理重载决议166

9.9显式管理重载集168

9.10sizeof技巧171

9.11总结172

9.12练习172

第10章领域特定的嵌入式语言173

10.1一个小型语言173

10.2路漫漫其修远兮175

10.2.1Make工具语言175

10.2.2巴科斯-诺尔模式177

10.2.3YACC179

10.2.4DSL摘要181

10.3DSL182

10.4C++用作宿主语言184

10.5Blitz++和表达式模板186

10.5.1问题186

10.5.2表达式模板187

10.5.3更多的Blitz++魔法190

10.6通用DSEL191

10.6.1具名参数191

10.6.2构建匿名函数193

10.7BoostSpirit程序库199

10.7.1闭包201

10.7.2子规则202

10.8总结205

10.9练习205

第11章DSEL设计演练206

11.1有限状态机206

11.1.1领域抽象206

11.1.2符号207

11.2框架设计目标208

11.3框架接口基础209

11.4选择一个DSL210

11.4.1转换表210

11.4.2组装成一个整体213

11.5实现216

11.6分析221

11.7语言方向223

11.8练习223

附录A预处理元编程简介226

附录Btypename和template关键字247

附录C编译期性能258

附录DMPL可移植性摘要274

参考文献275

内容摘要:

  这部著作第一次系统地阐述了模板元编程。全书从内容上大致分为理论和实践两部分。前八章和部分附录内容以Boost元编程库为主线介绍模板元编程的概念、技术、工具及陷阱。其余篇幅则主要讨论模板元编程的一个重要的应用:DSEL(Domain-SpecificEmbeddedLanguages,领域特定的嵌入式语言)的设计与实现。本书阅读门槛较高,适合希望了解模板元编程的中、高阶C++程序员尤其是程序库作者阅读。  本书是关于C++模板元编程的著作。本书主要介绍Traits和类型操纵、深入探索元函数、整型外覆器和操作、序列与迭代器、算法、视图与迭代器适配器、诊断、跨越编译期和运行期边界、领域特定的嵌入式语言、DSEL设计演练,另外附录部分还介绍了预处理元编程概述、typename和template关键字。本书通过理论联系实践,深入讲解了C++高级编程技术。  本书适合中、高阶C++程序员等参考。【作者简介】  DavidAbrahams,BoostC++程序库开发组的一名发起成员和主持人。自从1996年起,Dave就是一名ANSI/ISOC++委员会成员,他因对C++标准程序库异常处理的理论、规格和实现的贡献而名声鹊起。他的公司BoostConsulting提供了与Boost有关的支持和开发服务,以及软件构建艺术的职业培训。

书籍规格:

书籍详细信息
书名C++模板元编程站内查询相似图书
丛书名C++设计新思维
9787111267423
如需购买下载《C++模板元编程》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位机械工业出版社
版次1版印次1
定价(元)55.0语种简体中文
尺寸26装帧平装
页数 373 印数 4000

书籍信息归属:

C++模板元编程是机械工业出版社于2009.05出版的中图分类号为 TP312 的主题关于 C语言-程序设计 的书籍。