#include <iostream>
using namespace std;
struct A {
A() { cout << "A()" << endl; }
A(const A &a) { cout << "A(const A&)" << endl; }
virtual ~A() { cout << "~A()" << endl; }
};
int main() {
A a;
try {
throw a;
} catch (A &a) {
cout << "Caught" << endl;
}
cout << "After catch" << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgewogICAgQSgpIHsgY291dCA8PCAiQSgpIiA8PCBlbmRsOyB9CiAgICBBKGNvbnN0IEEgJmEpIHsgY291dCA8PCAiQShjb25zdCBBJikiIDw8IGVuZGw7IH0KICAgIHZpcnR1YWwgfkEoKSB7IGNvdXQgPDwgIn5BKCkiIDw8IGVuZGw7IH0KfTsKCmludCBtYWluKCkgewogICAgQSBhOwogICAgdHJ5IHsKICAgICAgICB0aHJvdyBhOwogICAgfSBjYXRjaCAoQSAmYSkgewogICAgICAgIGNvdXQgPDwgIkNhdWdodCIgPDwgZW5kbDsKICAgIH0KICAgIGNvdXQgPDwgIkFmdGVyIGNhdGNoIiA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=