#include <iostream>
struct T
{
T() { std::cout << "default\n"; }
T(T&&) { std::cout << "move\n"; }
T(T const&) { std::cout << "copy\n"; }
~T(){ std::cout << "hola\n"; }
};
int main(int argc, const char *argv[])
{
T a;
const T &x = ((*argv[0]=='x') ? (T&&)T() : (T&&)a);
std::cout << "done\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IFQKewogICAgVCgpICAgICAgICAgeyBzdGQ6OmNvdXQgPDwgImRlZmF1bHRcbiI7IH0KICAgIFQoVCYmKSAgICAgIHsgc3RkOjpjb3V0IDw8ICJtb3ZlXG4iOyB9CiAgICBUKFQgY29uc3QmKSB7IHN0ZDo6Y291dCA8PCAiY29weVxuIjsgfQogICAgflQoKXsgc3RkOjpjb3V0IDw8ICJob2xhXG4iOyB9Cn07CgppbnQgbWFpbihpbnQgYXJnYywgY29uc3QgY2hhciAqYXJndltdKQp7CiAgICBUIGE7CiAgICBjb25zdCBUICZ4ID0gKCgqYXJndlswXT09J3gnKSA/IChUJiYpVCgpIDogKFQmJilhKTsKICAgIHN0ZDo6Y291dCA8PCAiZG9uZVxuIjsKfQo=