http://gcc.gnu.org/bugzilla/show_bug.cgi?id=99
--- Comment #19 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-10-09 18:47:33 UTC --- Reconfirmed with revision 192154: pr99.cc:6:30: error: call of overloaded ‘f(X<int>, X<int>)’ is ambiguous return f(X<int>(), X<int>()); ^ pr99.cc:6:30: note: candidates are: pr99.cc:2:26: note: int f(X<int>, X<Q>) [with Q = int] template<typename Q> int f(X<int>, X<Q>); ^ pr99.cc:3:26: note: int f(X<Q>, X<int>) [with B = int] template<typename B> int f(X<B>, X<int>); ^