深入分析C++模板特化与偏特化-创新互联
1.模板特化
1.1概述
模板特化(template specialization)不同于模板的实例化,模板参数在某种特定类型下的具体实现称为模板的特化。模板特化有时也称之为模板的具体化,分别有函数模板特化和类模板特化。
1.2函数模板特化
函数模板特化是在一个统一的函数模板不能在所有类型实例下正常工作时,需要定义类型参数在实例化为特定类型时函数模板的特定实现版本。查看如下例子。
#includeusing namespace std; template T Max(T t1,T t2) { return (t1>t2)?t1:t2; } typedef const char* CCP; template<> CCP Max (CCP s1,CCP s2) { return (strcmp(s1,s2)>0)?s1:s2; } int main() { //调用实例:int Max (int,int) int i=Max(10,5); //调用显示特化:const char* Max (const char*,const char*) const char* p=Max ("very","good"); cout<<"i:"<
当前标题:深入分析C++模板特化与偏特化-创新互联
标题URL:http://tyjierui.cn/article/coisoj.html