Subject: Re: [boost] Feature macro for putting things in the std namespace
From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2015-08-27 20:32:29


El 27/08/2015 a las 22:31, Mathias Gaunard escribió:
> Hi all,
>
> I'm working on providing support in Boost for a new standard library
> provider, which happens to put some but not all of its symbols in the
> 'std' namespace.
>
> As a result, opening the 'std' namespace and forward-declaring or
> specializing things would not work.
>
> It seems a number of Boost libraries do this (most notably
> Boost.Container), with special code to deal with libc++ (since libc++
> puts everything under an inline namespace).

I think many boosters will be against Boost.Container practice, but I
would prefer fixing this supporting more standard libraries, just
including headers looking for forward declarations is really
heavyweight. A new standard library or new name versioning is not
something that happens every day.

The trick is that GCC has some namespace tricks depending on debug modes
and libc++ declares some types outside the inline namespace (to be ABI
compatible with GCC, like std::nothrow_t).

Of course, it would be even better if we could add a std forward
declaration library or utility to Boost that could be even updated with
standard library maintainers that want to contribute.

Best,

Ion