struct Foo {
void replaceBy(Foo*& foo, Foo* bar) {
delete foo;
foo = bar;
}
};
int main() {
Foo *foo = new Foo;
Foo *bar = new Foo;
foo->replaceBy(foo, bar);
delete bar;
return 0;
}
c3RydWN0IEZvbyB7CnZvaWQgcmVwbGFjZUJ5KEZvbyomIGZvbywgRm9vKiBiYXIpIHsKICBkZWxldGUgZm9vOwogIGZvbyA9IGJhcjsKfQp9OwoKaW50IG1haW4oKSB7CiAgRm9vICpmb28gPSBuZXcgRm9vOwogIEZvbyAqYmFyID0gbmV3IEZvbzsKICBmb28tPnJlcGxhY2VCeShmb28sIGJhcik7CiAgZGVsZXRlIGJhcjsKICByZXR1cm4gMDsKfQ==