On 24/02/14 12:59, Peter Dimov wrote:
Mathias Gaunard wrote:
That doesn't change the fact that: - NDEBUG and BOOST_DISABLE_ASSERTS are inconsistent
If by "inconsistent" you mean that they don't do the same thing, then yes. If they did, there would have been no need to have BOOST_DISABLE_ASSERTS.
From what I would have expected, BOOST_DISABLE_ASSERTS disables boost asserts without disabling standard asserts. This is a useful feature to have, and it is enough to justify a need for the macro. Now you may want -DNDEBUG -DBOOST_ENABLE_ASSERT_HANDLER to still keep Boost assertions but disable standard assertions. That's a valid option, but it should be done consistenly.
BOOST_DISABLE_ASSERTS disables BOOST_ASSERT(_MSG). I don't know how it can be made more consistent than that.
- BOOST_ASSERT and BOOST_ASSERT_MSG are inconsistent
No.
With master, -DNEBUG -DBOOST_ENABLE_ASSERT_HANDLER will disable BOOST_ASSERT_MSG, but not BOOST_ASSERT. I see the code has changed on develop, I haven't looked at it yet, hopefully it's fixed.