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
}

Reply via email to