You can go about your business... move along...move along
Though I meant handwaving in the "I can't back my suggestion up with experience or any facts that I didn't Google for 5 minutes ago", and not in the Jedi Mind Trick sense, I had in mind the following:
Throw an exception deep in your code that will bubble up to main when you need to exit.
Smart pointers will delete your objects (thus calling their destructors) as the stack unwinds.
But my C++ experience is limited and dates from a time before either of these things were widely used, so I could be completely off base.
--
Chris Altmann