关于vc 2008模板的有关问题

关于vc 2008模板的问题
#include<iostream>
using namespace std;
template<typename T>
T max(T a, T b )
{return a>b?a:b;}
int main()
{
//cout<<max(1,3)<<endl;
cout<<max('a','b')<<endl;
return 0;
}
用08运行报错 “max”: 对重载函数的调用不明确
但是复制到6.0中就可以正常运行,为什么

------解决方案--------------------
听说6.0对C++标准的实现并不到位。

max(1,3)既可以解释为max<int>(1, 3),也可以解释为max<char>(1, 3),也可以解释为max<double>(1, 3)。编译器不知道楼主想要的是哪个。
------解决方案--------------------
using namespace std;

去掉这行
------解决方案--------------------
由于库里面本省有个max函数,你这样改一下
C/C++ code

cout<<::max('a','b')<<endl;

------解决方案--------------------
先把自己写的max改名,和库里的东西重名了。