#include <iostream>
using namespace std;
template <class T>
T max(T m1,T m2){
return(m1>m2)? m1:m2
}
void main({
cout<<max(2,5)<<"\t"<<max(2.0,5.0)<<"\t"<<max('w','a')<<"\t"<<max("ABC","ABD")<<endl;
}
这个时候会报错
[Error] call of overloaded ‘max(int, int)’ is ambiguous
改正是
您同时拥有max和std::max。编译器不知道您要调用哪一个。您可以通过调用::max(4,5)或来告诉它std::max(4,5),或者-甚至更好- using namespace std在文件中没有。