#include <iostream>
#include <string>
class A {
public:
A() {
std::cout << "A::A()\n";
}
~A() {
std::cout << "A::~A()\n";
}
A(const A&) = delete;
A(A&&) {
std::cout << "A::A(A&&)\n";
};
};
A f() {
A a;
return a;
}
int main() {
A a = f();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKY2xhc3MgQSB7IAogcHVibGljOgogICAgQSgpIHsgCiAgICAgICAgc3RkOjpjb3V0IDw8ICJBOjpBKClcbiI7CiAgICB9IAoKICAgIH5BKCkgeyAKICAgICAgICBzdGQ6OmNvdXQgPDwgIkE6On5BKClcbiI7CiAgICB9IAoKICAgIEEoY29uc3QgQSYpID0gZGVsZXRlOwoKICAgIEEoQSYmKSB7IAogICAgICAgIHN0ZDo6Y291dCA8PCAiQTo6QShBJiYpXG4iOwogICAgfTsKCn07CgpBIGYoKSB7IAogICAgQSBhOwogICAgcmV0dXJuIGE7Cn0KCmludCBtYWluKCkgeyAKICAgIEEgYSA9IGYoKTsKICAgIHJldHVybiAwOwp9