Glen Fernandes wrote:
On Thu, May 18, 2023 at 5:31 PM Christian Mazakas via Boost < boost@lists.boost.org> wrote:
We could maybe solve the publicity issue by having the implementation become a typedef when the header is available.
What "publicity issue"?
I'm fine with this, but if we go this route it might be better that Compat depend on no other Boost libraries.
e.g. They wouldn't be able to count on the features of Boost.Assert.
No, Boost libraries should never use `assert` or `throw` directly (unless they duplicate the relevant functionality of Assert and ThrowException.) Note that an implementation consisting of e.g. `using std::latch;` does not use `assert` or `throw` so it doesn't violate the above rule. Interestingly, said implementation would actually fail our current latch_test.cpp which uses BOOST_ENABLE_ASSERT_HANDLER to check precondition violations, but we'll fix that test if we ever switch to it.