特化的含义:
特化其实就是特殊化。
我们先从函数模板的特化开始说,比如
template <typename T>
T max(T lHs, T lRs)
{
return lHs > lRs ? lHs : lRs;
}
int main()
{
max(1, 2);
return 0;
}
这样调用时没有问题的。接下来
template <typename T>
T max(T lHs, T lRs)
{
return lHs > lRs ? lHs : lRs;
}
int main()
{
//max(1, 2);
max("a", "b");
return 0;
}
如果我将里面传入的是字符串了?答案-》编译的时候不会报错,运行也不会报错。但是这样会导致一个问题,我该怎么来判断传入进来的左右两个值的大小了?
这个时候就需要函数模板特化一个const char 类型的函数。
#include<string.h>
template <typename T>
T max(T lHs, T lRs)
{
return lHs > lRs ? lHs : lRs;
}
template<>
const char* max(const char* LChar, const char * Rchar)
{
return strcmp(LChar, Rchar)>0?LChar:Rchar;
}
int main(