我有下面一個快速測試:C++ 11:可變的lambda似乎沒有改變變量?
#include<iostream>
using namespace std;
int main(){
int i=2;
auto f=[=]()mutable{++i;};
f();
f();
cout<<i<<endl;
return 0;
}
但結果仍然打印「2」。爲什麼我不在可變的lambda裏面修改?我正在使用clang --std = C++ 1z。
謝謝!
如果lambda打印出它自己的'i'副本,這可能有助於說明差異。然後你會看到它的值不同於'main'的範圍中的'int i'。 –