#include <iostream>
using namespace std;
struct test {
test() { cout << "constructor" << endl; }
test(const test&) { cout << "copy constructor" << endl; }
test(test&&) { cout << "move constructor" << endl; }
~test() { cout << "destructor" << endl; }
};
struct nested {
test t;
// nested() {}
};
auto main() -> int {
// prints "constructor", "copy constructor" and "destructor"
auto n = nested{};
cout << endl;
return 0;
}
ICAgICNpbmNsdWRlIDxpb3N0cmVhbT4KICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAKICAgIHN0cnVjdCB0ZXN0IHsKICAgICAgICB0ZXN0KCkgICAgICAgICAgICB7IGNvdXQgPDwgImNvbnN0cnVjdG9yIiA8PCBlbmRsOyB9CiAgICAgICAgdGVzdChjb25zdCB0ZXN0JikgeyBjb3V0IDw8ICJjb3B5IGNvbnN0cnVjdG9yIiA8PCBlbmRsOyB9CiAgICAgICAgdGVzdCh0ZXN0JiYpICAgICAgeyBjb3V0IDw8ICJtb3ZlIGNvbnN0cnVjdG9yIiA8PCBlbmRsOyB9CiAgICAgICAgfnRlc3QoKSAgICAgICAgICAgeyBjb3V0IDw8ICJkZXN0cnVjdG9yIiA8PCBlbmRsOyB9CiAgICB9OwogICAgCiAgICBzdHJ1Y3QgbmVzdGVkIHsKICAgICAgICB0ZXN0IHQ7CiAgICAvLyAgICBuZXN0ZWQoKSB7fQogICAgfTsKICAgIAogICAgYXV0byBtYWluKCkgLT4gaW50IHsKICAgICAgICAvLyBwcmludHMgImNvbnN0cnVjdG9yIiwgImNvcHkgY29uc3RydWN0b3IiIGFuZCAiZGVzdHJ1Y3RvciIKICAgICAgICBhdXRvIG4gPSBuZXN0ZWR7fTsKICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICAKICAgICAgICByZXR1cm4gMDsKICAgIH0K