#include <iostream>
#include <memory>
struct A
{
};
struct B
{
B() { throw std::runtime_error(""); }
};
int main()
{
std::unique_ptr<A> a_obj;
try {
a_obj.reset(new A);
} catch(std::runtime_error&) {
}
if(a_obj)
std::cout << "Created.\n";
else
std::cout << "Operation failed.\n";
std::unique_ptr<B> b_obj;
try {
b_obj.reset(new B);
} catch(std::runtime_error&) {
}
if(b_obj)
std::cout << "Created.\n";
else
std::cout << "Operation failed.\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgoKc3RydWN0IEEKewoKfTsKCnN0cnVjdCBCCnsKCUIoKSB7IHRocm93IHN0ZDo6cnVudGltZV9lcnJvcigiIik7IH0KfTsKCmludCBtYWluKCkKewoJc3RkOjp1bmlxdWVfcHRyPEE+IGFfb2JqOwoJdHJ5IHsKCQlhX29iai5yZXNldChuZXcgQSk7Cgl9IGNhdGNoKHN0ZDo6cnVudGltZV9lcnJvciYpIHsKCgl9CgoJaWYoYV9vYmopCgkJc3RkOjpjb3V0IDw8ICJDcmVhdGVkLlxuIjsKCWVsc2UKCQlzdGQ6OmNvdXQgPDwgIk9wZXJhdGlvbiBmYWlsZWQuXG4iOwoKCXN0ZDo6dW5pcXVlX3B0cjxCPiBiX29iajsKCXRyeSB7CgkJYl9vYmoucmVzZXQobmV3IEIpOwoJfSBjYXRjaChzdGQ6OnJ1bnRpbWVfZXJyb3ImKSB7CgoJfQoKCWlmKGJfb2JqKQoJCXN0ZDo6Y291dCA8PCAiQ3JlYXRlZC5cbiI7CgllbHNlCgkJc3RkOjpjb3V0IDw8ICJPcGVyYXRpb24gZmFpbGVkLlxuIjsKCglyZXR1cm4gMDsKfQo=