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);
}
出力
on exit
バージョン
言語
- C++11
処理系
- Clang: 3.4 ✅
- GCC: 4.8 ✅
- ICC:
- Visual C++: 2015 ✅