小编Kat*_*ory的帖子

组合lambda捕获时编译错误

有人问我为什么这段代码不能编译:

int main()
{
    int a = 0;
    int x = 3, y = 2, z = 1;
    auto f = [&a,=]() { a = x + y + z; };
    f();
}
Run Code Online (Sandbox Code Playgroud)

我已经在Visual Studio 2017和wccbox中检查了gcc HEAD 8.0.0 201708,这是真的,它不能编译.

第一个gcc错误就是:

error: expected identifier before '=' token
Run Code Online (Sandbox Code Playgroud)

与lambda一致,它在抱怨=条款中抱怨.

代码有什么问题?

c++ c++11

7
推荐指数
2
解决办法
269
查看次数

标签 统计

c++ ×1

c++11 ×1