Namespaces
Variants

std:: quick_exit

From cppreference.net
Utilities library
Definiert in Header <cstdlib>
[ [ noreturn ] ] void quick_exit ( int exit_code ) noexcept ;
(seit C++11)

Verursacht ein normales Programmende, ohne die Ressourcen vollständig zu bereinigen.

An std::at_quick_exit übergebene Funktionen werden in umgekehrter Reihenfolge ihrer Registrierung aufgerufen. Wenn eine Exception aus einer dieser Funktionen auszubrechen versucht, wird std::terminate aufgerufen. Nach dem Aufruf der registrierten Funktionen ruft es std::_Exit ( exit_code ) auf.

An std::atexit übergebene Funktionen werden nicht aufgerufen.

Inhaltsverzeichnis

Parameter

exit_code - Exit-Status des Programms

Rückgabewert

(keine)

Beispiel

#include <cstdlib>
#include <iostream>
template<int N>
void quick_exit_handler()
{
    std::cout << "quick_exit handler #" << N << std::endl; // flush is intended
}
void at_exit_handler()
{
    std::cout << "at_exit handler\n";
}
int main()
{
    if (std::at_quick_exit(quick_exit_handler<1>) ||
        std::at_quick_exit(quick_exit_handler<2>))
    {
        std::cerr << "Registration failed\n";
        return EXIT_FAILURE;
    }
    std::atexit(at_exit_handler); // the handler will not be called
    struct R { ~R() { std::cout << "destructor\n"; } } resource;
    /*...*/
    std::quick_exit(EXIT_SUCCESS);
    std::cout << "This statement is unreachable...\n";
}

Ausgabe:

quick_exit handler #2
quick_exit handler #1

Siehe auch

verursacht abnormale Programmbeendigung (ohne Bereinigung)
(Funktion)
verursacht normale Programmbeendigung mit Bereinigung
(Funktion)
registriert eine Funktion, die beim Aufruf von std::exit() aufgerufen werden soll
(Funktion)
registriert eine Funktion, die beim Aufruf von std::quick_exit aufgerufen werden soll
(Funktion)
C-Dokumentation für quick_exit