编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础
模型(model):符合一个概念的数据类型称为该概念的模型,例如: int型是Comparable概念的模型。 静态数组类型不是Assignable概念的模型(无法用“=”给整个静态数组赋值)(括号中的内容本人不太懂,有大神能解疑吗)
很多STL的实现代码就是使用概念来命名模板参数的。 为概念赋予一个名称,并使用该名称作为模板参数名。 例如
表示insertionSort这样一个函数模板的原型:
template <class Sortable> void insertionSort(Sortable a[], int n);