1

为了更好地理解,我可以将以下示例中对 boost::bind 的调用替换为 std::bind1st/2nd 吗?还是因为返回参考而不可能?

示例(缩短):

class Pos
{
public:
bool operator==( const Pos& );
...
}

class X
{
public:
const Pos& getPos()  { return m_p; }
...
private:
Pos m_p;
}

...
Pos position;
std::vector<X> v;
std::vector<X>::iterator iter;
...

iter = std::find_if( v.begin(), v.end(), boost::bind( &X::getPos, _1 ) == position );
...
4

1 回答 1

3

这是不可能的,因为既不重载也不重载bind1st(产生另一个函子)。如果不想使用,则需要自己编写仿函数,或者使用 lambda。bind2ndoperator==bindbind

于 2011-10-26T15:37:03.490 回答