[libc++] Granularize <functional> includes
authorNikolas Klauser <nikolasklauser@berlin.de>
Sun, 17 Apr 2022 14:01:38 +0000 (16:01 +0200)
committerNikolas Klauser <nikolasklauser@berlin.de>
Wed, 20 Apr 2022 20:49:18 +0000 (22:49 +0200)
Reviewed By: Mordante, #libc

Spies: libcxx-commits, miyuki

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

27 files changed:
libcxx/include/__ranges/join_view.h
libcxx/include/algorithm
libcxx/include/experimental/coroutine
libcxx/include/experimental/propagate_const
libcxx/include/experimental/simd
libcxx/include/ext/hash_map
libcxx/include/ext/hash_set
libcxx/include/map
libcxx/include/mutex
libcxx/include/numeric
libcxx/include/optional
libcxx/include/queue
libcxx/include/regex
libcxx/include/set
libcxx/include/thread
libcxx/include/unordered_map
libcxx/include/unordered_set
libcxx/include/valarray
libcxx/test/std/algorithms/alg.modifying.operations/alg.transform/ranges.transform.pass.cpp
libcxx/test/std/algorithms/alg.nonmodifying/mismatch/ranges_mismatch.pass.cpp
libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.max.pass.cpp
libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.max_element.pass.cpp
libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.min.pass.cpp
libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.min_element.pass.cpp
libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.minmax.pass.cpp
libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.minmax_element.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.lazy.split/constraints.compile.pass.cpp

index 1a1dfad1d2b0688f6b459fec7ffb68696cf1a127..b95db5bb30fe65b365515a84fbf54960a06702f5 100644 (file)
@@ -9,8 +9,15 @@
 #ifndef _LIBCPP___RANGES_JOIN_VIEW_H
 #define _LIBCPP___RANGES_JOIN_VIEW_H
 
+#include <__concepts/constructible.h>
+#include <__concepts/convertible_to.h>
+#include <__concepts/copyable.h>
+#include <__concepts/derived_from.h>
+#include <__concepts/equality_comparable.h>
 #include <__config>
 #include <__iterator/concepts.h>
+#include <__iterator/iter_move.h>
+#include <__iterator/iter_swap.h>
 #include <__iterator/iterator_traits.h>
 #include <__ranges/access.h>
 #include <__ranges/all.h>
index 9feb59b3a1a7e9a701a60a95ccf6062262be8719..ff2a54ef33827d51acf9dfa60abf079db7d497ed 100644 (file)
@@ -881,7 +881,7 @@ template <class BidirectionalIterator, class Compare>
 #include <__debug>
 #include <cstddef>
 #include <cstring>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <iterator>
 #include <memory>
index e94450b1438ac97142c5acd89cb9f4c0e3f2d709..50c7fcf613d85bbdd8c731d011ad8cca850ca2e4 100644 (file)
@@ -46,9 +46,10 @@ template <class P> struct hash<coroutine_handle<P>>;
  */
 
 #include <__assert> // all public C++ headers provide the assertion handler
+#include <__functional/hash.h>
 #include <cstddef>
 #include <experimental/__config>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <memory> // for hash<T*>
 #include <new>
 #include <type_traits>
index 7c9b783f4163ce859d09bb84df499a72740bd835..2ed17c7613012c101e5365ad3140058aee9db571 100644 (file)
 */
 
 #include <__assert> // all public C++ headers provide the assertion handler
+#include <__functional/operations.h>
+#include <__utility/forward.h>
 #include <__utility/move.h>
 #include <__utility/swap.h>
 #include <experimental/__config>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
index 7fa185f4f3955ff4cf2c0bb3d7df1c4e9f4447f2..cf255b8a37f8cb3bb39faa0956ceb059216384de 100644 (file)
@@ -650,10 +650,12 @@ public:
 */
 
 #include <__assert> // all public C++ headers provide the assertion handler
+#include <__functional/operations.h>
 #include <array>
 #include <cstddef>
 #include <experimental/__config>
-#include <functional>
+#include <functional> // TODO: Remove this include
+#include <tuple>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header
index 92572c08c24cc3b50be33ddd1c4fbd9aadec2130..79198784a8ec4c984d043f16b17dd1fbc3db6e89 100644 (file)
@@ -206,7 +206,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
 #include <__hash_table>
 #include <algorithm>
 #include <ext/__hash>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <stdexcept>
 #include <type_traits>
 
