#include <iostream>
#include <memory>
struct A{
int n;
A(int a):n(a){std::cout<<"A() :"<<n<<std::endl;}
A(const A& a):n(a.n){ std::cout<<"A(A) :"<<n<<std::endl;}
A& operator=(const A& a){n=a.n; std::cout<<"= :"<<n<<std::endl;}
~A(){std::cout<<"~A() :"<<n<<std::endl;}
};
struct Er{
Er(){throw 0;}
};
struct B{
A* a;
Er* b;
A* c;
B(){
/*...*/
}
};
int main(){
try{
B b;
}
catch(...){std::cout<<"catch"<<std::endl;}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgoKc3RydWN0IEF7CiAgIGludCBuOwogICBBKGludCBhKTpuKGEpe3N0ZDo6Y291dDw8IkEoKSA6Ijw8bjw8c3RkOjplbmRsO30KICAgQShjb25zdCBBJiBhKTpuKGEubil7IHN0ZDo6Y291dDw8IkEoQSkgOiI8PG48PHN0ZDo6ZW5kbDt9CiAgIEEmIG9wZXJhdG9yPShjb25zdCBBJiBhKXtuPWEubjsgc3RkOjpjb3V0PDwiPSA6Ijw8bjw8c3RkOjplbmRsO30KICAgfkEoKXtzdGQ6OmNvdXQ8PCJ+QSgpIDoiPDxuPDxzdGQ6OmVuZGw7fQp9OwoKc3RydWN0IEVyewogICBFcigpe3Rocm93IDA7fQp9OwoKc3RydWN0IEJ7CiAgIEEqICBhOwogICBFciogYjsKICAgQSogIGM7CiAgIEIoKXsKICAgICAgLyouLi4qLwogICB9Cn07CgppbnQgbWFpbigpewogICB0cnl7CiAgICAgIEIgYjsKICAgfQogICBjYXRjaCguLi4pe3N0ZDo6Y291dDw8ImNhdGNoIjw8c3RkOjplbmRsO30KfQo=