模板部分特化
在stlport源码中,看见一个宏定义_STLP_NO_CLASS_PARTIAL_SPECIALIZATION,找了半天原来是Template Partial Specialization,模板部分特化的意思,就是含有两个以上的模板参数的模板类, 编译器允许我们先实例化其中的一个参数。 举个例子: template class vector{ } template class Vector<t, myalloc="">{ } 当然也可以只部分特化模板类的某个函数: typedef MyAlloc; template class vector{ template void removeAll<t, myalloc="">(){ MyAlloc::Deallocate((T*)&(*first)); } } 当然直接偏特化namespace级别的函数也是不被允许的. template void Func(int index){ } // 不合法的 template void Fun<t, int="">(int index){ }
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

更多精彩