gpt4 book ai didi

c++ - 我可以用 bind1st/2nd 替换 boost::bind 吗?

转载 作者:行者123 更新时间:2023-11-30 03:05:14 25 4
gpt4 key购买 nike

为了更好地理解,我可以将以下示例中对 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 );
...

最佳答案

这是不可能的,因为 bind1stbind2nd 都没有像 bind 那样重载 operator== (产生另一个仿函数)。如果你不想使用 bind,你需要自己编写仿函数,或者使用 lambda。

关于c++ - 我可以用 bind1st/2nd 替换 boost::bind 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com