std::at_quick_exit — cppreference.com
Материал из cppreference.com
<tbody> </tbody>
| Определено в заголовочном файле |
||
|
|
(1) | (начиная с C++11) |
|
|
(2) | (только для пояснения*) |
Регистрирует указатель на функцию func для того, чтобы она была вызвана при быстром завершении программы (с помощью std::quick_exit).
Вызов этой функции из нескольких потоков не приведёт к гонке данных. Реализация гарантированно поддерживает регистрацию не менее 32 функций. Точный предел определяется реализацией.
Зарегистрированные функции не будут вызваны при обычном завершении программы. Чтобы они были вызваны в этом случае, нужно воспользоваться std::atexit.
Параметры
| func | — | указатель на функцию, которая будет вызвана при быстром завершении программы. |
Возвращаемое значение
0, если регистрация прошла успешно, иначе ненулевое значение.
Примечание
Две перегрузки различны, потому что типы параметра func различны (языковое связывание является частью его типа)
Пример
#include <cstdlib> #include <iostream> void f1() { std::cout << "назначена первой" << std::endl; // принудительный сброс } extern "C" void f2() { std::cout << "назначена второй\n"; } int main() { auto f3 = [] { std::cout << "назначена третьей\n"; }; std::at_quick_exit(f1); std::at_quick_exit(f2); std::at_quick_exit(f3); std::quick_exit(0); }
Вывод:
назначена третьей назначена второй назначена первой
Смотрите также
| вызывает аварийное завершение программы (без очистки) (функция) [править] | |
| вызывает нормальное завершение программы с очисткой (функция) [править] | |
| регистрирует функцию, которая будет вызываться при вызове std::exit() (функция) [править] | |
| вызывает быстрое завершение программы без полной очистки (функция) [править] | |