Namespaces
Variants

std::quick_exit

Von de.cppreference.net
 
 
Hilfsmittelbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Feature-Test-Makros der Bibliothek (C++20)
Programmhilfsmittel
Funktionen mit variabler Argumentanzahl
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Dreigliedriger Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Hilfsmittel
Relationsoperatoren (veraltet in C++20)
Ganzzahl-Vergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Tausch- und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
 
Definiert in Header <cstdlib>
[[noreturn]] void quick_exit( int exit_code ) noexcept;
(seit C++11)

Bewirkt eine normale Programmbeendigung, ohne die Ressourcen vollständig zu bereinigen.

Funktionen, die an std::at_quick_exit übergeben wurden, werden in umgekehrter Reihenfolge ihrer Registrierung aufgerufen. Wenn eine Ausnahme versucht, aus einer der Funktionen hinauszupropagieren, wird std::terminate aufgerufen. Nach dem Aufruf der registrierten Funktionen wird std::_Exit(exit_code) aufgerufen.

Funktionen, die an std::atexit übergeben wurden, werden nicht aufgerufen.

Parameter

exit_code - Exit-Status des Programms

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