https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53499
--- Comment #3 from Ed Catmur <ed at catmur dot co.uk> ---
I believe this also causes gcc to reject (as ambiguous) the example in
[temp.func.order]/3:
struct A { };
template<class T> struct B {
template<class R> int operator*(R&); // #1
};
template<class T, class R> int operator*(T&, R&); // #2
// The declaration of B::operator* is transformed into the equivalent of
// template<class R> int operator*(B<A>&, R&); // #1a
int main() {
A a;
B<A> b;
b * a; // calls #1a
}