更新 0.2 适宜读者群 和 0.3 版权 章节;将1.4节 类中类 内容移至第五章。

This commit is contained in:
Wu Ye 2013-03-14 03:13:07 +08:00
parent fa1357335f
commit 80e1e3ead9

View File

@ -22,16 +22,28 @@ C++之所以变成一门层次丰富、结构多变、语法繁冗的语言,
本文的写作初衷,就是通过“编程语言”的视角,介绍一个简单、清晰的“模板语言”。我会尽可能的将模板的诸多要素连串起来,用一些简单的例子帮助读者学习这门“语言”,让读者在编写、阅读模板代码的时候,能像 `if(exp) { dosomething(); }`一样的信手拈来,让“模板元编程”技术成为读者牢固掌握、可举一反三的有用技能。
###0.2 适宜读者群
C++ Templates和Modern C++ Design的关系
因为本文并不是用于C++入门,例子中也多少会牵涉一些其它知识,因此如果读者能够具备以下条件,会读起来更加轻松:
* 熟悉C++的基本语法;
* 使用过STL
* 熟悉一些常用的算法,以及递归等程序设计方法。
此外尽管第一章会介绍一些Template的基本语法但是还是会略显单薄。因此也希望读者能对C++ Template最基本语法形式有所了解和掌握如果会编写基本的模板函数和模板类那就更好了。
诚如上节所述本文并不是《C++ Templates》的简单重复与《Modern C++ Design》交叠更少。从知识结构上我建议大家可以先读本文再阅读《C++ Templates》获取更丰富的语法与实现细节以更进一步《Modern C++ Design》除了元编程之外还有很多的泛型编程示例原则上泛型编程的部分与我所述的内容交叉不大读者在读完1-3章了解模板的基本规则之后便可阅读《MCD》的相应章节元编程部分如Typelist建议在阅读完本文之后再行阅读或许会更易理解。
###0.3 版权
本文是随写随即同步到Github上因此在行文中难免会遗漏引用。本文绝大部分内容应是直接承出我笔但是也不定会有他山之石。所有指涉内容我会尽量以引号框记或在上下文和边角注记中标示如有遗漏烦请不吝指出。
全文所有为我所撰写的部分,作者均保留所有版权。如果有需要转帖或引用,还请注明出处并告知于我。
## 1. Template的基本语法
###1.1 Template Class的基本语法
###1.2 Template Function的基本语法
###1.3 整型也可是Template参数
###1.4 类中类:灵活的模板定义
## 2. 模板世界的If-Then-Else特化与偏特化
###2.1 实例化/特化类模板:从类模板到可以定义变量的具体类
@ -53,11 +65,12 @@ C++ Templates和Modern C++ Design的关系
###4.6 实战单元实现元编程上的数据结构——以Vector为例
## 5 关于模板,你还需要知道的其它常识
###5.1 Template-Template Class
###5.2 技巧单元:高阶函数——从函数到函数的组合
###5.3 实战单元STL中的Allocator Rebinder
###5.4 像看堆栈一样的看出错信息
###5.5 模板的症结:易于实现,难于完美
###5.1 类中类:灵活的模板定义
###5.2 Template-Template Class
###5.3 技巧单元:高阶函数——从函数到函数的组合
###5.4 实战单元STL中的Allocator Rebinder
###5.5 像看堆栈一样的看出错信息
###5.6 模板的症结:易于实现,难于完美
alexandrescu 关于 min max 的讨论《再谈Min和Max》