Когда обработчик завершения C ++ является правильным (TM)?

Стандарт C ++ обеспечиваетstd::set_terminate функция, которая позволяет указать, какую функциюstd::terminate должен на самом деле позвонить.std::terminate должен вызываться только в тяжелых обстоятельствах и, конечно же, ситуации, описанные в стандарте, когда он вызывается, являются ужасными (например, неперехваченное исключение) когдаstd::terminate Ситуация кажется вызывающей сходство с нехваткой памяти - на самом деле вы вряд ли сможете разумно это сделать.

Я читал, что он может использоваться для обеспечения освобождения ресурсов, но для большинства ресурсов это должно автоматически выполняться ОС при выходе из процесса (например, файловые дескрипторы). Теоретически я вижу случай, если, скажем, вам нужно было отправить серверу конкретное сообщение при выходе из-за сбоя. Но большую часть времени обработка ОС должна быть достаточной.

Когда используется обработчик завершения The Right Thing (TM)?

Обновить:Люди, интересующиеся тем, что можно сделать с помощью пользовательских обработчиков завершений, могут найти этот непереносимый трюк полезным.

Ответы на вопрос(3)

Ваш ответ на вопрос