中文的C++ Template的教学指南。与知名书籍C++ Templates不同,该系列教程将C++ Templates作为一门图灵完备的语言来讲授,以求帮助读者对Meta-Programming融会贯通。

Wu Ye bf6d2261c3 List of content changed. 12 年之前
.gitattributes 758bc2aefe Add list of content 12 年之前
.gitignore 758bc2aefe Add list of content 12 年之前
CppTemplateTutorial.cpp 758bc2aefe Add list of content 12 年之前
CppTemplateTutorial.sln 758bc2aefe Add list of content 12 年之前
CppTemplateTutorial.vcxproj bf6d2261c3 List of content changed. 12 年之前
CppTemplateTutorial.vcxproj.filters bf6d2261c3 List of content changed. 12 年之前
ReadMe.md bf6d2261c3 List of content changed. 12 年之前
stdafx.cpp 758bc2aefe Add list of content 12 年之前
stdafx.h 758bc2aefe Add list of content 12 年之前
targetver.h 758bc2aefe Add list of content 12 年之前

ReadMe.md



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 将循环变成递归,将分支变成递归,将一切变成递归 ###4.3 实战单元:元编程的Fibonacci数列 ###4.4 技巧单元:typename与template的另一种用法 ###4.5 实战单元:撰写你自己的元编程“函数”库 ###4.6 实战单元:实现元编程上的数据结构 ———— 以Vector为例

5 关于模板,你还需要知道的其它常识

###5.1 Template-Template Class ###5.2 技巧单元:高阶函数 ———— 从函数到函数的组合 ###5.3 实战单元:STL中的Allocator Rebinder ###5.4 像看堆栈一样的看出错信息

6 结语