我以为我们可以在没有模板参数的情况下调用模板函数。为什么此代码仅在我将模板参数指定为双精度时才有效?
#include <iostream>
template <typename T>
T max(T x, T y)
{
return x > y ? x : y;
}
int main()
{
cout<<::max(3,4.7)<<"\n"; //Error
cout<<::max<int>(3,4.7)<<"\n"; //Error
cout<<::max<double>(3,4.7)<<"\n"; //Works
}