[libcxx] adds concept `std::move_constructible`
Implements parts of:
- P0898R3 Standard Library Concepts
- P1754 Rename concepts to standard_case for C++20, while we still can
Depends on D77961
Differential Revision: https://reviews.llvm.org/D96230
GitOrigin-RevId: 2b2f36a8b12be43d0d85c67a7f1582390b7cc27b
diff --git a/include/concepts b/include/concepts
index 1a18193..7ab03ff 100644
--- a/include/concepts
+++ b/include/concepts
@@ -184,6 +184,11 @@
concept default_initializable = constructible_from<_Tp> &&
requires { _Tp{}; } && __default_initializable<_Tp>;
+// [concept.moveconstructible]
+template<class _Tp>
+concept move_constructible =
+ constructible_from<_Tp, _Tp> && convertible_to<_Tp, _Tp>;
+
#endif //_LIBCPP_STD_VER > 17 && defined(__cpp_concepts) && __cpp_concepts >= 201811L
_LIBCPP_END_NAMESPACE_STD