std::quick_exit — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
(начиная с C++11) | |
Приводит к быстрому завершению программы без полной очистки ресурсов.
Функции, переданные в std::at_quick_exit, вызываются в порядке, обратном их регистрации. Если исключение пытается распространиться за пределы любой из этих функций, вызывается std::terminate. После вызова зарегистрированных функций вызывается std::_Exit(exit_code).
Функции, переданные std::atexit, не вызываются.
Параметры
| exit_code | — | статус выхода из программы |
Возвращаемое значение
(нет)
Пример
#include <cstdlib> #include <iostream> template <int N> void quick_exit_handler() { std::cout << "обработчик quick_exit #" << N << std::endl; // принудительный сброс } void at_exit_handler() { std::cout << "обработчик at_exit\n"; } int main() { if ( std::at_quick_exit( quick_exit_handler<1> ) or std::at_quick_exit( quick_exit_handler<2> ) ) { std::cerr << "Регистрация не удалась\n"; return EXIT_FAILURE; } std::atexit( at_exit_handler ); // обработчик не будет вызван struct R { ~R() { std::cout << "деструктор\n"; } } resource; /*...*/ std::quick_exit( EXIT_SUCCESS ); std::cout << "Этот оператор недостижим...\n"; }
Вывод:
обработчик quick_exit #2 обработчик quick_exit #1
Смотрите также
| вызывает аварийное завершение программы (без очистки) (функция) [править] | |
| вызывает нормальное завершение программы с очисткой (функция) [править] | |
| регистрирует функцию, которая будет вызываться при вызове std::exit() (функция) [править] | |
| регистрирует функцию, которая будет вызываться при вызове std::quick_exit (функция) [править] | |