std::atexit
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header  
<cstdlib>
  | 
||
|   extern "C"   int atexit( void (*func)() ); 
extern "C++" int atexit( void (*func)() );  | 
||
Registers the function pointed to by func to be called on normal program termination (via exit() or returning from main()).
Calling the function from several threads does not induce a data race. The implementation shall support the registration of at least 32 functions.
Contents | 
[edit] Parameters
| func | - | pointer to a function to be called on normal program termination | 
[edit] Return value
0 if the registration succeeds, nonzero value otherwise.
[edit] Exceptions
[edit] Example
| This section is incomplete Reason: no example  | 
[edit] See also
|    (C++11) 
 | 
   registers a function to be called on quick_exit invocation   (function)  |