std::at_quick_exit

From cppreference.com
< cpp‎ | utility‎ | program
 
 
Utilities library
General utilities
Date and time
Function objects
Formatting library (C++20)
(C++11)
Relational operators (deprecated in C++20)
Integer comparison functions
(C++20)(C++20)(C++20)   
(C++20)
Swap and type operations
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Common vocabulary types
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Elementary string conversions
(C++17)
(C++17)
 
Program support utilities
Program termination
(C++11)
(C++11)
at_quick_exit
(C++11)
Unreachable control flow
Communicating with the environment
Signals
Signal types
Non-local jumps
Types
 
Defined in header <cstdlib>
int at_quick_exit( /*atexit-handler*/* func ) noexcept;
int at_quick_exit( /*c-atexit-handler*/* func ) noexcept;
(1) (since C++11)
extern "C++" using /*atexit-handler*/ = void(); // exposition-only
extern "C" using /*c-atexit-handler*/ = void(); // exposition-only
(2)

Registers the function pointed to by func to be called on quick program termination (via std::quick_exit).

Calling the function from several threads does not induce a data race. The implementation shall support the registration of at least 32 functions.

The registered functions will not be called on normal program termination. If a function need to be called in that case, std::atexit must be used.

Parameters

func - pointer to a function to be called on quick program termination

Return value

0 if the registration succeeds, nonzero value otherwise.

Notes

The two overloads are distinct because the types of the parameter func are distinct (language linkage is part of its type)

Example

See also

causes abnormal program termination (without cleaning up)
(function)
causes normal program termination with cleaning up
(function)
registers a function to be called on std::exit() invocation
(function)
causes quick program termination without completely cleaning up
(function)