[libc++] Replace includes of <utility> with specific detail headers
authorArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Fri, 4 Feb 2022 18:09:30 +0000 (13:09 -0500)
committerArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Fri, 4 Feb 2022 22:08:32 +0000 (17:08 -0500)
Basically a rebase of D104980; most of that patch had already happened
via gradual drive-by changes, but this finishes it up.
Don't touch the inclusions from `<__functional_base>`, `<__hash_table>`,
or `<__locale>`; those could be removed if we propagated the
inclusions up to the includers of those files, but there are lots
of those includers.

`<algorithm>`, `<functional>`, and `<memory>` already include `<utility>`
at the top level. `<iterator>` did not, so I've added it there.

Differential Revision: https://reviews.llvm.org/D119020

27 files changed:
libcxx/include/__algorithm/minmax.h
libcxx/include/__algorithm/minmax_element.h
libcxx/include/__algorithm/mismatch.h
libcxx/include/__algorithm/move.h
libcxx/include/__algorithm/move_backward.h
libcxx/include/__algorithm/partition_copy.h
libcxx/include/__algorithm/remove_if.h
libcxx/include/__algorithm/search.h
libcxx/include/__algorithm/unique_copy.h
libcxx/include/__functional/bind_front.h
libcxx/include/__functional/default_searcher.h
libcxx/include/__functional/function.h
libcxx/include/__functional/identity.h
libcxx/include/__functional/mem_fn.h
libcxx/include/__functional/not_fn.h
libcxx/include/__functional/ranges_operations.h
libcxx/include/__iterator/iter_move.h
libcxx/include/__memory/allocation_guard.h
libcxx/include/__memory/compressed_pair.h
libcxx/include/__memory/construct_at.h
libcxx/include/__memory/raw_storage_iterator.h
libcxx/include/__memory/shared_ptr.h
libcxx/include/__memory/temporary_buffer.h
libcxx/include/__memory/uninitialized_algorithms.h
libcxx/include/__memory/unique_ptr.h
libcxx/include/algorithm
libcxx/include/iterator

index 7783fc1..30a1194 100644 (file)
@@ -11,8 +11,8 @@
 
 #include <__algorithm/comp.h>
 #include <__config>
+#include <__utility/pair.h>
 #include <initializer_list>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 144ebef..80afbdf 100644 (file)
@@ -12,7 +12,7 @@
 #include <__algorithm/comp.h>
 #include <__config>
 #include <__iterator/iterator_traits.h>
-#include <utility>
+#include <__utility/pair.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index b31000c..f2011fa 100644 (file)
@@ -13,7 +13,7 @@
 #include <__algorithm/comp.h>
 #include <__config>
 #include <__iterator/iterator_traits.h>
-#include <utility>
+#include <__utility/pair.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 38abf67..72bf3d7 100644 (file)
@@ -14,7 +14,6 @@
 #include <__utility/move.h>
 #include <cstring>
 #include <type_traits>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index aa00a50..a56f6b8 100644 (file)
@@ -11,9 +11,9 @@
 
 #include <__algorithm/unwrap_iter.h>
 #include <__config>
+#include <__utility/move.h>
 #include <cstring>
 #include <type_traits>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 8b3ca49..cacde0b 100644 (file)
@@ -11,7 +11,7 @@
 
 #include <__config>
 #include <__iterator/iterator_traits.h>
-#include <utility> // pair
+#include <__utility/pair.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index e9e0d78..0ae1314 100644 (file)
@@ -11,7 +11,7 @@
 
 #include <__algorithm/find_if.h>
 #include <__config>
-#include <utility>
+#include <__utility/move.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 8b8d708..d89ec2b 100644 (file)
@@ -13,7 +13,7 @@
 #include <__algorithm/comp.h>
 #include <__config>
 #include <__iterator/iterator_traits.h>
-#include <utility>
+#include <__utility/pair.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 8db0b71..f585177 100644 (file)
@@ -12,7 +12,6 @@
 #include <__algorithm/comp.h>
 #include <__config>
 #include <__iterator/iterator_traits.h>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index e2cd3ae..22fb3a6 100644 (file)
@@ -13,8 +13,8 @@
 #include <__config>
 #include <__functional/invoke.h>
 #include <__functional/perfect_forward.h>
+#include <__utility/forward.h>
 #include <type_traits>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 7c1f70e..05fb23d 100644 (file)
@@ -14,7 +14,7 @@
 #include <__config>
 #include <__functional/operations.h>
 #include <__iterator/iterator_traits.h>
-#include <utility>
+#include <__utility/pair.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 852b215..1709876 100644 (file)
 #include <__memory/allocator_traits.h>
 #include <__memory/compressed_pair.h>
 #include <__memory/shared_ptr.h>
+#include <__utility/forward.h>
+#include <__utility/move.h>
 #include <exception>
 #include <memory> // TODO: replace with <__memory/__builtin_new_allocator.h>
 #include <type_traits>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index f8b727e..646325a 100644 (file)
