简短示例:
#include <iostream>
int main()
{
    int n;
    [&](){n = 10;}();             // OK
    [=]() mutable {n = 20;}();    // OK
    // [=](){n = 10;}();          // Error: a by-value capture cannot be modified in a non-mutable lambda
    std::cout << n << "\n";       // "10"
}问题:为什么我们需要mutable关键字?与传递给命名函数的传统参数完全不同。背后的原理是什么?
我给人的印象是,按值捕获的全部目的是允许用户更改临时值-否则,使用按引用捕获几乎总是更好,不是吗?
有什么启示吗?
(顺便说一下,我正在使用MSVC2010。AFAIK,这应该是标准的)
const默认情况下不是所有其他功能,则不确定是否很好。
                
const可以默认设置某些东西了!