- exception[meta header]
- std[meta namespace]
- function[meta id-type]
- cpp11[meta cpp]
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();
}
}
- std::get_terminate()[color ff0000]
- std::set_terminate[link set_terminate.md]
on terminate
- C++11
- Clang: ??
- GCC: 4.9.0 [mark verified]
- ICC: ??
- Visual C++: 2012 [mark verified], 2013 [mark verified], 2015 [mark verified]