为什么我收到错误说:
在以下代码中:
template<typename T>
inline T const& max(T const& i, T const& j)
{
cout<<"Using template with 2 args."<<endl;
return (i>j) ? i : j;
}
template<typename T>
inline T const& max(T const& i, T const& j, T const& k)
{
cout<<"Using template with 3 args."<<endl;
return max(max(i,j),k);
}
void main()
{
cout<< ::max(1,2,3)<<endl;
}
我在调用之前已经定义了2参数模板函数。
答案 0 :(得分:2)
删除using namespace std
,因为有std::max
参与搜索,这就是为什么会出现第一个错误。第二个错误简单地说,有明确的变体,但它们应该得到3个args。