#include <iostream>
struct hello {};
struct Thrower {
Thrower() { throw new hello; }
};
struct Catcher {
Catcher()
try {
std::cout << "ran\n";
} catch( hello*h ) {
std::cout << "caught!\n";
throw h;
}
Thrower t{};
};
int main() {
try {
Catcher c;
} catch(hello* h) {
std::cout << "caught again\n";
}
// your code goes here
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgpzdHJ1Y3QgaGVsbG8ge307CgpzdHJ1Y3QgVGhyb3dlciB7CglUaHJvd2VyKCkgeyB0aHJvdyBuZXcgaGVsbG87IH0KfTsKCnN0cnVjdCBDYXRjaGVyIHsKCUNhdGNoZXIoKQoJdHJ5IHsKCQlzdGQ6OmNvdXQgPDwgInJhblxuIjsKCX0gY2F0Y2goIGhlbGxvKmggKSB7CgkJc3RkOjpjb3V0IDw8ICJjYXVnaHQhXG4iOwoJCXRocm93IGg7Cgl9CglUaHJvd2VyIHR7fTsKfTsKaW50IG1haW4oKSB7Cgl0cnkgewoJCUNhdGNoZXIgYzsKCX0gY2F0Y2goaGVsbG8qIGgpIHsKCQlzdGQ6OmNvdXQgPDwgImNhdWdodCBhZ2FpblxuIjsKCX0KCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXJldHVybiAwOwp9