[libcxx][modularisation] moves <utility> content out of <type_traits>
Moves:
* `std::move`, `std::forward`, `std::declval`, and `std::swap` into
`__utility/${FUNCTION_NAME}`.
* `std::swap_ranges` and `std::iter_swap` into
`__algorithm/${FUNCTION_NAME}`
Differential Revision: https://reviews.llvm.org/D103734
NOKEYCHECK=True
GitOrigin-RevId: 6adbc83ee9e46b476e0f75d5671c3a21f675a936
diff --git a/include/utility b/include/utility
index c536a1a..49e7b3e 100644
--- a/include/utility
+++ b/include/utility
@@ -210,6 +210,10 @@
#include <__config>
#include <__debug>
#include <__tuple>
+#include <__utility/declval.h>
+#include <__utility/forward.h>
+#include <__utility/move.h>
+#include <__utility/swap.h>
#include <__utility/to_underlying.h>
#include <compare>
#include <cstddef>
@@ -266,29 +270,6 @@
} // rel_ops
-// swap_ranges is defined in <type_traits>`
-
-// swap is defined in <type_traits>
-
-// move_if_noexcept
-
-#ifndef _LIBCPP_CXX03_LANG
-template <class _Tp>
-using __move_if_noexcept_result_t =
- typename conditional<!is_nothrow_move_constructible<_Tp>::value && is_copy_constructible<_Tp>::value, const _Tp&,
- _Tp&&>::type;
-#else // _LIBCPP_CXX03_LANG
-template <class _Tp>
-using __move_if_noexcept_result_t = const _Tp&;
-#endif
-
-template <class _Tp>
-_LIBCPP_NODISCARD_EXT inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX11
-__move_if_noexcept_result_t<_Tp> move_if_noexcept(_Tp& __x) _NOEXCEPT
-{
- return _VSTD::move(__x);
-}
-
#if _LIBCPP_STD_VER > 14
template <class _Tp>
_LIBCPP_NODISCARD_EXT constexpr add_const_t<_Tp>& as_const(_Tp& __t) noexcept { return __t; }