是否有方法取消引用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++编译器。