Boost logo

Boost :

Subject: [boost] [C++0x] More config macros needed
From: Beman Dawes (bdawes_at_[hidden])
Date: 2009-05-11 22:15:01


GCC 4.3 and even more so 4.4 have implemented significant portions of
the C++0x core language, and provide lots of C++0x standard library
components too.

Microsoft 2010 beta 1 will ship "real soon", and it too will have some
major C++0x core language features, and also some C++0x standard
library components.

Thus we need more config macros, particularly those aimed at the
standard library. A possible approach:

BOOST_NO_CONCEPTS // needed to tell if headers have been conceptized

BOOST_NO_*_HDR // for each new C++0x header; * is name of header

For example, BOOST_NO_CHRONO_HDR is defined unless header <chrono> is present.

I'm proposing we not try to identify whether or no the header is
complete. If BOOST_NO_CONCEPTS is defined, the header obviously hasn't
been conceptized. Ditto anything else that depends on any other new
core language feature that hasn't been implemented. Other incomplete
aspects will have to be dealt with by testing the library version. We
don't want feature macros to proliferate unduly; they are more work to
create and maintain than you might think, and if there are a lot of
them it gets very confusing.

Comments?

--Beman


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk