#include <iostream>
using namespace std;
struct A
{
A() {s = "initial"; cout << "ctor" << endl;}
A(const A&a) {s = a.s; cout << "copy" << endl;}
A(A&&a) { s = std::move(a.s); cout << "move" << endl;}
A& operator=(const A&a) { s = a.s; cout << "copy=" << endl;}
A& operator=(A&&a) {s = std::move(a.s); cout << "move=" << endl;}
string s;
};
int main() {
A a;
try {
throw a;
}
catch(const A& ta){
cout << ta.s << endl;
}
cout << a.s;
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEKewoJQSgpIHtzID0gImluaXRpYWwiOyBjb3V0IDw8ICJjdG9yIiA8PCBlbmRsO30KCUEoY29uc3QgQSZhKSB7cyA9IGEuczsgY291dCA8PCAiY29weSIgPDwgZW5kbDt9CglBKEEmJmEpIHsgcyA9IHN0ZDo6bW92ZShhLnMpOyBjb3V0IDw8ICJtb3ZlIiA8PCBlbmRsO30KCUEmIG9wZXJhdG9yPShjb25zdCBBJmEpIHsgcyA9IGEuczsgY291dCA8PCAiY29weT0iIDw8IGVuZGw7fQoJQSYgb3BlcmF0b3I9KEEmJmEpIHtzID0gc3RkOjptb3ZlKGEucyk7IGNvdXQgPDwgIm1vdmU9IiA8PCBlbmRsO30KCXN0cmluZyBzOwp9OwoKaW50IG1haW4oKSB7CglBIGE7Cgl0cnkgewoJCXRocm93IGE7Cgl9CgljYXRjaChjb25zdCBBJiB0YSl7CgkJY291dCA8PCB0YS5zIDw8IGVuZGw7Cgl9Cgljb3V0IDw8IGEuczsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9