// Build don't link: #include #include struct A { A() { std::cerr<<"A constructing\n"; throw 1; } void *operator new(size_t sz) { std::cerr<<"A allocated\n"; return ::operator new(sz); } void operator delete (void *p) { std::cerr<<"A deleted\n"; ::operator delete (p); } }; int main() { try { new A(); } catch (...) { } }