[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) {