// { dg-do compile { target c++20 } } // Performance test... This should be fast. #include template concept Destructible = std::is_destructible::value; template concept Constructible = Destructible && std::is_constructible::value; template concept Move_constructible = Constructible; template concept Copy_constructible = Move_constructible && Constructible; template concept Assignable = std::is_assignable::value; template concept Move_assignable = Assignable; template concept Copy_assignable = Move_assignable && Assignable; template concept Copyable = Copy_constructible && Copy_assignable; template concept C1 = Copyable; template concept C2 = C1; template concept C3 = C2; template concept C4 = C3; template concept C5 = C4; template concept C6 = C5; template concept C7 = C6; template concept C8 = C7; template concept C9 = C8; template concept C10 = C9; template concept C11 = C10; struct S1 {}; struct S2 {}; struct S3 {}; struct S4 {}; struct S5 {}; struct S6 {}; static_assert(C11, ""); static_assert(C11, ""); static_assert(C11, ""); static_assert(C11, ""); static_assert(C11, ""); static_assert(C11, "");