在vs2008中编译,出现下面的异常,请教什么情况
在vs2008中编译,出现下面的错误,请问什么情况?
#include "stdafx.h"
#include<iostream>
using namespace std;
template<typename M>;
M max(M a,M b,M c)
{
if(b>a)a=b;
if(c>a)a=c;
return a;
}
int main()
{
int i1=8,i2=5,i3=6,i;
double d1=56.9,d2=90.765,d3=43.1,d;
long g1=6788,g2=-456,g3=78943,g;
i=max(i1,i2,i3);
d=max(d1,d2,d3);
g=max(g1,g2,g3);
cout<<"max_i="<<i<<endl;
cout<<"max_f="<<d<<endl; ;
cout<<"max_g="<<g<<endl;
return 0;
}
error C2988: 不可识别的模板声明/定义
------解决方案--------------------
多写了个分号
#include "stdafx.h"
#include<iostream>
using namespace std;
template<typename M>;
M max(M a,M b,M c)
{
if(b>a)a=b;
if(c>a)a=c;
return a;
}
int main()
{
int i1=8,i2=5,i3=6,i;
double d1=56.9,d2=90.765,d3=43.1,d;
long g1=6788,g2=-456,g3=78943,g;
i=max(i1,i2,i3);
d=max(d1,d2,d3);
g=max(g1,g2,g3);
cout<<"max_i="<<i<<endl;
cout<<"max_f="<<d<<endl; ;
cout<<"max_g="<<g<<endl;
return 0;
}
error C2988: 不可识别的模板声明/定义
------解决方案--------------------
多写了个分号