Namespaces
Variants

std::quick_exit

depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support linguistique
Support des types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
 
 
Défini dans l'en-tête <cstdlib>
[[noreturn]] void quick_exit( int exit_code ) noexcept;
(depuis C++11)

Provoque une terminaison normale 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 avoir appelé les fonctions enregistrées, appelle std::_Exit(exit_code).

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

Paramètres

exit_code - statut de sortie du programme

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