# C++ Template 进阶指南 ## 0. 前言 ## 1. Template的基本语法 ###1.1 Template Class的基本语法 ###1.2 Template Function的基本语法 ###1.3 整型也可是Template参数 ###1.4 类中类:灵活的模板定义 ## 2. 模板世界的If-Then-Else:特化与偏特化 ###2.1 实例化/特化类模板:从类模板到可以定义变量的具体类 ###2.2 类模板的匹配规则:特化与部分特化 ###2.3 函数模板的重载、特化与部分特化 ###2.4 技巧单元:模板与继承 ## 3 拿起特化的武器,去写程序吧! ###3.1 利用模板特化规则实现If-Then-Else与Switch-Case ###3.2 特化可以有多个选择:替换失败并不是一个错误,只是一种可能 ###3.3 技巧单元:获得类型的属性 ———— 类型萃取(Type Traits) ## 4 用模板写程序吧!骚年! ## 4.1 模板上的递归 ## 4.2 实战单元:元编程的Fibonacci数列 ## 4.3 技巧单元:typename与template的另一种用法 ## 4.4 实战单元:撰写你自己的元编程“函数”库 ## 4.5 实战单元:实现元编程上的数据结构 ———— 以Vector为例 ## 5 关于模板,你还需要知道的其它常识 ###5.1 Template-Template Class ###5.2 技巧单元:高阶函数 ———— 从函数到函数的组合 ###5.3 实战单元:STL中的Allocator Rebinder ## 6 结语