#include <iostream> // std::cout
#include <exception> // std::exception
#include <new> // std::bad_array_new_length
class raii_test
{
public:
raii_test()
{
// assume some file is opened
std::cout<<"Ctor\n";
}
~raii_test()
{
// assume that file is closed
std::cout<<"Dtor\n";
}
};
int main() {
raii_test t;
int* p = new int[-1]; // throws bad_array_new_length exception
}
I2luY2x1ZGUgPGlvc3RyZWFtPiAgICAgLy8gc3RkOjpjb3V0CiNpbmNsdWRlIDxleGNlcHRpb24+ICAgIC8vIHN0ZDo6ZXhjZXB0aW9uCiNpbmNsdWRlIDxuZXc+ICAgICAgICAgIC8vIHN0ZDo6YmFkX2FycmF5X25ld19sZW5ndGgKY2xhc3MgcmFpaV90ZXN0CnsgCiAgICBwdWJsaWM6CiAgICByYWlpX3Rlc3QoKQogICAgewogICAgCSAgIC8vIGFzc3VtZSBzb21lIGZpbGUgaXMgb3BlbmVkCiAgICAgICAgICAgc3RkOjpjb3V0PDwiQ3RvclxuIjsKICAgIH0KICAgIH5yYWlpX3Rlc3QoKQogICAgeyAKICAgIAkgICAvLyBhc3N1bWUgdGhhdCBmaWxlIGlzIGNsb3NlZAogICAgICAgICAgIHN0ZDo6Y291dDw8IkR0b3JcbiI7CiAgICB9Cn07CgppbnQgbWFpbigpIHsKICByYWlpX3Rlc3QgdDsKICBpbnQqIHAgPSBuZXcgaW50Wy0xXTsgICAgLy8gdGhyb3dzIGJhZF9hcnJheV9uZXdfbGVuZ3RoIGV4Y2VwdGlvbgp9