[libcxx-commits] [libcxx] ea2206d - [libc++] Replace includes of <utility> with specific detail headers
Arthur O'Dwyer via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Feb 4 14:08:42 PST 2022
Author: Arthur O'Dwyer
Date: 2022-02-04T17:08:32-05:00
New Revision: ea2206d70db1aaf1b0e2b01415292ec807108880
URL: https://github.com/llvm/llvm-project/commit/ea2206d70db1aaf1b0e2b01415292ec807108880
DIFF: https://github.com/llvm/llvm-project/commit/ea2206d70db1aaf1b0e2b01415292ec807108880.diff
LOG: [libc++] Replace includes of <utility> with specific detail headers
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
Added:
Modified:
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
Removed:
################################################################################
diff --git a/libcxx/include/__algorithm/minmax.h b/libcxx/include/__algorithm/minmax.h
index 7783fc189d49c..30a119491a36e 100644
--- a/libcxx/include/__algorithm/minmax.h
+++ b/libcxx/include/__algorithm/minmax.h
@@ -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
diff --git a/libcxx/include/__algorithm/minmax_element.h b/libcxx/include/__algorithm/minmax_element.h
index 144ebef24cabf..80afbdf87abea 100644
--- a/libcxx/include/__algorithm/minmax_element.h
+++ b/libcxx/include/__algorithm/minmax_element.h
@@ -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
diff --git a/libcxx/include/__algorithm/mismatch.h b/libcxx/include/__algorithm/mismatch.h
index b31000c06e001..f2011faf2f9a0 100644
--- a/libcxx/include/__algorithm/mismatch.h
+++ b/libcxx/include/__algorithm/mismatch.h
@@ -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
diff --git a/libcxx/include/__algorithm/move.h b/libcxx/include/__algorithm/move.h
index 38abf676fa71c..72bf3d76ea5be 100644
--- a/libcxx/include/__algorithm/move.h
+++ b/libcxx/include/__algorithm/move.h
@@ -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
diff --git a/libcxx/include/__algorithm/move_backward.h b/libcxx/include/__algorithm/move_backward.h
index aa00a508db560..a56f6b826ce33 100644
--- a/libcxx/include/__algorithm/move_backward.h
+++ b/libcxx/include/__algorithm/move_backward.h
@@ -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
diff --git a/libcxx/include/__algorithm/partition_copy.h b/libcxx/include/__algorithm/partition_copy.h
index 8b3ca49e7298f..cacde0bfd47bb 100644
--- a/libcxx/include/__algorithm/partition_copy.h
+++ b/libcxx/include/__algorithm/partition_copy.h
@@ -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
diff --git a/libcxx/include/__algorithm/remove_if.h b/libcxx/include/__algorithm/remove_if.h
index e9e0d78be614b..0ae131498d22d 100644
--- a/libcxx/include/__algorithm/remove_if.h
+++ b/libcxx/include/__algorithm/remove_if.h
@@ -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
diff --git a/libcxx/include/__algorithm/search.h b/libcxx/include/__algorithm/search.h
index 8b8d708c15395..d89ec2b1c5bce 100644
--- a/libcxx/include/__algorithm/search.h
+++ b/libcxx/include/__algorithm/search.h
@@ -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
diff --git a/libcxx/include/__algorithm/unique_copy.h b/libcxx/include/__algorithm/unique_copy.h
index 8db0b716f22e2..f58517749f514 100644
--- a/libcxx/include/__algorithm/unique_copy.h
+++ b/libcxx/include/__algorithm/unique_copy.h
@@ -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
diff --git a/libcxx/include/__functional/bind_front.h b/libcxx/include/__functional/bind_front.h
index e2cd3aecd5226..22fb3a69dc75e 100644
--- a/libcxx/include/__functional/bind_front.h
+++ b/libcxx/include/__functional/bind_front.h
@@ -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
diff --git a/libcxx/include/__functional/default_searcher.h b/libcxx/include/__functional/default_searcher.h
index 7c1f70edd1beb..05fb23d7c3c41 100644
--- a/libcxx/include/__functional/default_searcher.h
+++ b/libcxx/include/__functional/default_searcher.h
@@ -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
diff --git a/libcxx/include/__functional/function.h b/libcxx/include/__functional/function.h
index 852b215f654d7..170987693d5f8 100644
--- a/libcxx/include/__functional/function.h
+++ b/libcxx/include/__functional/function.h
@@ -20,10 +20,11 @@
#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
diff --git a/libcxx/include/__functional/identity.h b/libcxx/include/__functional/identity.h
index f8b727eae60ba..646325aca496f 100644
--- a/libcxx/include/__functional/identity.h
+++ b/libcxx/include/__functional/identity.h
@@ -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
diff --git a/libcxx/include/__functional/mem_fn.h b/libcxx/include/__functional/mem_fn.h
index b87fe02095297..10967a8a14ec3 100644
--- a/libcxx/include/__functional/mem_fn.h
+++ b/libcxx/include/__functional/mem_fn.h
@@ -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
diff --git a/libcxx/include/__functional/not_fn.h b/libcxx/include/__functional/not_fn.h
index 400cfc8b12cbf..b5c415c25c446 100644
--- a/libcxx/include/__functional/not_fn.h
+++ b/libcxx/include/__functional/not_fn.h
@@ -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
diff --git a/libcxx/include/__functional/ranges_operations.h b/libcxx/include/__functional/ranges_operations.h
index 8d5d74af5b3e5..c8f02c06eec75 100644
--- a/libcxx/include/__functional/ranges_operations.h
+++ b/libcxx/include/__functional/ranges_operations.h
@@ -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
diff --git a/libcxx/include/__iterator/iter_move.h b/libcxx/include/__iterator/iter_move.h
index 5cdf62e8445ce..43c1bf86490dc 100644
--- a/libcxx/include/__iterator/iter_move.h
+++ b/libcxx/include/__iterator/iter_move.h
@@ -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
diff --git a/libcxx/include/__memory/allocation_guard.h b/libcxx/include/__memory/allocation_guard.h
index e5def04d267da..424598cc81585 100644
--- a/libcxx/include/__memory/allocation_guard.h
+++ b/libcxx/include/__memory/allocation_guard.h
@@ -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
diff --git a/libcxx/include/__memory/compressed_pair.h b/libcxx/include/__memory/compressed_pair.h
index c40319ea5dcc4..4cd1910267d4c 100644
--- a/libcxx/include/__memory/compressed_pair.h
+++ b/libcxx/include/__memory/compressed_pair.h
@@ -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
diff --git a/libcxx/include/__memory/construct_at.h b/libcxx/include/__memory/construct_at.h
index 51c84698b9f08..d0328f8905762 100644
--- a/libcxx/include/__memory/construct_at.h
+++ b/libcxx/include/__memory/construct_at.h
@@ -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
diff --git a/libcxx/include/__memory/raw_storage_iterator.h b/libcxx/include/__memory/raw_storage_iterator.h
index faa1e311a648f..f25f7b1a728ad 100644
--- a/libcxx/include/__memory/raw_storage_iterator.h
+++ b/libcxx/include/__memory/raw_storage_iterator.h
@@ -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
diff --git a/libcxx/include/__memory/shared_ptr.h b/libcxx/include/__memory/shared_ptr.h
index 1bd49d43de4f9..a1a1b26be8299 100644
--- a/libcxx/include/__memory/shared_ptr.h
+++ b/libcxx/include/__memory/shared_ptr.h
@@ -24,13 +24,13 @@
#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
diff --git a/libcxx/include/__memory/temporary_buffer.h b/libcxx/include/__memory/temporary_buffer.h
index efc89e6b6477b..2c6e333eba081 100644
--- a/libcxx/include/__memory/temporary_buffer.h
+++ b/libcxx/include/__memory/temporary_buffer.h
@@ -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
diff --git a/libcxx/include/__memory/uninitialized_algorithms.h b/libcxx/include/__memory/uninitialized_algorithms.h
index 4ce872240f4e1..fc55b49aef2eb 100644
--- a/libcxx/include/__memory/uninitialized_algorithms.h
+++ b/libcxx/include/__memory/uninitialized_algorithms.h
@@ -11,11 +11,12 @@
#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
diff --git a/libcxx/include/__memory/unique_ptr.h b/libcxx/include/__memory/unique_ptr.h
index a5d9729cf59df..94c1704ea5f1b 100644
--- a/libcxx/include/__memory/unique_ptr.h
+++ b/libcxx/include/__memory/unique_ptr.h
@@ -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>
diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm
index c57a98a9bfbdf..815f28e5ceb1b 100644
--- a/libcxx/include/algorithm
+++ b/libcxx/include/algorithm
@@ -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>
diff --git a/libcxx/include/iterator b/libcxx/include/iterator
index 7db00d58b8fcb..1786c4b8d41ec 100644
--- a/libcxx/include/iterator
+++ b/libcxx/include/iterator
@@ -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)
More information about the libcxx-commits
mailing list