using terminate_handler = void (*)();
Тип объекта handler function , вызываемого при завершении обработки исключения.std::terminate()
Required behavior: A terminate_handler должен прекратить выполнение программы, не возвращаясь к вызывающей стороне.
terminate_handler set_terminate(terminate_handler f) noexcept;
Effects: Устанавливает функцию, обозначенную f как текущая функция-обработчик для завершения обработки исключения.
Remarks: Не указано, обозначает ли значение нулевого указателя значение по умолчанию terminate_handler.
terminate_handler get_terminate() noexcept;
[[noreturn]] void terminate() noexcept;
Remarks: Вызывается реализацией, когда от обработки исключений необходимо отказаться по любой из нескольких причин ([except.terminate]). Также может вызываться непосредственно программой.
Effects: Вызывает terminate_handler функцию. Не указано, какая terminate_handler функция будет вызываться, если во время вызова активно исключение set_terminate. В противном случае вызывает текущую terminate_handler функцию. [ Note: В terminate_handler этом контексте значение по умолчанию всегда считается вызываемым обработчиком. ] — end note