#include <iostream>
struct A {
A() { throw "cake"; }
};
struct B : A {
B() : A() {
try {
// initialize B some more
} catch(char const* reason) {
::std::cout << "Could not initialize B: " << reason << "\n";
throw;
}
}
};
int main() {
B b;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEEgewogICAgQSgpIHsgdGhyb3cgImNha2UiOyB9Cn07CgpzdHJ1Y3QgQiA6IEEgewogICAgQigpIDogQSgpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBpbml0aWFsaXplIEIgc29tZSBtb3JlCiAgICAgICAgfSBjYXRjaChjaGFyIGNvbnN0KiByZWFzb24pIHsKICAgICAgICAgICAgOjpzdGQ6OmNvdXQgPDwgIkNvdWxkIG5vdCBpbml0aWFsaXplIEI6ICIgPDwgcmVhc29uIDw8ICJcbiI7CiAgICAgICAgICAgIHRocm93OwogICAgICAgIH0KICAgIH0KfTsKCmludCBtYWluKCkgewoJQiBiOwp9