This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: Problems with the new concepts checking code (boost)
Eeek!
On Mon, Apr 09, 2001 at 06:25:44PM -0400, Phil Edwards wrote:
> On Mon, Apr 09, 2001 at 11:48:36PM +0200, Gabriel Dos Reis wrote:
> > Thanks. Please make sure the library doesn't use identifiers in
> > user-namespace, that is using glibcpp_function_requires for example is
> > not right. Thats is why the library has always been "uglified".
>
> Oh, I took care not to step on toes, at least I hope I did. The calls
> to glibcpp_* are macros. (For this one, it expands into a call to
> boost::function_requires().) All of them expand into things which are
> fully-qualified by the boost namespace; we never use any 'using'
> statements of any kind.
Sorry, that's not enough. It doesn't matter if a name is scoped
within a namespace, it has to be uglified too. You will notice
that _all_ the non-standard-specified names in headers are uglified,
even the function-local ones. This is for protection against user
and other-header macros.
> The only user namespace we have to worry about is boost itself, which
> could be a concern.
That would be a concern itself: we would be imposing a particular
version of Boost components on users who very likely would prefer
to move on to a newer version.
The fact is, we can't share any part of Boost, except perhaps as an
unholy configure-time option. It's unfortunate that these facilities
are duplicated when a user also uses similar facilities from Boost,
but there are bigger concerns. This, practically, means we have to
fork any parts of Boost that we use, because they're not about to
uglify their names.
Nathan Myers
ncm at cantrip dot org