书上的一道题,但就是编译不了。。。
// OOP 第八章:模板 例题8.2
//
//
template <class T>
T max( T x, T y )
{
return( x>y )?(x):(y);
}
double max( double, double ); //重载模板函数
//int max( int, int );
#include <iostream>
using namespace std;
void main()
{
int x=3, y=4;
long l=5;
double a=1.1, b=3.4;
cout << max( x, y ) << endl; //调用模板函数 int max( int, int )
cout << max( a, b ) << endl; //调用模板函数 double max( double, double )
cout << max( l, a ) << endl; //调用重载模板函数 double max( double, double )
cout << max( a, l ) << endl; //调用重载模板函数 double max( double, double )
cout << max( x, l ) << endl; //调用重载模板函数 double max( double, double )
}
如上。。 vc6 提示:'T __cdecl max(T,T)' : template parameter 'T' is ambiguous could be 'double' or 'long'
.
.
.
后3个 max() 语句不是重载了吗? 为什么还提示 T 不明确是double还是long呢?