图书介绍

C++模板元编程【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

C++模板元编程
  • (美)DavidAbrahams,AlekseyGurtovoy编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111267423
  • 出版时间:2010
  • 标注页数:277页
  • 文件大小:93MB
  • 文件页数:290页
  • 主题词:C语言-程序设计

PDF下载


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

下载说明

C++模板元编程PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第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.5 Boost Type Traits程序库概览19

2.5.1一般知识20

2.5.2主类型归类20

2.5.3次类型归类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.1 lambda元函数41

3.3.2 apply元函数42

3.4 lambda的其他能力43

3.4.1偏元函数应用43

3.4.2元函数复合43

3.5 Lambda的细节43

3.5.1占位符43

3.5.2占位符表达式的定义45

3.5.3 Lambda和非元函数模板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.1 Concepts61

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.1 list72

5.8.2 vector73

5.8.3 deque74

5.8.4 range_c74

5.8.5 map74

5.8.6 set75

5.8.7 iterator_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.5 begin和end82

5.11.6加入扩充性85

5.12细节86

5.13练习87

第6章 算法90

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

6.2 MPL中的算法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.2 MPL静态断言129

8.3.3类型打印136

8.4历史138

8.5细节138

8.6练习139

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

9.1 for each140

9.1.1类型打印140

9.1.2类型探访142

9.2实现选择143

9.2.1 if语句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.10 sizeof技巧171

9.11总结172

9.12练习172

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

10.1一个小型语言173

10.2路漫漫其修远兮175

10.2.1 Make工具语言175

10.2.2巴科斯-诺尔模式177

10.2.3 YACC179

10.2.4 DSL摘要181

10.3 DSL182

10.4 C++用作宿主语言184

10.5 Blitz++和表达式模板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.7 Boost Spirit程序库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

附录B typename和template关键字247

附录C编译期性能258

附录D MPL可移植性摘要274

参考文献275

热门推荐