比较函数

来源:百度知道 编辑:UC知道 时间:2024/05/16 17:08:19
代码为什么编译通过,连接时编译器说找不到MyGreater
template<class T>
bool MyGreater(T a, T b)
{
return a > b;
}

int main()
{
vector<int> vint(3);
vint[0] = 7;
vint[1] = 2;
vint[2] = 4;

sort(vint.begin(), vint.end() , MyGreater<int>);
copy(vint.begin(), vint.end(), ostream_iterator<int>(cout, " ") );
}
我试了一下,确实在vc8,vc7下这段代码都可以连接上的。但在vc6下不知道为什么就有问题,可能是vc6的问题,明白的能给个解释不?

你用什么编译器?
我用VC++2005提供的编译器可以通过,链接也没问题.

VC6对C++模板的支持是很垃圾的,很多模板在VC6里面工作不正常,甚至无法编译,它带的STL也被VC6拖累,很多不符合标准。

 

学习