@@ -11,7 +11,7 @@
 #define _LIBCPP___FUNCTIONAL_IDENTITY_H
 
 #include <__config>
-#include <utility>
+#include <__utility/forward.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index b87fe02..10967a8 100644 (file)
@@ -14,7 +14,8 @@
 #include <__functional/binary_function.h>
 #include <__functional/invoke.h>
 #include <__functional/weak_result_type.h>
-#include <utility>
+#include <__utility/forward.h>
+#include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 400cfc8..b5c415c 100644 (file)
@@ -13,7 +13,8 @@
 #include <__config>
 #include <__functional/invoke.h>
 #include <__functional/perfect_forward.h>
-#include <utility>
+#include <__utility/forward.h>
+#include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 8d5d74a..c8f02c0 100644 (file)
@@ -11,8 +11,8 @@
 #define _LIBCPP___FUNCTIONAL_RANGES_OPERATIONS_H
 
 #include <__config>
+#include <__utility/forward.h>
 #include <concepts>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 5cdf62e..43c1bf8 100644 (file)
@@ -13,9 +13,9 @@
 #include <__config>
 #include <__iterator/iterator_traits.h>
 #include <__utility/forward.h>
+#include <__utility/move.h>
 #include <concepts> // __class_or_enum
 #include <type_traits>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index e5def04..424598c 100644 (file)
@@ -12,8 +12,8 @@
 
 #include <__config>
 #include <__memory/allocator_traits.h>
+#include <__utility/move.h>
 #include <cstddef>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index c40319e..4cd1910 100644 (file)
@@ -12,9 +12,9 @@
 
 #include <__config>
 #include <__utility/forward.h>
+#include <__utility/move.h>
 #include <tuple> // needed in c++03 for some constructors
 #include <type_traits>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 51c8469..d0328f8 100644 (file)
@@ -16,8 +16,8 @@
 #include <__memory/addressof.h>
 #include <__memory/voidify.h>
 #include <__utility/forward.h>
+#include <__utility/move.h>
 #include <type_traits>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index faa1e31..f25f7b1 100644 (file)
@@ -12,9 +12,9 @@
 
 #include <__config>
 #include <__memory/addressof.h>
+#include <__utility/move.h>
 #include <cstddef>
 #include <iterator>
-#include <utility>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 1bd49d4..a1a1b26 100644 (file)
 #include <__memory/pointer_traits.h>
 #include <__memory/unique_ptr.h>
 #include <__utility/forward.h>
+#include <__utility/move.h>
 #include <cstddef>
 #include <cstdlib> // abort
 #include <iosfwd>
 #include <stdexcept>
 #include <type_traits>
 #include <typeinfo>
-#include <utility>
 #if !defined(_LIBCPP_HAS_NO_ATOMIC_HEADER)
 #  include <atomic>
 #endif
index efc89e6..2c6e333 100644 (file)
@@ -11,9 +11,9 @@
 #define _LIBCPP___MEMORY_TEMPORARY_BUFFER_H
 
 #include <__config>
+#include <__utility/pair.h>
 #include <cstddef>
 #include <new>
-#include <utility> // pair
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 4ce8722..fc55b49 100644 (file)
 #define _LIBCPP___MEMORY_UNINITIALIZED_ALGORITHMS_H
 
 #include <__config>
+#include <__iterator/iterator_traits.h>
 #include <__memory/addressof.h>
 #include <__memory/construct_at.h>
 #include <__memory/voidify.h>
-#include <iterator>
-#include <utility>
+#include <__utility/move.h>
+#include <__utility/pair.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index a5d9729..94c1704 100644 (file)
@@ -17,9 +17,9 @@
 #include <__memory/allocator_traits.h> // __pointer
 #include <__memory/compressed_pair.h>
 #include <__utility/forward.h>
+#include <__utility/move.h>
 #include <cstddef>
 #include <type_traits>
-#include <utility>
 
 #if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
 #   include <__memory/auto_ptr.h>
index c57a98a..815f28e 100644 (file)
@@ -662,7 +662,7 @@ template<class InputIterator, class OutputIterator>
 
 */
 
-#include <__bits> // __libcpp_clz
+#include <__bits>
 #include <__config>
 #include <__debug>
 #include <cstddef>
@@ -672,7 +672,7 @@ template<class InputIterator, class OutputIterator>
 #include <iterator>
 #include <memory>
 #include <type_traits>
-#include <utility> // swap_ranges
+#include <utility>
 #include <version>
 
 #include <__algorithm/adjacent_find.h>
index 7db00d5..1786c4b 100644 (file)
@@ -628,12 +628,12 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
 #include <__iterator/wrap_iter.h>
 #include <__memory/addressof.h>
 #include <__memory/pointer_traits.h>
-#include <__utility/forward.h>
 #include <compare>
 #include <concepts> // Mandated by the Standard.
 #include <cstddef>
 #include <initializer_list>
 #include <type_traits>
+#include <utility>
 #include <version>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)