为什么c++ 11要求我们编写:

[a,b]() mutable { a=7; } // b is needlessly mutable, potential source of bugs

代替:
[mutable a,b]() { a=7; } // no problems here

这是不够重要的疏忽吗?还是有特定的技术原因?

最佳答案

n2651中提到了您的建议:

我不知道这是否是唯一原因,但似乎确实有人考虑过。
但是,在Herb Sutter's proposal中,他建议摆脱mutable而不是隐式创建捕获副本const,因此我们可能会再次看到更改。

10-06 09:37