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