#include <iostream>
struct A {
A(int i) : i(i) {}
A & operator = ( const A & a )
{
std::cout << "op=(" << i << "," << a.i << ") ";
i = a.i;
return *this;
}
int i = 0;
};
A & bar( int n ) {
std::cout << "bar(" << n << ") ";
return *new A(n);
}
int main() {
bar( 1 ) = bar( 2 ) = bar( 3 );
std::cout << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgogCnN0cnVjdCBBIHsKCUEoaW50IGkpIDogaShpKSB7fQogICAgQSAmIG9wZXJhdG9yID0gKCBjb25zdCBBICYgYSApCiAgICB7IAogICAgCXN0ZDo6Y291dCA8PCAib3A9KCIgPDwgaSA8PCAiLCIgPDwgYS5pIDw8ICIpICI7CiAgICAJaSA9IGEuaTsKICAgIAlyZXR1cm4gKnRoaXM7IAoJfQoJaW50IGkgPSAwOwp9OwogCkEgJiBiYXIoIGludCBuICkgewogICAgc3RkOjpjb3V0IDw8ICJiYXIoIiA8PCBuIDw8ICIpICI7CiAgICByZXR1cm4gKm5ldyBBKG4pOwp9CiAKaW50IG1haW4oKSB7CiAgICBiYXIoIDEgKSA9IGJhciggMiApID0gYmFyKCAzICk7CiAgICBzdGQ6OmNvdXQgPDwgc3RkOjplbmRsOwp9