1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
// { dg-do compile { target c++11 } } template<typename T> struct A { A() {} template<typename U> A(const A<U>&) {} bool operator==(const A&) const { return true; } }; A<const int> a; A<int> b; auto c = (a == b); // { dg-error "ambiguous, even though the second is reversed" "" { target c++20 } }