// P0846R0 // { dg-do run } // { dg-options "-std=c++2a" } void g(); void e(); void e(int); void e(int, int); namespace N { struct A { }; template int f(T) { return 1; } template int g(T) { return 2; } template int e(T) { return 3; } } int main () { int v = e(N::A()); if (v != 3) __builtin_abort (); int x = f(N::A()); if (x != 1) __builtin_abort (); int y = g(N::A()); if (y != 2) __builtin_abort (); }