今天看stlport源码,看见一个宏定义_STLP_NO_CLASS_PARTIAL_SPECIALIZATION,找了半天原来是Template Partial Specialization,模板部分特化的意思,就是含有两个以上的模板参数的模板类,
编译器允许我们先实例化其中的一个参数。
举个例子:
template
class vector{
}
template
class Vector{
}
当然也可以只部分特化模板类的某个函数:
typedef MyAlloc;
template
class vector{
template
void removeAll(){
MyAlloc::Deallocate((T*)&(*first));
}
}
当然直接偏特化namespace级别的函数也是不被允许的.
template
void Func(int index){
}
// 不合法的
template
void Fun(int index){
}
阅读(963) | 评论(0) | 转发(0) |