gotoand Destructors in GNU C++
In C++ programs, you can safely use the
goto statement. When you
use it to exit a block which contains aggregates requiring destructors,
the destructors will run before the
goto transfers control.
The compiler still forbids using
goto to enter a scope
that requires constructors.