
David Abrahams wrote:
I think <radical-idea>it's time to deprecate BOOST_STATIC_ASSERT</radical-idea>
or at *least* put a prominent note
in its documentation directing people at the BOOST_MPL_ASSERT macros.
I think there is a deeper problem here. There are a number of facilities which are used in boost whose documentation and purpose are hard to find. In particular I refer to things like: assert vs BOOST_ASSERT BOOST_STATIC_ASSERT vs BOOST_MPL_ASSERT a few "exception", throw_exception, etc. I recently had to find something to do with some aspect of exception and I had to search around and finally decifer the source code. There is some documentation in boost "rationale" about things like "throw" specifications. I think it would be very valuable to update a few of these documents. (another one that is really out of date is "how to write documentation for boost". I suspect that lots people look at other boost code for answers to questions. I think improving the documents which address these questions would go along way toward changing the practice. It would never occur to me to look into the MPL library for a replacement for BOOST_STATIC_ASSERT. And since MPL is and "advanced" library - most users aren't going to become familiar with it until they already spend a significant amount of time with boost. Oh - Of course I see now what I really want to use is the Boost concept library. But its not clear to me that this is not in a state of flux. In this specific case, I changed BOOST_STATIC_ASSERT to BOOST_STATIC_WARNING - which suffers from the same problem but may be better for some users. Maybe you might re-implement BOOST_STATIC_ASSERT in terms of BOOST_MPL_ASSERT - I don't know if that would help. Is there a BOOST_MPL_WARNING? Robert Ramey