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

履歴 編集

function
<exception>

# std::get_terminate(C++11)

    namespace std {
      using terminate_handler = void(*)();
      terminate_handler get_terminate() noexcept;
    }

## 概要

例外が処理されなかった場合の処理を行う関数を取得する

## 戻り値

例外が処理されなかった場合の処理を行う関数へのポインタ。 (デフォルトではおそらくヌルになる)

## 例

    #include <iostream>
    #include <exception>

    void on_terminate()
    {
      std::cout << "on terminate" << std::endl;
    }

    int main()
    {
      std::terminate_handler handler1 = std::get_terminate();
      if (!handler1) {
        std::cout << "null handler" << std::endl;
      }

      std::set_terminate(on_terminate);
      std::terminate_handler handler2 = std::get_terminate();
      if (handler2) {
        handler2();
      }
    }

### 出力

    on terminate

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: 4.9.0 ✅
- ICC: ??
- Visual C++: 2012 ✅, 2013 ✅, 2015 ✅

## 参照