index eb61939406682849927a81f2f87ee458f899cef6..76631daddddcb15f33ae15b8557f69a126692a7c 100644 (file)
@@ -197,7 +197,7 @@ template <class Value, class Hash, class Pred, class Alloc>
 #include <__hash_table>
 #include <algorithm>
 #include <ext/__hash>
-#include <functional>
+#include <functional> // TODO: Remove this include
 
 #if defined(__DEPRECATED) && __DEPRECATED
 #if defined(_LIBCPP_WARNING)
index 7371d5182c0db5864d1bb5def23813f8e7eca47b..346fa89a19f182b453308171273bdd7ae1a937ac 100644 (file)
@@ -539,7 +539,7 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred);  // C++20
 #include <__utility/forward.h>
 #include <__utility/swap.h>
 #include <compare>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <iterator> // __libcpp_erase_if_container
 #include <memory>
index a94e3b7daef9209936ced4510a51ce29faea875b..7368887b432116cc9e594ad9977f9ac259976d9d 100644 (file)
@@ -192,7 +192,7 @@ template<class Callable, class ...Args>
 #include <__threading_support>
 #include <__utility/forward.h>
 #include <cstdint>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <memory>
 #ifndef _LIBCPP_CXX03_LANG
 # include <tuple>
index ef963365ae71dfb6ad752aaee7706300192fa561..d9265da429d6c1d4433b98f34ed26ec3a0a687a5 100644 (file)
@@ -147,7 +147,7 @@ template<class T>
 #include <__assert> // all public C++ headers provide the assertion handler
 #include <__config>
 #include <cmath> // for isnormal
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <iterator>
 #include <version>
 
index 8dc1a136fdafc08e4bdf851a4743183c74e6295e..48a1a5f94fecb01ee273cba64c5f76e49287ef57 100644 (file)
@@ -162,10 +162,17 @@ template<class T>
 #include <__availability>
 #include <__concepts/invocable.h>
 #include <__config>
+#include <__functional/hash.h>
+#include <__functional/invoke.h>
+#include <__functional/unary_function.h>
+#include <__memory/construct_at.h>
+#include <__tuple>
+#include <__utility/forward.h>
 #include <__utility/in_place.h>
+#include <__utility/move.h>
 #include <__utility/swap.h>
 #include <compare>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <new>
 #include <stdexcept>
index d15c141920e8e3fd5a153b424a80ab18a328301a..4074460e8e2d92b1ef0044e9eca1764fb2940bea 100644 (file)
@@ -227,7 +227,7 @@ template <class T, class Container, class Compare>
 #include <__utility/forward.h>
 #include <compare>
 #include <deque>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <type_traits>
 #include <vector>
 #include <version>
index 456f34d4517799f2cc15fefad5375161e26e2a30..5d078744c5d844219b18202c91048b4f2f460ee9 100644 (file)
@@ -763,6 +763,7 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
 */
 
 #include <__algorithm/find.h>
+#include <__algorithm/search.h>
 #include <__assert> // all public C++ headers provide the assertion handler
 #include <__config>
 #include <__iterator/wrap_iter.h>
index a2d43cd883e356d6f10be55da276bc2759595c1e..baad39616ae33a0d8eddde8b91fc117284f341a8 100644 (file)
@@ -481,7 +481,7 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred);  // C++20
 #include <__tree>
 #include <__utility/forward.h>
 #include <compare>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <iterator> // __libcpp_erase_if_container
 #include <version>
index 540f591f9d1312b16093022ad552a95bfca4c1a5..55e6fba8e68ff3606588466baa41668d4558da1c 100644 (file)
@@ -90,7 +90,7 @@ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
 #include <__threading_support>
 #include <__utility/forward.h>
 #include <cstddef>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <iosfwd>
 #include <memory>
 #include <system_error>
index b7acfc3c8d00e7cffaed0e49a98815cf92ab0db2..9b58995687704100671d59c2e984e12ec86bb65f 100644 (file)
@@ -525,7 +525,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
 #include <__node_handle>
 #include <__utility/forward.h>
 #include <compare>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <iterator> // __libcpp_erase_if_container
 #include <stdexcept>
 #include <tuple>
