テンプレートパラメーターなしでテンプレート関数を呼び出すことができると思いました。テンプレート パラメータを double に指定した場合にのみ、このコードが機能するのはなぜですか?
#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
}