
On Thu, Mar 1, 2012 at 2:30 PM, Marshall Clow <mclow.lists@gmail.com> wrote:
On Mar 1, 2012, at 9:53 AM, John Maddock wrote:
BOOST_NO_0X_HDR_FUNCTIONAL - std lib doesn't have a complete implementation of <functional>, MSVC and gcc/libstdc++ seem to have added all the new features here on mass, so this seems reasonable. BOOST_NO_0X_SMART_PTR - no shared_ptr and unique_ptr. BOOST_NO_0X_ATOMIC_SMART_PTR - no atomic operations on smart pointers. BOOST_NO_0X_ALLOCATOR - no C++0x allocator support (allocator_traits etc).
0x? Shouldn't it be 11 by now?
Um, yes, it's just that we have all these 0X macros already and I'd
On Mar 1, 2012, at 10:29 AM, Marshall Clow wrote: like to be consistent with existing practice, and don't much fancy changing all the existing ones…
Searching for "BOOST_NO_0X" finds about 500 matches in 87 files, almost
all in boost/config and libs/config (in fact, most are in libs/config/test).
If people think this is a good idea, and no one else wants to do it, I
can do it this weekend.
While looking at this, I noticed that we have two macros: BOOST_NO_0X_HDR_INITIALIZER_LIST and BOOST_NO_INITIALIZER_LISTS
There's an old thread from 2009 where the consensus was that "BOOST_NO_INITIALIZER_LISTS" should be removed in favor of the 0X one.
The only library that is using BOOST_NO_INITIALIZER_LISTS is Boost.Random (and some tests in Boost.Config).
I think I'll make that change first; unless someone complains.
Are these only internal macros? If these are public, it's possible you'll break some user code. Are we only speaking of macros that indicate whether specific C++11 constructs are available upon inclusion of a given header (that has been added or changed in C++11 relative to C++03)? - Jeff