请问一下各位,都用什么样的编译器?
#include <iostream>#include <string>
using namespace std;
template <typename T>
T const & max2(T const & a, T const & b )
{
return a<b?b:a;
}
template <typename T>
T * const &max2(T* const &a ,T * const &b)
{
return *a<*b?b:a;
}
const char * const & max2(const char * const &a, const char * const &b)
{
return strcmp(a,b)<0? b:a;
}
//
int main()
{
int ia=3;
int ib=8;
char * s1="hello";
char * s2="hell";
cout<<* max2(&ia, &ib)<<"\n";
cout<< max2(ia,ib)<<"\n";
cout<< max2(s1,s2)<<"\n";
return 0;
}
//
上面这几行代码,我在VC++6.0上编译不过,错误提示的大意好象是max2不知道如何匹配。可在Visual Studio2005
下却顺利通过。。。
请问各位: 1. 是编译器的差异造成这种现象吗?
2. 各位都用什么样的编译器?有哪种是"标准的"?(很愚蠢的问题,请别笑出声来).