12.3.5 部分特化

    C++引入了部分特化(Partial Specialization)来部分地限制类模板的通用性,例如代码12.8中可使用下述方式对类定义进行特化。


    template<>class Stack<double,int num>只限制了前一个类型参数为double,对第2个int型常量没有限制,这个例子有些特殊,来看一个通用模板类的例子,如下所示。 template<class T1,class T2>class Example { //类定义 };部分特化定义如下所示。 template<class T2>class Example<int,T2> { //类定义 }

    如果所有类型都已指定,那么template后面的<>内为空,这就是显式特化,从这个角度看,部分特化和显式特化是相通的。