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.