#include <stdio.h>
class Test
{
public:
Test()
{
puts("Test()\r\n");
}
Test(const Test&)
{
puts("Test(const Test&)\r\n");
}
Test(Test&&)
{
puts("Test(Test&&)\r\n");
}
};
static Test GetTest(bool x)
{
if (x)
{
return Test();
}
else
{
Test temp;
return temp;
}
}
int main()
{
Test t1;
Test t2(t1);
Test t3 = GetTest(true);
Test t4 = GetTest(false);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjbGFzcyBUZXN0CnsKcHVibGljOgoKCVRlc3QoKQoJewoJCXB1dHMoIlRlc3QoKVxyXG4iKTsKCX0KCQoJVGVzdChjb25zdCBUZXN0JikKCXsKCQlwdXRzKCJUZXN0KGNvbnN0IFRlc3QmKVxyXG4iKTsKCX0KCQoJVGVzdChUZXN0JiYpCgl7CgkJcHV0cygiVGVzdChUZXN0JiYpXHJcbiIpOwoJfQp9OwoKc3RhdGljIFRlc3QgR2V0VGVzdChib29sIHgpCnsKCWlmICh4KQoJewoJCXJldHVybiBUZXN0KCk7Cgl9CgllbHNlCgl7CgkJVGVzdCB0ZW1wOwoJCXJldHVybiB0ZW1wOwoJfQp9CgppbnQgbWFpbigpCnsKCVRlc3QgdDE7CglUZXN0IHQyKHQxKTsKCVRlc3QgdDMgPSBHZXRUZXN0KHRydWUpOwoJVGVzdCB0NCA9IEdldFRlc3QoZmFsc2UpOwoJcmV0dXJuIDA7Cn0K