This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: EEEEKS! The mangling changed!
On Wed, Dec 03, 2003 at 03:44:59AM +0100, Gabriel Dos Reis wrote:
> | > Douglas Paul Gregor <gregod@cs.rpi.edu> writes:
> |
> | Do user specializations of, e.g., std::vector go into
> | __gnu_norm/__gnu_debug or into std?
>
> They go into std::.
Ok, I understand it now:
When, in debug mode, specializations defined by the user in namespace std
are mangled as "St", then "St" corresponds to debug mode and it would not
be possible to define a specialization for normal containers in debug mode
when normal containers go into "St" as well.
On top of that, it is considered undesirable to have specializations
defined by the user in namespace std go into "11__gnu_debug", in debug mode,
because the same header file can be used in different compilation units,
one of which can be compiled in normal mode while the other one is compiled
in debug mode, which would lead to the same specialization/code to have two
different mangled names in different compilation units.
While I think it is discussable whether or not it would be better to
the latter anyway - I do not expect the outcome of this discussion ever
to be that the current design is changed ;). So we might as well end it.
Thanks for taking the time to explain this to me Gaby.
--
Carlo Wood <carlo@alinoe.com>