#include <map>
#include <iostream>
int main(int argc, char* argv[])
{
std::map<int, int&> m;
int x = 0;
//m[0] = x; //error
m.insert(std::pair<int, int&>(0, x));
//ちゃんと参照を保持している
x++;
std::cout << m[0] << std::endl;
return 0;
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgCnsKCXN0ZDo6bWFwPGludCwgaW50Jj4gbTsKCWludCB4ID0gMDsKCgkvL21bMF0gPSB4OwkvL2Vycm9yCgltLmluc2VydChzdGQ6OnBhaXI8aW50LCBpbnQmPigwLCB4KSk7CgoJLy/jgaHjgoPjgpPjgajlj4LnhafjgpLkv53mjIHjgZfjgabjgYTjgosKCXgrKzsKCXN0ZDo6Y291dCA8PCBtWzBdIDw8IHN0ZDo6ZW5kbDsKCgoJcmV0dXJuIDA7Cn0=