-----Original Message----- From: Boost [mailto:boost-bounces@lists.boost.org] On Behalf Of Niall Douglas Sent: Friday, August 28, 2015 19:08 To: boost@lists.boost.org Subject: Re: [boost] [AFIO] Review (or lack of it)
It is trivial to redirect std::cerr elsewhere.
This assumes the user is not using std::cerr for something else. Please never use std::cerr, in a library. Every library I've seen that wants to log that "something bad happened" supports a user-supplied log function. To this end, I'd strongly prefer a configurable callback, rather than a macro. If a macro is used, then it places the burden of understanding how it interacts with the library's internal state on the user. As for std::terminate(), if unwinding the call stack would leave the program in a state from where it could not reliably be returned to a known-good state, then I think calling std::terminate() is the best option. I understand that, in the real world, there might be error conditions (similar to assertion failures), where some inconsistency is detected. In such cases, I think it's far better to log and abort, than to try to continue in a bad state. There's no benefit to using exceptions, here - only downsides. Matt ________________________________ This e-mail contains privileged and confidential information intended for the use of the addressees named above. If you are not the intended recipient of this e-mail, you are hereby notified that you must not disseminate, copy or take any action in respect of any information contained in it. If you have received this e-mail in error, please notify the sender immediately by e-mail and immediately destroy this e-mail and its attachments.