> On Apr 27, 2015, at 4:57 AM, Mike Herrick <[email protected]> wrote:
>> On Apr 26, 2015, at 4:07 AM, John McCall <[email protected]> wrote:
>> 
>> Here’s a concrete example using a member class template:
>> 
>> struct A {
>> template <unsigned I> class B {};
>> };
>> template <class T> void bar(T t, A::B<0> x = {}, A::B<1> y = {}) {}
>> int main() { bar(0); }
>> 
>> A compiler which always mangles member templates as nested-names
>> will mangle this as:
>> _Z3barIiEvT_N1A1BILj0EEENS2_ILj1EEE
>> 
>> A compiler which uses the unscoped mangling when a substitution
>> already exists will mangle this as:
>> _Z3barIiEvT_N1A1BILj0EEES2_ILj1EE
>> 
>> Unless somebody finds a compiler that actually does the latter, I think
>> this is just a specification bug and we’ve always meant the former.
>> I’m in the middle of rewriting the prose in this section anyway; if nobody
>> objects in the next week or so, I’ll just fix this while I’m there.
> 
> EDG gets the same mangling for this example; thanks for fixing the wording.

Okay, we seem to have consensus on this, thanks.  I’ve committed the
rewrite, together with a resolution to an ambiguity in <prefix> that Richard
suggested quite some time ago.

John.
_______________________________________________
cxx-abi-dev mailing list
[email protected]
http://sourcerytools.com/cgi-bin/mailman/listinfo/cxx-abi-dev

Reply via email to