A GraphViz diagram that shows both normal and unexpected program termination flows in C++.
There are multiple ways a C++ program may terminate. These include both normal and unexpected termination.
This GraphViz diagram shows the program termination flows as defined by the standard.
Standard C++ program terminators include:
For completeness, Microsoft specific terminators:
Most of the functions have subtle contexts, conditions and effects that should be considered by checking their documentation.
The diagram does not make an explicit distinction between the C and C++ versions of some of the functions (e.g.
The orange path shows normal program termination.
Corrections, additions, updates and layout improvements will be gladly accepted.