Namespaces
Variants

std:: quick_exit

From cppreference.net
Utilities library
Definido en el encabezado <cstdlib>
[ [ noreturn ] ] void quick_exit ( int exit_code ) noexcept ;
(desde C++11)

Causa la terminación normal del programa sin limpiar completamente los recursos.

Las funciones pasadas a std::at_quick_exit se llaman en orden inverso a su registro. Si una excepción intenta propagarse fuera de cualquiera de las funciones, std::terminate es llamado. Después de llamar a las funciones registradas, llama a std::_Exit ( exit_code ) .

Las funciones pasadas a std::atexit no son llamadas.

Contenidos

Parámetros

exit_code - estado de salida del programa

Valor de retorno

(ninguno)

Ejemplo

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

Salida:

quick_exit handler #2
quick_exit handler #1

Véase también

provoca la terminación anormal del programa (sin limpieza)
(función)
provoca la terminación normal del programa con limpieza
(función)
registra una función para ser llamada en la invocación de std::exit()
(función)
registra una función para ser llamada en la invocación de std::quick_exit
(función)
Documentación C para quick_exit