> 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
