template<typename T>
int compare(const T& v1,const T& v2)
{
if(v1 > v2)
return 1;
else
return 0;
}
int main()
{
compare("hi","world");
retuen 0;
}
这时候编译会出错:no matching function for call "int compare(int const char[3],int const char[6])"
原因:
对形参为引用来说,不会自动将形参转换。所以
在模版特化时,两个形参将会被推断为不同的类型而出错。