This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: malloc_allocator.h
On Dec 9, 2004, at 11:07 AM, Paolo Carlini wrote:
Matt Austern wrote:
Possibly stupid question... malloc_allocator is defined in namespace
__gnu_cxx, but it makes use of the names size_t, ptrdiff_t, malloc,
and free, without qualification. How can this be right? Shouldn't
they be std-qualified?
Well, this happens not only for malloc_allocator, but for *all* our
allocators. And, as long as <cstdlib> is included (Rth fixed this
recently exactly for malloc_allocator, are you alluding to that,
specific, problem?)
Yes and no. That specific problem is the reason I was looking at
malloc_allocator.h in the first place, yes. I noticed the std
qualification issue along the way.
everything ""works"" because, unfortunately, our C headers still
inject the names in the global namespace too.
We could easily qualify those names but the real problem with the C
headers will not be fixed very soon, AFAIK, seems very difficult to
get it right without controlling the libc, others know the technical
details of this much better than me.
OK, that's fair enough. I guess I was under the mistaken impression
that on some systems we did get C library names in namespace std only
when we included the <c...> form of the header. I was afraid this
might be one of these cases where things are fine on popular systems
like linux and darwin but horribly broken somewhere else.
--Matt