从方法中捕获成员

时间:2015-10-28 02:06:59

标签: c++ lambda c++14

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);

0 个答案:

没有答案