#include <iostream>
#include <string>
class Foo {
public:
Foo() = default;
Foo(Foo const &) = delete;
Foo(Foo &&) { std::cout << "Move"; }
};
Foo F1() {
Foo f;
return f;
}
Foo F2(bool b) {
Foo f1;
Foo f2;
if (b) return f1;
else return f2;
}
int main() {
std::cout << "Calling F1: ";
F1();
std::cout << "\n";
std::cout << "Calling F2: ";
F2(true);
std::cout << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKY2xhc3MgRm9vIHsKIHB1YmxpYzoKICBGb28oKSA9IGRlZmF1bHQ7CiAgRm9vKEZvbyBjb25zdCAmKSA9IGRlbGV0ZTsKICBGb28oRm9vICYmKSB7IHN0ZDo6Y291dCA8PCAiTW92ZSI7IH0KfTsKCkZvbyBGMSgpIHsKICBGb28gZjsKICByZXR1cm4gZjsKfQoKRm9vIEYyKGJvb2wgYikgewogIEZvbyBmMTsKICBGb28gZjI7CiAgaWYgKGIpIHJldHVybiBmMTsKICBlbHNlIHJldHVybiBmMjsKfQoKaW50IG1haW4oKSB7CiAgc3RkOjpjb3V0IDw8ICJDYWxsaW5nIEYxOiAiOwogIEYxKCk7CiAgc3RkOjpjb3V0IDw8ICJcbiI7CgogIHN0ZDo6Y291dCA8PCAiQ2FsbGluZyBGMjogIjsKICBGMih0cnVlKTsKICBzdGQ6OmNvdXQgPDwgIlxuIjsKfQ==