Destruction of Static Objects

Local static objects are destroyed during termination specified by atexit.

If a static object was not constructed because the program’s flow of control bypassed its declaration, no attempt is made to destroy that object.