index f4ec9f5d5e1c50515d1b9454a30be0891e0565b7..c3955bad0a29f6980d688c42324662a9ea459a25 100644 (file)
@@ -469,7 +469,7 @@ template <class Value, class Hash, class Pred, class Alloc>
 #include <__node_handle>
 #include <__utility/forward.h>
 #include <compare>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <iterator> // __libcpp_erase_if_container
 #include <version>
 
index d79b0b21da0694e5109a3e438efa0cfcd2ae8db5..fc044f48d2a395206c107e94fc7f61741c2ea928 100644 (file)
@@ -350,9 +350,14 @@ template <class T> unspecified2 end(const valarray<T>& v);
 #include <__algorithm/unwrap_iter.h>
 #include <__assert> // all public C++ headers provide the assertion handler
 #include <__config>
+#include <__functional/operations.h>
+#include <__memory/allocator.h>
+#include <__memory/uninitialized_algorithms.h>
+#include <__utility/move.h>
+#include <__utility/swap.h>
 #include <cmath>
 #include <cstddef>
-#include <functional>
+#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <new>
 #include <version>
index a589b9e7c5150582ae297a650aec196495c9a4fb..c30ef250237b3d5eacedd7038f2162738c12eae5 100644 (file)
@@ -40,6 +40,7 @@
 #include <algorithm>
 #include <array>
 #include <cassert>
+#include <functional>
 #include <ranges>
 
 #include "test_iterators.h"
index aa66ed9a3a500fa244d23e9bece9e53d39413666..64b1c0520346cf984bf00229e81fedfc9a6139af 100644 (file)
@@ -24,6 +24,7 @@
 #include <algorithm>
 #include <array>
 #include <cassert>
+#include <functional>
 #include <ranges>
 
 #include "test_iterators.h"
index e1a478907fab569993c9dee748e395ba9cf67c80..a284fd61f09497dc0f51c80b49af06994a3e9dac 100644 (file)
@@ -28,6 +28,7 @@
 #include <algorithm>
 #include <array>
 #include <cassert>
+#include <functional>
 #include <ranges>
 
 #include "almost_satisfies_types.h"
index 48f5c197312dfbb2d23295a7b354ed5191a9e9ff..95ef0e5e7e317cb363fe1fecd9aaee628ce9d288 100644 (file)
@@ -22,6 +22,7 @@
 #include <algorithm>
 #include <array>
 #include <cassert>
+#include <functional>
 #include <random>
 #include <ranges>
 
index 696961d7de7a9a43358f0104ea98d9a91b6adaf4..b68b9a70723b3fbc8dea0f14d8e33005a355371a 100644 (file)
@@ -26,6 +26,7 @@
 #include <algorithm>
 #include <array>
 #include <cassert>
+#include <functional>
 #include <ranges>
 
 #include "almost_satisfies_types.h"
index 7a14f3304592413c316d8dacb0896bc8706437d2..8acb571a5fd632ed083bb868fbf65a4121ce4c3b 100644 (file)
@@ -22,6 +22,7 @@
 #include <algorithm>
 #include <array>
 #include <cassert>
+#include <functional>
 #include <random>
 #include <ranges>
 
index 15753e0e84969c55b17abb40c265fc760c89aebf..76a49bca0a225c7558d5075f82c05e01541e6a10 100644 (file)
@@ -28,6 +28,7 @@
 #include <algorithm>
 #include <array>
 #include <cassert>
+#include <functional>
 #include <ranges>
 
 #include "test_iterators.h"
index a9253db61b16c9e774867834d5131595c3deb05f..4c571abb9d4c0348f24d236d81b2aa4c9e00dec6 100644 (file)
@@ -23,6 +23,7 @@
 #include <algorithm>
 #include <array>
 #include <cassert>
+#include <functional>
 #include <ranges>
 
 #include "almost_satisfies_types.h"
index 783d700d0eba7857ba093788fc05007426aef343..bc98d3fb584d42ac3396a0a7697a77475d19bb1c 100644 (file)
@@ -15,6 +15,7 @@
 //            (forward_range<V> || tiny-range<Pattern>)
 // class lazy_split_view;
 
+#include <functional>
 #include <ranges>
 
 #include "test_iterators.h"