Boost.Lambda-取消引用占位符



是否有方法取消引用lambda表达式中的占位符?

boost::function<int(MyClass*)> f = _1->myMethod();
f(myObject);

我知道我可以装订:

boost::function<int(MyClass*)> f = boost::bind(&MyClass::myMethod, _1);

,但我想用if语句等构建更复杂的表达式。

理论上这应该有效:

struct Foo {
  int bla() { return 2; }
};
boost::function<int(Foo*)> func = (_1 ->* &Foo::bla);

关于提升邮件列表。他们看起来都很丑陋。我会坚持使用嵌套的CCD_ 1或获得现代C++编译器。

最新更新