Bar :: value()返回一个float并且是一个覆盖。 _bar是Klass的成员。可以捕获以下内容吗?如果是这样,C ++ 14的最佳方法是什么?
void Klass::foo(void)
{
using Expression = float (*)(void);
Expression e2 = [](){return _bar.value();};
}
编辑:
从一些示例代码中我搞砸了:
float Y::capture(void)
{
auto e = [=](){return _x.junk();};
Expression f = Expression(e);
return capture(f);
}
G ++ 4.9抱怨:
error: invalid cast from type ‘Y::capture()::<lambda()>’ to type ‘Y::Expression {aka float (*)()}’
Expression f = Expression(e);