The following code compiles with gcc version 4.0.2 20050901 (prerelease) but does not compile with gcc version 4.2.0 20060513 (experimental)
void f (...); template <template <typename> class F, typename T> void f (F<T>); template <typename> struct foo { struct bar {}; }; void g (foo<int>::bar x) { f(x); } // error: call to f is ambiguous Comeau 4.3.3 accepts the code. -- Summary: [4.0/4.2 regression] function template incorrectly selected as candidate Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc-bugzilla at contacts dot eelis dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27689