#include <iostream>
#include <functional>
using namespace std;
struct Test {
mutable int a;
};
void testFunc(Test &test) {
test.a = 2;
}
int main() {
Test test{1};
auto l = [test]() mutable {testFunc(test);};
l();
cout << (test.a == 2 ? "reference" : "value");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBUZXN0IHsKICAgIG11dGFibGUgaW50IGE7Cn07Cgp2b2lkIHRlc3RGdW5jKFRlc3QgJnRlc3QpIHsKICAgIHRlc3QuYSA9IDI7Cn0KCmludCBtYWluKCkgewogICAgVGVzdCB0ZXN0ezF9OwogICAgYXV0byBsID0gW3Rlc3RdKCkgbXV0YWJsZSB7dGVzdEZ1bmModGVzdCk7fTsKICAgIGwoKTsKICAgIGNvdXQgPDwgKHRlc3QuYSA9PSAyID8gInJlZmVyZW5jZSIgOiAidmFsdWUiKTsJCglyZXR1cm4gMDsKfQ==