最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

function
<cstdlib>

# std::at_quick_exit(C++11)

    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 ✅

## 参照

- N2440 Abandoning a Process