- cstdlib[meta header]
- std[meta namespace]
- function[meta id-type]
- cpp11[meta cpp]
namespace std {
extern "C" int at_quick_exit(void (*f)(void)) noexcept; // (1)
extern "C++" int at_quick_exit(void (*f)(void)) noexcept; // (2)
}
quick_exit
関数でプログラムが終了するときに呼ばれる関数を登録する。
この関数に指定した関数は、std::quick_exit()
関数が呼び出された際に呼び出される。
指定された関数の中で例外が送出された場合、std::terminate()
関数が呼び出され、プログラムが異常終了する。
関数の登録に成功した場合は0
が返り、失敗した場合は非0
が返る。
この関数では、複数の関数を登録できる。
登録できる上限数は実装定義だが、32個以上は登録できることが実装に要求される。
#include <iostream>
#include <cstdlib>
void on_exit()
{
std::cout << "on exit" << std::endl;
}
int main()
{
std::at_quick_exit(on_exit);
std::quick_exit(0);
}
- std::at_quick_exit[color ff0000]
- std::quick_exit[link quick_exit.md]
on exit
- C++11
- Clang: 3.4 [mark verified]
- GCC: 4.8 [mark verified]
- ICC:
- Visual C++: 2015 [mark verified]