On Sun, Jul 5, 2020 at 4:35 AM Niall Douglas via Boost < boost@lists.boost.org> wrote:
On 05/07/2020 03:29, Emil Dotchevski via Boost wrote:
Surely we test Boost with exceptions globally disabled in the
regression
testing right?
What Peter means is that boost::exception_ptr ought to support BOOST_NO_EXCEPTIONS. However, it does not, it never has.
I'll admit to surprise here. I always thought that one of the principle reasons for Boost.Exception is exactly so that Boost can work well enough with exceptions globally disabled.
"Well enough" generally means that libraries are supposed (not even required) to always call boost::throw_exception to throw, which can be user-defined to do-something-and-not-return under BOOST_NO_EXCEPTIONS. On exception_ptr, my original thinking (more than 15 years ago) was this: the parts of Boost Exception that could be used to call boost::throw_exception should work under BOOST_NO_EXCEPTIONS, but since exceptions can't be thrown, there's no reason why anyone would want to hold a pointer to one. Outcome is the first library to hit that restriction.
You're the first person to ever raise a need for a outcome/boost_result.hpp which does not include Boost.Exception.
From my point of view, I was compiling an example that used outcome::result and was surprised that it didn't work under BOOST_NO_EXCEPTIONS. Even if we change boost::exception_ptr to work under BOOST_NO_EXCEPTONS, should outcome::result be coupled with it?