This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: EEEEKS! The mangling changed!
- From: Gabriel Dos Reis <gdr at integrable-solutions dot net>
- To: Loren James Rittle <rittle at latour dot rsch dot comm dot mot dot com>
- Cc: libstdc++ at gcc dot gnu dot org
- Date: 03 Dec 2003 03:31:05 +0100
- Subject: Re: EEEEKS! The mangling changed!
- Organization: Integrable Solutions
- References: <20031130021827.GA20476@alinoe.com><m3ad6ewq0i.fsf@uniton.integrable-solutions.net><20031130031822.GA25321@alinoe.com><m34qwm7c3q.fsf@uniton.integrable-solutions.net><200312022056.hB2KuR3b028107@latour.rsch.comm.mot.com>
Loren James Rittle <rittle@latour.rsch.comm.mot.com> writes:
| > Actually.... at one point I'd suggested making __gnu_norm and
| > __gnu_debug nested namespaces within std. I thought it might make the
| > result a little more palatable to people like Carlo.
|
| Fully agreed. __gnu_norm::vector<> is not a __gnu_debug::vector<>
| even if both can be mapped to std::vector<> with 'using' statements.
Even more so, during the elaboration of "namespace association", I
have been pestering Benjamin (and Doug in his previous work) to
consider how to handle user's explicit specializations.
// consider this is a header file to be included in different
// translation units
#include <vector>
namespace his {
struct type { /* only good things here. */ };
}
namespace std {
template<>
struct vector<his::type> { /* ... */ };
}
what should be the "home" namespace of vector<his::type> ? There is
more than one answer. I think, a least surprising and non-breaking
code ones is to say that it resides in std:: and mangled as such.
| We should not make changes to aid debugging tools, if they make actual
| debugging harder. I could support a scheme where std::__x::y implied
| std::y for external tools that want to optionally hide such details.
Hmm, I would rather not do that.
-- Gaby