
on Mon Dec 03 2007, Joel de Guzman <joel-AT-boost-consulting.com> wrote:
Peter Dimov wrote:
JOAQUIN LOPEZ MU?Z:
namespace boost { namespace foobar
...
This is not the case at least for one Boost library, namely Boost.Tuple, whose associated namespace is boost::tuples, with a postfixed 's'.
That convention is actually documented at http://www.boost.org/more/lib_guide.htm#Naming_consistency already. See also http://lists.boost.org/Archives/boost/2001/06/13360.php
It's also not the case for std::tuple, whose namespace is std, without a subnamespace. :-)
One benefit of having everything in boost (or, more precisely, everything that is supposed to be proposed for inclusion into the standard library) is that name collisions become apparent earlier.
Boost.Tuple should have been a "core" library.
It can be considered a "core" library. Remember, the "standard practice" is that a *small* core library *may* place its components directly in namespace boost, not that it must do so. And, as far as I'm concerned, taking advantage of that leeway should be discouraged.
From my point of view, it's mostly a way of legitimizing legacy design choices that have long standing so we don't disrupt the whole universe by trying to move boost::shared_ptr.
Yes, I agree that everything that is supposed to be proposed for inclusion into the standard library should be at the "core".
I'm not sure why that's a good idea, and furthermore I don't think it's tenable. We'll sometimes make decisions about attempts to standardize components long after a library has been accepted. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com