std:lower_bound 编译异常

std::lower_bound 编译错误
itFind = std::lower_bound(pPool->begin(),pPool->end(),nCode);



 // pPool原型: VECCODEINFO* pPool = NULL; 


//VECCODEINFO原型为: typedef std::vector<SCODEINFO> VECCODEINFO;




SCODEINFO源码很多,我截取了部分与<相关的函数


struct SCODEINFO
{
   
  bool operator <(const SCODEINFO &obj)
  {
  return nCodeNumb < obj.nCodeNumb;
  }


  bool operator <(int nCode)
  {
  return nCodeNumb < nCode;
  }

  
};




------解决方案--------------------
成员函数的:
 bool operator <(const SCODEINFO &obj)
等价于全局函数的:
 bool operator<(SCODEINFO &ob, const SCODEINFO &obj)

成员函数的:
 bool operator <(const SCODEINFO &obj) const
才等价于全局函数的:
 bool operator<(const SCODEINFO &ob, const SCODEINFO &obj)