#include <iostream>
#include <list>
#include <functional>
using namespace std;
int main() {
int a = 2, b = 6, c = 1;
list<reference_wrapper<int>> mylist;
mylist.push_back(a);
mylist.push_back(b);
mylist.push_back(c);
for(auto x : mylist) {
cout << x << " ";
}
cout << endl;
a = 3; // <- this setting will modify mylist!
for(auto x : mylist) {
cout << x << " ";
}
return 0;
}
CiAgICAjaW5jbHVkZSA8aW9zdHJlYW0+CiAgICAjaW5jbHVkZSA8bGlzdD4KICAgICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogICAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKICAgIAogICAgaW50IG1haW4oKSB7CiAgICAJaW50IGEgPSAyLCBiID0gNiwgYyA9IDE7CiAgICAJCiAgICAJbGlzdDxyZWZlcmVuY2Vfd3JhcHBlcjxpbnQ+PiBteWxpc3Q7CiAgICAJbXlsaXN0LnB1c2hfYmFjayhhKTsKICAgIAlteWxpc3QucHVzaF9iYWNrKGIpOwogICAgCW15bGlzdC5wdXNoX2JhY2soYyk7CiAgICAJCiAgICAJZm9yKGF1dG8geCA6IG15bGlzdCkgewogICAgCQljb3V0IDw8IHggPDwgIiAiOwogICAgCX0KICAgIAljb3V0IDw8IGVuZGw7CiAgICAJYSA9IDM7IC8vIDwtIHRoaXMgc2V0dGluZyB3aWxsIG1vZGlmeSBteWxpc3QhCiAgICAKICAgIAlmb3IoYXV0byB4IDogbXlsaXN0KSB7CiAgICAJCWNvdXQgPDwgeCA8PCAiICI7CiAgICAJfQogICAgCXJldHVybiAwOwogICAgfQo=