Boost logo

Boost :

From: Moore, Paul (Paul.Moore_at_[hidden])
Date: 1999-12-22 05:13:36


From: Mitch Adler [mailto:mitch_at_[hidden]]
>
> Paul Moore (gustav_at_[hidden]) wrote:
>
> >Anyone who uses a using-directive takes responsibility for
> >avoiding clashes. Documenting names lets us say "I told you so" :-)
>
[...]
>
> Therefore there is no way to avoid potential collision with names in
> ::boost.

In theory, I agree. In practice, the issue is collision with undoicumented
"internal" names.

> In practice, all names will not be used in ::boost, but unless we can
> define the set of names that will be used and document them,
> it is far better to tell people that 'using namespace ::boost'
> is the road to collisions, incompaibility and nightmares.

I take that fact as given. It's what I was saying above "if you use using
namespace, you are importing an unspecified set of names into your program.
Don't look to us for sympathy". By documenting an "internals" namespace, all
we are saying is "... but we'll do our best to keep the names we use
documented, and hide away the ones we don't document". It doesn't take away
the user's responsibility, though.

We could, in theory, create boost::std::vector<>. Doing so would be a bit
nasty, though... [Hey, maybe we should do just that - implement a boost::std
namespace, and put all sorts of name clashes into it - that'd stop people
from using namespace boost :-)]

Paul.


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