[libcxx] adds concept std::semiregular
Implements parts of:
- P0898R3 Standard Library Concepts
- P1754 Rename concepts to standard_case for C++20, while we still can
Depends on D97443
Reviewed By: Quuxplusone, EricWF, #libc
Differential Revision: https://reviews.llvm.org/D97911
GitOrigin-RevId: 154395536e3cd9b39141b306ebb6f41620d4f53f
diff --git a/include/concepts b/include/concepts
index cb571b4..930f3c4 100644
--- a/include/concepts
+++ b/include/concepts
@@ -382,6 +382,9 @@
assignable_from<_Tp&, const _Tp&> &&
assignable_from<_Tp&, const _Tp>;
+template<class _Tp>
+concept semiregular = copyable<_Tp> && default_initializable<_Tp>;
+
// [concept.invocable]
template<class _Fn, class... _Args>
concept invocable = requires(_Fn&& __fn, _Args&&... __args) {