// { dg-do compile { target c++17 } } // { dg-options "-fconcepts" } template concept One = sizeof(T) >= 4; template concept Two = One && sizeof(T) >= 8; // Check ordering of partial specializaitons template struct S2 { static const int value = 0; }; template struct S2 { static const int value = 1; }; template struct S2 { static const int value = 2; }; struct one_type { char x[4]; }; struct two_type { char x[8]; }; static_assert(S2::value == 0, ""); static_assert(S2::value == 1, ""); static_assert(S2::value == 2, ""); int main() { }