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

- (美)DavidAbrahams,AlekseyGurtovoy编著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111267423
- 出版时间:2010
- 标注页数:277页
- 文件大小:93MB
- 文件页数:290页
- 主题词:C语言-程序设计
PDF下载
下载说明
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
热门推荐
- 1616955.html
- 923169.html
- 2075237.html
- 2811860.html
- 934226.html
- 1371607.html
- 3883721.html
- 764436.html
- 800581.html
- 829882.html
- http://www.ickdjs.cc/book_2495406.html
- http://www.ickdjs.cc/book_3162541.html
- http://www.ickdjs.cc/book_3066261.html
- http://www.ickdjs.cc/book_750951.html
- http://www.ickdjs.cc/book_355831.html
- http://www.ickdjs.cc/book_1636536.html
- http://www.ickdjs.cc/book_2850130.html
- http://www.ickdjs.cc/book_147807.html
- http://www.ickdjs.cc/book_2459348.html
- http://www.ickdjs.cc/book_1880654.html