¿Cuándo es un controlador de terminación de C ++ el Thing Right (TM)?

El estándar C ++ proporciona lastd::set_terminate función que le permite especificar qué funciónstd::terminate En realidad debería llamar.std::terminate solo debe recibir llamadas en circunstancias extremas, y de hecho, las situaciones que describe la norma cuando son llamadas son extremas (por ejemplo, una excepción no detectada). Cuandostd::terminate La situación parece análoga a la falta de memoria: no hay mucho que puedas hacer con sensatez.

He leído que se puede usar para asegurar que los recursos se liberen, pero para la mayoría de los recursos, el sistema operativo debe manejarlos automáticamente cuando el proceso finaliza (por ejemplo, los manejadores de archivos). Teóricamente, puedo ver un caso, por ejemplo, si necesita enviar un mensaje específico a un servidor al salir debido a un bloqueo. Pero la mayoría de las veces el manejo del SO debería ser suficiente.

¿Cuándo está utilizando un controlador de terminación el objeto correcto (TM)?

Actualizar:Las personas interesadas en lo que se puede hacer con los controladores de terminación personalizados pueden encontrar útil este truco no portátil.

Respuestas a la pregunta(3)

Su respuesta a la pregunta