Boost logo

Boost :

From: Doug Gregor (dgregor_at_[hidden])
Date: 2008-04-28 10:51:29


On Apr 28, 2008, at 9:50 AM, <Lance.Diduck_at_[hidden]> <Lance.Diduck_at_[hidden]
> wrote:
> The model follwed by Xerces works very well, which is close to Rene
> Rivera described. The change would be that this
> namespace boost_1_35_0 {
> // boost libraries declared here
> };
> namespace boost = boost_1_35_0;
> becomes
> namespace BOOST_NAMESPACE {
> // boost libraries declared here
> }
> namespace boost = BOOST_NAMESPACE;
> Where "BOOST_NAMESPACE" is something like
> #ifndef BOOST_NAMESPACE_OVERRIDE
> #define BOOST_NAMESPACE boost
> #else
> #define BOOST_NAMESPACE BOOST_NAMESPACE_OVERRIDE
> #endif //BOOST_NAMESPACE_OVERRIDE
> BOOST_NAMESPACE_OVERRIDE is something defined by the build. Then a
> person using multiple versions has a way to accomplish this, but the
> typical user does not have to worry about it. The user in now
> responsible for the version ing metadata, according to their own
> policies.

The Signals library does this, due to conflicts with another library.
It's going to a bit of a pain for everyone re-opening namespace boost
(as you've noted). Let's keep in mind that such things will be easier
now that we have inline namespaces in the C++0x standard:

        http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2535.htm

Whatever we do should make it easy for us to make use of inline
namespaces where available.

        - Doug


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