Namespaces
Variants

std:: quick_exit

From cppreference.net
Utilities library
Défini dans l'en-tête <cstdlib>
[ [ noreturn ] ] void quick_exit ( int exit_code ) noexcept ;
(depuis C++11)

Provoque l'arrêt normal du programme sans nettoyer complètement les ressources.

Les fonctions passées à std::at_quick_exit sont appelées dans l'ordre inverse de leur enregistrement. Si une exception tente de se propager hors de l'une des fonctions, std::terminate est appelée. Après l'appel des fonctions enregistrées, appelle std::_Exit ( exit_code ) .

Les fonctions passées à std::atexit ne sont pas appelées.

Table des matières

Paramètres

exit_code - statut de sortie du programme

Valeur de retour

(aucun)

Exemple

#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";
}

Sortie :

quick_exit handler #2
quick_exit handler #1

Voir aussi

provoque la fin anormale du programme (sans nettoyage)
(fonction)
provoque la fin normale du programme avec nettoyage
(fonction)
enregistre une fonction à appeler lors de l'invocation de std::exit()
(fonction)
enregistre une fonction à appeler lors de l'invocation de std::quick_exit
(fonction)
Documentation C pour quick_exit