我写了这样的模板程序,请问可以在什么平台下运行?

来源:百度知道 编辑:UC知道 时间:2024/06/21 23:27:25
我自认为是正确的在vc6.0下运行但是通不过,为什么呢,有没有什么可以解决的办法?
#include <iostream>
using namespace std;
template <typename T1 typename T2>
T const& max(T1 const& a,T2 const& b)
{
return a>b?a:b;
}

void main()
{
cout<<"Max(3,5) is:"<<max(3,5)<<endl;
cout<<"Max('3','5') is:"<<max('3','5')<<endl;
cin.get();
}

楼主太粗心了啊, 代码中的template <typename T1 typename T2> 少了个逗号,而T const& max(T1 const& a,T2 const& b) 中的T未声明,应该是

#include <iostream>
using namespace std;

template <typename T1, typename T2>
T1 const& max(T1 const& a,T2 const& b)
{
return a>b?a:b;
}

void main()
{
cout<<"Max(3,5) is:"<<max(3,5)<<endl;
cout<<"Max('3','5') is:"<<max('3','5')<<endl;
cin.get();
}

这样就行了

#include <iostream>
using namespace std;
template <class T>
T const& max(T const& a,T const& b)
{
return a>b?a:b;
}

void main()
{
cout<<"Max(3,5) is:"<<max(3,5)<<endl;
cout<<"Max('3','5') is:"<<max('3','5')<<endl;
cin.get();
}

vc6.