首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能用bind1/2替换boost::bind吗?

我能用bind1/2替换boost::bind吗?
EN

Stack Overflow用户
提问于 2011-10-26 23:32:46
回答 1查看 521关注 0票数 1

为了更好地理解,我可以将下面示例中对boost::bind的调用替换为std::bind1/2吗?或者是因为返回一个引用而不可能?

示例(缩写):

代码语言:javascript
复制
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 );
...
EN

回答 1

Stack Overflow用户

发布于 2011-10-26 23:37:03

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7905070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档