#include <stdio.h>
struct A {
A() { puts(__PRETTY_FUNCTION__); }
~A() { puts(__PRETTY_FUNCTION__); }
A(const A&) { puts(__PRETTY_FUNCTION__); }
A(A&&) { puts(__PRETTY_FUNCTION__); }
A& operator=(const A&) { puts("copy"); return *this; }
A& operator=(A&&) { puts("move"); return *this; }
};
int main() {
auto a = A();
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdHJ1Y3QgQSB7CiAgQSgpIHsgcHV0cyhfX1BSRVRUWV9GVU5DVElPTl9fKTsgfQogIH5BKCkgeyBwdXRzKF9fUFJFVFRZX0ZVTkNUSU9OX18pOyB9CiAgQShjb25zdCBBJikgeyBwdXRzKF9fUFJFVFRZX0ZVTkNUSU9OX18pOyB9CiAgQShBJiYpIHsgcHV0cyhfX1BSRVRUWV9GVU5DVElPTl9fKTsgfQogIEEmIG9wZXJhdG9yPShjb25zdCBBJikgIHsgcHV0cygiY29weSIpOyByZXR1cm4gKnRoaXM7IH0KICBBJiBvcGVyYXRvcj0oQSYmKSB7IHB1dHMoIm1vdmUiKTsgcmV0dXJuICp0aGlzOyB9Cn07CgoKaW50IG1haW4oKSB7CglhdXRvIGEgPSBBKCk7CglyZXR1cm4gMDsKfQ==