http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48920

--- Comment #1 from Johannes Schaub <schaub.johannes at googlemail dot com> 
2011-05-06 23:47:33 UTC ---
(In reply to comment #0)
> […] As a perhaps related issue, the following looks well-formed:
> 
>     template<typename T>
>     void f(typename T::B) { }
> 
>     template<typename T>
>     void f(struct T::B) { }
> 
> GCC rejects it as a redefinition. The dependent parameter types of both look
> different.

The Itanium ABI does not include any way to distinguish these two cases, so I
suspect GCC can do nothing about this. And if one were to include "typename" as
a hint into the mangling, I can see how this quickly can get out of hand.

Reply via email to