// { dg-do compile { target c++17 } } // { dg-options "-fconcepts" } // template // concept bool C() { return true; } template concept C = true; void f1(C auto, C auto); void f2(C auto, C auto); void f3(C auto, C auto); void f1(C auto, C auto) { } template void f2(T1, T2) { } template requires C && C void f3(T, U) { } int main() { f1(0, 0); f2(0, 0); // { dg-error "ambiguous" } f3(0, 0); // { dg-error "ambiguous" } }