fix typos

This commit is contained in:
jTux 2014-02-18 23:42:28 +08:00
parent 899c110924
commit 76d4d32e53

View File

@ -1,4 +1,4 @@

# C++ Template 进阶指南
## 0. 前言
@ -13,11 +13,11 @@ C++之所以变成一门层次丰富、结构多变、语法繁冗的语言,
但是实际上C++模板远没有想象的那么复杂。我们只需要换一个视角在C++03的时候模板本身就可以独立成为一门“语言”。它有“值”有“函数”有“表达式”和“语句”。除了语法比较蹩脚外它既没有指针也没有数组更没有C++里面复杂的继承和多态。可以说它要比C语言要简单的多。如果我们把模板当做是一门语言来学习那只需要花费学习OO零头的时间即可掌握。按照这样的思路可以说在各种模板书籍中出现的多数技巧都可以被轻松理解。
简单回顾一下模板的历史。87年的时候泛型Generic Programming便被纳入了C++的考虑范畴并直接导致了后来模板语法的产生。可以说模板语法一开始就是为了在C++中提供泛型机制。92年的时候Alexandar Stepanov开始研究利用模板语法制作程序库后来这一程序库发展成STL并在93年被接纳入标准中。
简单回顾一下模板的历史。87年的时候泛型Generic Programming便被纳入了C++的考虑范畴并直接导致了后来模板语法的产生。可以说模板语法一开始就是为了在C++中提供泛型机制。92年的时候Alexander Stepanov开始研究利用模板语法制作程序库后来这一程序库发展成STL并在93年被接纳入标准中。
此时不少人以为STL已经是C++模板的集大成之作C++模板技止于此。但是在95年的《C++ Report》上John Barton和Lee Nackman提出了一个矩阵乘法的模板示例。可以说元编程在那个时候开始被很多人所关注。自此篇文章发表之后很多大牛都开始对模板产生了浓厚的兴趣。其中对元编程技法贡献最大的当属Alexandrescu的《Modern C++ Design》及模板程序库Loki。这一2001年发表的图书间接地导致了模板元编程库的出现。书中所使用的Typelist等泛型组件和Policy等设计方法令人耳目一新。但是因为全书用的是近乎Geek的手法来构造一切设施因此使得此书阅读起来略有难度。
2002年出版的另一本书《C++ Templates》可以说是在Template方面的集大成作。它详细阐述了模板的语法、提供了和模板有关的语言细节信息,举了很多有代表性例子。但是对于模板新手来说,这本书细节如此丰富,让他们随随便便就打了退堂鼓缴械投降。
2002年出版的另一本书《C++ Templates》可以说是在Template方面的集大成作。它详细阐述了模板的语法、提供了和模板有关的语言细节信息,举了很多有代表性例子。但是对于模板新手来说,这本书细节如此丰富,让他们随随便便就打了退堂鼓缴械投降。
本文的写作初衷,就是通过“编程语言”的视角,介绍一个简单、清晰的“模板语言”。我会尽可能的将模板的诸多要素连串起来,用一些简单的例子帮助读者学习这门“语言”,让读者在编写、阅读模板代码的时候,能像 `if(exp) { dosomething(); }`一样的信手拈来,让“模板元编程”技术成为读者牢固掌握、可举一反三的有用技能。