// { dg-do compile { target c++20 } } template concept C = __is_class(T); template concept D = C && __is_empty(T); struct X { }; struct Y { int n; }; template struct S { void f() { } // #1 void f() requires C { } // #2 void g() requires C { } // #1 void g() requires D { } // #2 }; template void S::f(); // #1 template void S::f(); // #2 template void S::g(); // #2 template void S::g(); // #1 int main() { }