
On Sat, 2008-04-05 at 11:49 -0400, Beman Dawes wrote:
Doug Gregor wrote:
http://lists.boost.org/Archives/boost/2006/11/113534.php
Boost 1.35.0 already contains some macros for C++0x features available now, e.g., BOOST_HAS_STATIC_ASSERT (used by boost/static_assert.hpp), BOOST_HAS_VARIADIC_TMPL, BOOST_HAS_RVALUE_REFS, and BOOST_HAS_DECLTYPE. They have their own section of the Boost.Config documentation ("Macros that describe C++0x Features"), and I believe that accurately reflect the capabilities of released compilers.
Ah! Thanks!
...pause while I read that thread...
There was some discussion of making the macros negative; BOOST_NO_STATIC_ASSERT or possibly BOOST_NO_0X_STATIC_ASSERT. That seems both better from the maintenance standpoint, and more in line with our current practice.
Has a final decision been made on this?
I ended up using BOOST_HAS_*, because C++0x features seemed to be such a long way off back then :) I don't mind either way. It depends on whether we C++0x as our target language (with workarounds for C++98) or whether C++98 is our target language (with extensions for C++0x). I imagine that over the next 5-10 years, our view will shift from the latter to the former... perhaps that means we should just go with BOOST_NO_* now and save ourselves the trouble of changing our minds later. - Doug