#include <iostream>
struct Bar {
Bar() {
std::cout << "bar" << this<< std::endl;
}
~Bar() {
std::cout << "~bar" << this<<std::endl;
}
};
struct Foo {
Foo(Bar && = Bar()) {
std::cout << "foo:" << this << std::endl;
}
~Foo() {
std::cout << "~foo:" << this << std::endl;
}
};
void test(Foo = Foo()) {
std::cout << 5566 << std::endl;
}
int main() {
std::cout << 1 << std::endl;
{
Foo foo;
std::cout << 5566 << std::endl;
}
std::cout << 2 << std::endl;
test();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEJhciB7CiAgQmFyKCkgewogICAgc3RkOjpjb3V0IDw8ICJiYXIiIDw8IHRoaXM8PCBzdGQ6OmVuZGw7CiAgfQoKICB+QmFyKCkgewogICAgc3RkOjpjb3V0IDw8ICJ+YmFyIiA8PCB0aGlzPDxzdGQ6OmVuZGw7CiAgfQp9OwoKc3RydWN0IEZvbyB7CiAgRm9vKEJhciAmJiA9IEJhcigpKSB7CiAgICBzdGQ6OmNvdXQgPDwgImZvbzoiIDw8IHRoaXMgPDwgc3RkOjplbmRsOwogIH0KCiAgfkZvbygpIHsKICAgIHN0ZDo6Y291dCA8PCAifmZvbzoiIDw8IHRoaXMgPDwgc3RkOjplbmRsOwogIH0KfTsKCnZvaWQgdGVzdChGb28gPSBGb28oKSkgewogIHN0ZDo6Y291dCA8PCA1NTY2IDw8IHN0ZDo6ZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgc3RkOjpjb3V0IDw8IDEgPDwgc3RkOjplbmRsOwogIHsKICAgIEZvbyBmb287CiAgICBzdGQ6OmNvdXQgPDwgNTU2NiA8PCBzdGQ6OmVuZGw7CiAgfQogIHN0ZDo6Y291dCA8PCAyIDw8IHN0ZDo6ZW5kbDsKICB0ZXN0KCk7CiAgcmV0dXJuIDA7Cn0K