On exit from a scope (however accomplished), objects with automatic storage
duration (
[basic.stc.auto]) that have been constructed in that scope are destroyed
in the reverse order of their construction
. However, the program can be terminated (by calling
std::exit() or
std::abort() (
[support.start.term]), for example) without
destroying objects with automatic storage duration
.