This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: EEEEKS! The mangling changed!


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]