#include <iostream>

struct A {
    A() { throw "cake"; }
};

struct B : A {
    B() try : A() {
        // initialize B some more
    } catch(char const* reason) {
        ::std::cout << "Could not initialize B: " << reason << "\n";
        throw;
    }
};

int main() {
	B b;
}