Vladimir Prus writes: > 1. I'd prefer to have BOOST_NDEBUG instead of BOOST_DEBUG, for > consistency with NDEBUG. I simply want BOOST_ASSERT to work for > debug builds. Or doesBOOST_DEBUG have non-empty initial value?
Yes, that was my original choice. I changed it to BOOST_DEBUG for two reasons: 1. That's the way it was in the existing (undocumented) <boost/assert.hpp>. 2. Experienced C/C++ programmers already know to define NDEBUG for optimized code, but unless they read the documentation for Boost Assert, they won't know to define BOOST_NDEBUG. Now consider someone who is just using one of the Boost libraries, but not Boost Assert. If that library uses Boost Assert (as it should), it will take a performance hit when BOOST_NDEBUG is not defined. The user won't know why this is happening, as he will have had no reason to read the Boost Assert documentation. I suppose one option would be to have a READ THIS FIRST section in the documentation, that users should read regardless of which library(ies) they intend to use. > 2. failed_exception can be safely derived from std::exception. Unlike > std::logic_error, it does not use std::string. Good point. > 3. Docs for BOOST_ASSERT say > 'Otherwise, if user has already provided a definition for BOOST_ASSERT, > the definition is left unchanged. > > Is this accurate? If user has provided its own definition for BOOST_ASSERT, > then calling the BOOST_ASSERT macro will do what user coded. You must > mean that if there's BOOST_ASSERT defined then <boost/assert.hpp> won't > change that definition. That's what I thought I said. I guess my wording was unclear. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost