goto
and 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. (In ANSI C++, goto
is restricted to targets within the current block.)
The compiler still forbids using goto
to enter a scope that requires constructors.