小编Elv*_*ric的帖子

修改嵌套lambda中捕获的参数:gcc vs clang?

从切换clang到时,我遇到奇怪的行为gcc。报告错误clang时成功编译代码gcc。这是重现该行为的一个最小示例。我已经尝试过c++14c++17与多个clanggcc版本。

谁在这里,c还是gcc?

struct A {
  int value;
};

auto makeCallback(const A& a) {
    auto callback = [aCopy = a](int i) {
    [aCopy, i]() mutable { aCopy.value = i; }();
  };
return callback;
}
Run Code Online (Sandbox Code Playgroud)

编辑:将外部lambda更改为mutable,即可解决上的问题gcc

c++ gcc clang c++14 c++17

4
推荐指数
1
解决办法
72
查看次数

标签 统计

c++ ×1

c++14 ×1

c++17 ×1

clang ×1

gcc ×1