c ++ lambda通过引用捕获上下文以及`this`指针

时间:2014-07-09 12:44:59

标签: c++ lambda

是否可以通过引用捕获上下文,还可以使用lambda函数捕获this指针?

以下代码似乎不起作用。我怎么能这样做?

[&, this] () { }

1 个答案:

答案 0 :(得分:4)

它"工作"很好的m8:

#include <iostream>

struct T
{
    int y;

    T() : y(0)
    {
        int x = 0;
        [&, this](){ x = 1; y = 2; }();

        std::cout << x << ' ' << y << '\n';  // 1 2
    }
};

int main()
{
    T t;
}

指定this实际上是多余的,因为&已经捕获了它。

live demo