为什么我收到一条错误消息:
- 错误 C2668:“max”:对重载函数的模糊调用
- 错误 C2780:“const T &max(const T &,const T &,const T &)”:需要 3 个参数 - 提供了 2 个。
在以下代码中:
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 参数模板函数。