最終更新日時:
が更新

履歴 編集

function
<exception>

std::get_unexpected(C++11)(C++11で非推奨)

namespace std {
  using unexpected_handler = void(*)();
  unexpected_handler get_unexpected() noexcept;
}

この関数はC++11から非推奨である。throwキーワードの代わりに使用するnoexceptキーワードでは、指定外の例外が発生することによるエラーは起こらない。

概要

予想外の例外が発生した場合の処理を行う関数を取得する。

戻り値

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

#include <iostream>
#include <stdexcept>

void on_expected()
{
  std::cout << "on expected" << std::endl;
}

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

  std::set_unexpected(on_expected);
  std::unexpected_handler handler2 = std::get_unexpected();
  if (handler2) {
    handler2();
  }
}

出力

on expected

バージョン

言語

  • C++11

処理系

参照