// destroy1.cpp
#include <iostream.h>
#include <setjmp.h>
class Foo
{
public:
Foo() {cout << "Foo constructor"
<< endl;}
~Foo() {cout << "Foo destructor"
<< endl;}
};
void f();
void g();
jmp_buf env;
main()
{
if (setjmp(env) == 0)
f();
else
cout << "Returned via longjmp"
<< endl;
return 0;
}
void f()
{
Foo x;
g();
}
void g()
{
Foo x;
longjmp(env,1);
}
/* Output:
Foo constructor
Foo constructor
Returned via longjmp
*/
// End of File