|
@@ -1619,32 +1619,32 @@ template <typename T> struct X {
|
|
|
|
|
|
从下一章开始,我们将进入元编程环节。我们将使用大量的示例,一方面帮助巩固大家学到的模板知识,一方面也会引导大家使用函数式思维去解决常见的问题。
|
|
从下一章开始,我们将进入元编程环节。我们将使用大量的示例,一方面帮助巩固大家学到的模板知识,一方面也会引导大家使用函数式思维去解决常见的问题。
|
|
|
|
|
|
-## 3 拿起武器,去写程序吧!
|
|
|
|
-###3.1 利用模板特化规则实现If-Then-Else与Switch-Case
|
|
|
|
-###3.2 特化可以有多个选择:替换失败并不是一个错误,只是一种可能
|
|
|
|
-###3.3 技巧单元:获得类型的属性——类型萃取(Type Traits)
|
|
|
|
|
|
+## 3 深入理解特化
|
|
|
|
+
|
|
|
|
+###3.1 利用偏特化实现If-Then-Else
|
|
|
|
+###3.2 正确的理解偏特化
|
|
|
|
+###3.3 后悔药:SFINAE
|
|
|
|
+###3.4 技巧单元:获得类型的属性——类型萃取(Type Traits)
|
|
|
|
|
|
## 4 用模板写程序吧!骚年!
|
|
## 4 用模板写程序吧!骚年!
|
|
###4.1 模板上的递归
|
|
###4.1 模板上的递归
|
|
###4.2 将循环变成递归,将分支变成递归,将一切变成递归
|
|
###4.2 将循环变成递归,将分支变成递归,将一切变成递归
|
|
###4.3 实战单元:元编程的Fibonacci数列
|
|
###4.3 实战单元:元编程的Fibonacci数列
|
|
-###4.4 技巧单元:typename与template的另一种用法
|
|
|
|
-###4.5 实战单元:撰写你自己的元编程“函数”库
|
|
|
|
-###4.6 实战单元:实现元编程上的数据结构——以Vector为例
|
|
|
|
-
|
|
|
|
-## 5 关于模板,你还需要知道的其它常识
|
|
|
|
-###5.1 类中类:灵活的模板定义
|
|
|
|
-###5.2 Template-Template Class
|
|
|
|
-###5.3 技巧单元:高阶函数——从函数到函数的组合
|
|
|
|
-###5.4 实战单元:STL中的Allocator Rebinder
|
|
|
|
-###5.5 像看堆栈一样的看出错信息
|
|
|
|
-###5.6 模板的症结:易于实现,难于完美
|
|
|
|
|
|
|
|
-alexandrescu 关于 min max 的讨论:《再谈Min和Max》
|
|
|
|
|
|
+## 5 元编程下的算法
|
|
|
|
+###5.1 列表与数组
|
|
|
|
+###5.2 字典结构
|
|
|
|
+###5.3 “快速”排序
|
|
|
|
|
|
-## 6 C++11的新特性
|
|
|
|
-###6.1 变参模板
|
|
|
|
-###6.2 Lambda与模板程序
|
|
|
|
|
|
+## 6 关于模板,你还需要知道的其它常识
|
|
|
|
+###6.1 类中类:灵活的模板定义
|
|
|
|
+###6.2 Template-Template Class
|
|
|
|
+###6.3 技巧单元:高阶函数——从函数到函数的组合
|
|
|
|
+###6.4 实战单元:STL中的Allocator Rebinder
|
|
|
|
+###6.5 像看堆栈一样的看出错信息
|
|
|
|
+###6.6 模板的症结:易于实现,难于完美
|
|
|
|
+
|
|
|
|
+alexandrescu 关于 min max 的讨论:《再谈Min和Max》
|
|
|
|
|
|
## 7 模板的威力:从foreach, transform到Linq
|
|
## 7 模板的威力:从foreach, transform到Linq
|
|
###7.1 Foreach与Transform
|
|
###7.1 Foreach与Transform
|
|
@@ -1655,7 +1655,6 @@ alexandrescu 关于 min max 的讨论:《再谈Min和Max》
|
|
|
|
|
|
## 8 结语:讨论有益,争端无用
|
|
## 8 结语:讨论有益,争端无用
|
|
|
|
|
|
-
|
|
|
|
[1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
|
|
[1]: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf
|
|
[2]: http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html
|
|
[2]: http://blog.llvm.org/2009/12/dreaded-two-phase-name-lookup.html
|
|
[3]: https://goo.gl/zCRNYx
|
|
[3]: https://goo.gl/zCRNYx
|