一个有关vc6++与dev-c++编译环境的问题
kfjin 2003-11-24 03:17:52 #include <iostream>
using namespace std;
template <class Type>
Type min( Type a, Type b ){ return a < b ? a : b; }
const int size = 10;
int ia[size];
int main()
{
int *p = &ia[ 0 ];
int elem_cnt = 0;
while ( min(p++,&ia[size]) != &ia[size] )
++elem_cnt;
cout << "size is " << size << endl
<< "elem_cnt is " << elem_cnt << endl;
system("PAUSE");
return 0;
}
上述程序在VC6++环境下可编译通过,但在dev-c++中确不能通过,
提示出错语句为:
while ( min(p++,&ia[size]) != &ia[size] )
出错原因为:
call of overloaded `min(int*, int*)' is ambiguous
为何呢,为何会出现二义性?
请回答,谢谢!