On Sat, Jul 4, 2020 at 5:58 PM Niall Douglas via Boost < boost@lists.boost.org> wrote:
On 04/07/2020 23:57, Peter Dimov via Boost wrote:
Emil Dotchevski wrote:
When exceptions are disabled, I get:
In file included from ../../../../boost/outcome/result.hpp:34: In file included from ../../../../boost/outcome/boost_result.hpp:36: In file included from ../../../../boost/exception_ptr.hpp:9: In file included from ../../../../boost/exception/detail/exception_ptr.hpp:17: ../../../../boost/exception/detail/clone_current_exception.hpp:22:6: error: This header requires exception handling to be enabled.
Are you reporting a bug to yourself?
Pretty much +1 from me as well.
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. It is not trivial to support it because its implementation has been complicated over the years; remember, it was added when there was no standard support for exception_ptr. And I've learned that I can't remove old features because there's code in the wild that uses them. I think this is the complete list of legacy features: - If there is standard support, it is able to wrap std::exception_ptr in a boost::exception_ptr. - Otherwise, If the exception is a boost::exception, works correctly. - Otherwise, under old MSVC versions, it is able to talk to the ABI and clone the exception object correctly anyway. - Otherwise, it attempts a list of exception types as a fallback. Not sure what's the best approach here.