// { dg-do compile { target c++17 } } // { dg-options "-fconcepts" } template concept bool C() { return __is_class(T); } template concept bool D() { return C() && __is_empty(T); } struct X { }; struct Y { int n; }; template struct S { void f1() { } }; // #1 template struct S { void f2() { } }; // #2 template struct S { void f3() { } }; // #3 template struct S; // Instantiate #1 template struct S; // Instantiate #2 template struct S; // Instantiate #2 int main() { S i; i.f1(); S x; x.f3(); S y; y.f2(); }