我打算应用一下函数模板的知识,声明了T为类型参数,但是这个类型参数应用与两个函数模板时编译器就会报错,这是为什么?
#include<iostream>
using namespace std;
template<typename T1,typename T2>
T1 max(T1 a,T1 b,T1 c)
{
if(a>b)
{
b=a;
}
if(c>b)
{
b=c;
}
return b;
}
T min(T a,T b,T c)
{
if(a<b)
{
b=a;
}
if(c<b)
{
b=c;
}
return b;
}
int main()
{
int i1=1,i2=2,i3=3,i,ii;
double a1=2.2222222222,a2=3.333333333,a3=4.4444444444444,a,aa;
long b1=2134321,b2=231233,b3=3474377,b,bb;
i=max(i1,i2,i3);
a=max(a1,a2,a3);
b=max(b1,b2,b3);
ii=min(i1,i2,i3);
aa=min(a1,a2,a3);
bb=min(b1,b2,b3);
cout<<i<<endl<<ii<<endl;
cout<<a<<endl<<aa<<endl;
cout<<b<<endl<<bb<<endl;
return 0;
}