// testcase from P2113 // { dg-do compile { target c++20 } } template constexpr bool True = true; template concept C = True; void f(C auto &, auto &) = delete; template void f(Q &, C auto &); void g(struct A *ap, struct B *bp) { f(*ap, *bp); // OK: Can use different methods to produce template parameters } template struct X {}; template bool operator==(X, V1) = delete; // In P2113 this candidate is reversed. template bool operator==(X, V2); void h() { X{} == 0; // OK }