https://github.com/adishavit/terminators
Hasta la vista, baby!
https://github.com/adishavit/terminators
Last synced: 5 months ago
JSON representation
Hasta la vista, baby!
- Host: GitHub
- URL: https://github.com/adishavit/terminators
- Owner: adishavit
- License: bsd-3-clause
- Created: 2014-10-06T07:26:45.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2023-04-06T15:43:48.000Z (about 3 years ago)
- Last Synced: 2024-12-26T03:27:29.866Z (over 1 year ago)
- Language: Makefile
- Homepage:
- Size: 2.51 MB
- Stars: 130
- Watchers: 6
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Terminators 
===========
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:
* [`std::exit()`](http://en.cppreference.com/w/cpp/utility/program/exit)
* [`std::quick_exit()`](http://en.cppreference.com/w/cpp/utility/program/quick_exit)
* [`std::_Exit()`](http://en.cppreference.com/w/cpp/utility/program/_Exit)
* [`std::abort()`](http://en.cppreference.com/w/cpp/utility/program/abort)
* [`std::terminate()`](http://en.cppreference.com/w/cpp/error/terminate)
* [`std::unexpected()`](http://en.cppreference.com/w/cpp/error/unexpected) (removed in C++17)
For completeness, Microsoft-specific terminators:
* [`__fastfail()`](http://msdn.microsoft.com/en-us/library/dn774154.aspx)
For completeness, POSIX-specific terminators:
* [`_exit()`](http://pubs.opengroup.org/onlinepubs/9699919799/functions/_Exit.html)
Read more on the associated blog post [here](http://videocortex.io/2016/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. `exit()`).
The orange path shows normal program termination.

Corrections, additions, updates and layout improvements will be gladly accepted.