我有问题要问。xutility.h错误C2064:术语不会评估为需要2个参数的函数
我已经创建了一个名为AstarPlanlama级别且这两个函数:
bool AstarPlanlama::nodeComp(const Node* lhs, const Node* rhs)
{
return lhs->F < rhs->F;
}
void AstarPlanlama::enKucukFliNodeBul(std::list<Node*> * OPEN)
{
std::list<Node*>::iterator it = std::min_element(OPEN->begin(), OPEN->end(), &AstarPlanlama::nodeComp);
OPEN->sort(&AstarPlanlama::nodeComp);
Q = OPEN->front();
OPEN->pop_front();
}
当我编译我的代码在xutility.h文件时发生错误。
template<class _Pr, class _Ty1, class _Ty2> inline
bool _Debug_lt_pred(_Pr _Pred,
_Ty1& _Left, _Ty2& _Right,
_Dbfile_t _File, _Dbline_t _Line)
{ // test if _Pred(_Left, _Right) and _Pred is strict weak ordering
if (!_Pred(_Left, _Right))
return (false);
else if (_Pred(_Right, _Left))
_DEBUG_ERROR2("invalid operator<", _File, _Line);
return (true);
}
的功能Declerations:
bool nodeComp(const Node* lhs, const Node* rhs);
void enKucukFliNodeBul(std::list<Node*> * OPEN);
错误行是如果
什么是错的代码(_Pred(_Left,_right)!)?
感谢您对您的回报..
我的问候..
你可以显示两个函数的声明吗?此外,所有大写的名称都是预处理器惯用的名称。我强烈建议不要调用任何OPEN,因为名称可能与预处理器宏冲突,导致各种有趣的调试。 –
查看“输出”窗口。错误的完整上下文将会在那里,包括哪些模板实例化在哪些文件中导致错误。 – Cameron
成员函数有一个额外的参数 - “this”。实际上,你的成员函数的计算结果是一个采用** 3 **参数的函数,当然,除非它是静态的。 – chris