aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcxx/include/__algorithm/sort.h1
-rw-r--r--libcxx/include/__format/format_arg.h2
-rw-r--r--libcxx/include/experimental/coroutine1
-rw-r--r--libcxx/include/ext/hash_map1
-rw-r--r--libcxx/include/ext/hash_set1
-rw-r--r--libcxx/include/iterator6
-rw-r--r--libcxx/include/map2
-rw-r--r--libcxx/include/memory8
-rw-r--r--libcxx/include/queue1
-rw-r--r--libcxx/include/set1
-rw-r--r--libcxx/include/string7
-rw-r--r--libcxx/include/string_view1
-rw-r--r--libcxx/include/tuple6
-rw-r--r--libcxx/include/typeindex5
-rw-r--r--libcxx/include/unordered_map1
-rw-r--r--libcxx/include/unordered_set1
-rw-r--r--libcxx/include/variant4
-rw-r--r--libcxx/include/vector7
-rw-r--r--libcxx/test/libcxx/algorithms/debug_less.pass.cpp3
-rw-r--r--libcxx/test/libcxx/algorithms/sort_stability.pass.cpp1
-rw-r--r--libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp1
-rw-r--r--libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp1
-rw-r--r--libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp1
-rw-r--r--libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp1
-rw-r--r--libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp3
-rw-r--r--libcxx/test/std/containers/sequences/list/list.ops/unique_pred.pass.cpp1
-rw-r--r--libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.hash/hash.pass.cpp1
-rw-r--r--libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp1
-rw-r--r--libcxx/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp1
-rw-r--r--libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp1
-rw-r--r--libcxx/test/std/ranges/range.adaptors/range.zip/types.h1
-rw-r--r--libcxx/test/support/deduction_guides_sfinae_checks.h1
32 files changed, 31 insertions, 43 deletions
diff --git a/libcxx/include/__algorithm/sort.h b/libcxx/include/__algorithm/sort.h
index a6ff5e3..b5eaf75 100644
--- a/libcxx/include/__algorithm/sort.h
+++ b/libcxx/include/__algorithm/sort.h
@@ -16,6 +16,7 @@
#include <__algorithm/unwrap_iter.h>
#include <__bits>
#include <__config>
+#include <__functional/operations.h>
#include <__utility/swap.h>
#include <climits>
#include <memory>
diff --git a/libcxx/include/__format/format_arg.h b/libcxx/include/__format/format_arg.h
index 3c61446..3f2afc8 100644
--- a/libcxx/include/__format/format_arg.h
+++ b/libcxx/include/__format/format_arg.h
@@ -16,7 +16,9 @@
#include <__format/format_error.h>
#include <__format/format_fwd.h>
#include <__format/format_parse_context.h>
+#include <__functional/invoke.h>
#include <__memory/addressof.h>
+#include <__utility/forward.h>
#include <__utility/unreachable.h>
#include <__variant/monostate.h>
#include <string>
diff --git a/libcxx/include/experimental/coroutine b/libcxx/include/experimental/coroutine
index 9fc9d19..111073b 100644
--- a/libcxx/include/experimental/coroutine
+++ b/libcxx/include/experimental/coroutine
@@ -47,6 +47,7 @@ template <class P> struct hash<coroutine_handle<P>>;
#include <__assert> // all public C++ headers provide the assertion handler
#include <__functional/hash.h>
+#include <__functional/operations.h>
#include <cstddef>
#include <experimental/__config>
#include <memory> // for hash<T*>
diff --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map
index ccc82ca..92572c08 100644
--- a/libcxx/include/ext/hash_map
+++ b/libcxx/include/ext/hash_map
@@ -206,6 +206,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
#include <__hash_table>
#include <algorithm>
#include <ext/__hash>
+#include <functional>
#include <stdexcept>
#include <type_traits>
diff --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set
index a4aff6e..eb61939 100644
--- a/libcxx/include/ext/hash_set
+++ b/libcxx/include/ext/hash_set
@@ -197,6 +197,7 @@ template <class Value, class Hash, class Pred, class Alloc>
#include <__hash_table>
#include <algorithm>
#include <ext/__hash>
+#include <functional>
#if defined(__DEPRECATED) && __DEPRECATED
#if defined(_LIBCPP_WARNING)
diff --git a/libcxx/include/iterator b/libcxx/include/iterator
index e983725..30c9a10 100644
--- a/libcxx/include/iterator
+++ b/libcxx/include/iterator
@@ -724,12 +724,6 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <version>
// TODO: remove these headers
-#include <__functional/binary_function.h>
-#include <__functional/invoke.h>
-#include <__functional/operations.h>
-#include <__functional/reference_wrapper.h>
-#include <__functional/unary_function.h>
-#include <__functional/weak_result_type.h>
#include <__memory/allocator_arg_t.h>
#include <__memory/uses_allocator.h>
#include <exception>
diff --git a/libcxx/include/map b/libcxx/include/map
index c6c8e8c..d48f3a2 100644
--- a/libcxx/include/map
+++ b/libcxx/include/map
@@ -532,7 +532,9 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
#include <__algorithm/lexicographical_compare.h>
#include <__assert> // all public C++ headers provide the assertion handler
#include <__config>
+#include <__functional/binary_function.h>
#include <__functional/is_transparent.h>
+#include <__functional/operations.h>
#include <__iterator/iterator_traits.h>
#include <__node_handle>
#include <__tree>
diff --git a/libcxx/include/memory b/libcxx/include/memory
index ffc674c..1360f9d 100644
--- a/libcxx/include/memory
+++ b/libcxx/include/memory
@@ -872,14 +872,6 @@ template<size_t N, class T>
#include <typeinfo>
#include <version>
-// TODO: remove these headers
-#include <__functional/binary_function.h>
-#include <__functional/invoke.h>
-#include <__functional/operations.h>
-#include <__functional/reference_wrapper.h>
-#include <__functional/unary_function.h>
-#include <__functional/weak_result_type.h>
-
#if _LIBCPP_STD_VER <= 14 || defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
# include <__memory/auto_ptr.h>
#endif
diff --git a/libcxx/include/queue b/libcxx/include/queue
index bd3a39f..da5d630 100644
--- a/libcxx/include/queue
+++ b/libcxx/include/queue
@@ -222,6 +222,7 @@ template <class T, class Container, class Compare>
#include <__algorithm/push_heap.h>
#include <__assert> // all public C++ headers provide the assertion handler
#include <__config>
+#include <__functional/operations.h>
#include <__iterator/iterator_traits.h>
#include <__memory/uses_allocator.h>
#include <__utility/forward.h>
diff --git a/libcxx/include/set b/libcxx/include/set
index 6aeddc8..be7af62 100644
--- a/libcxx/include/set
+++ b/libcxx/include/set
@@ -476,6 +476,7 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred); // C++20
#include <__assert> // all public C++ headers provide the assertion handler
#include <__config>
#include <__functional/is_transparent.h>
+#include <__functional/operations.h>
#include <__iterator/iterator_traits.h>
#include <__node_handle>
#include <__tree>
diff --git a/libcxx/include/string b/libcxx/include/string
index 1ccf486..e3fe06b 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -524,6 +524,7 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len );
#include <__config>
#include <__debug>
#include <__format/enable_insertable.h>
+#include <__functional/unary_function.h>
#include <__ios/fpos.h>
#include <__iterator/wrap_iter.h>
#include <__memory/allocate_at_least.h>
@@ -547,12 +548,6 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len );
#include <version>
// TODO: remove these headers
-#include <__functional/binary_function.h>
-#include <__functional/invoke.h>
-#include <__functional/operations.h>
-#include <__functional/reference_wrapper.h>
-#include <__functional/unary_function.h>
-#include <__functional/weak_result_type.h>
#include <new>
#include <typeinfo>
diff --git a/libcxx/include/string_view b/libcxx/include/string_view
index bd31b87..776baf2 100644
--- a/libcxx/include/string_view
+++ b/libcxx/include/string_view
@@ -199,6 +199,7 @@ namespace std {
#include <__algorithm/min.h>
#include <__assert> // all public C++ headers provide the assertion handler
#include <__config>
+#include <__functional/unary_function.h>
#include <__fwd/string_view.h>
#include <__ranges/concepts.h>
#include <__ranges/data.h>
diff --git a/libcxx/include/tuple b/libcxx/include/tuple
index 76297dd..cc08d8c 100644
--- a/libcxx/include/tuple
+++ b/libcxx/include/tuple
@@ -185,12 +185,6 @@ template <class... Types>
#include <version>
// TODO: remove these headers
-#include <__functional/binary_function.h>
-#include <__functional/invoke.h>
-#include <__functional/operations.h>
-#include <__functional/reference_wrapper.h>
-#include <__functional/unary_function.h>
-#include <__functional/weak_result_type.h>
#include <exception>
#include <new>
#include <typeinfo>
diff --git a/libcxx/include/typeindex b/libcxx/include/typeindex
index 0b61f28..8da8f58 100644
--- a/libcxx/include/typeindex
+++ b/libcxx/include/typeindex
@@ -52,11 +52,6 @@ struct hash<type_index>
#include <version>
// TODO: remove these headers
-#include <__functional/binary_function.h>
-#include <__functional/invoke.h>
-#include <__functional/operations.h>
-#include <__functional/reference_wrapper.h>
-#include <__functional/weak_result_type.h>
#include <__memory/allocator_arg_t.h>
#include <__memory/uses_allocator.h>
#include <new>
diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map
index e5741b0..16b843b 100644
--- a/libcxx/include/unordered_map
+++ b/libcxx/include/unordered_map
@@ -519,6 +519,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
#include <__config>
#include <__debug>
#include <__functional/is_transparent.h>
+#include <__functional/operations.h>
#include <__hash_table>
#include <__iterator/iterator_traits.h>
#include <__memory/addressof.h>
diff --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set
index de0e121..890475f 100644
--- a/libcxx/include/unordered_set
+++ b/libcxx/include/unordered_set
@@ -464,6 +464,7 @@ template <class Value, class Hash, class Pred, class Alloc>
#include <__config>
#include <__debug>
#include <__functional/is_transparent.h>
+#include <__functional/operations.h>
#include <__hash_table>
#include <__memory/addressof.h>
#include <__node_handle>
diff --git a/libcxx/include/variant b/libcxx/include/variant
index b1800ed..16fcede 100644
--- a/libcxx/include/variant
+++ b/libcxx/include/variant
@@ -221,10 +221,6 @@ namespace std {
#include <version>
// TODO: remove these headers
-#include <__functional/binary_function.h>
-#include <__functional/invoke.h>
-#include <__functional/reference_wrapper.h>
-#include <__functional/weak_result_type.h>
#include <__memory/allocator_arg_t.h>
#include <__memory/uses_allocator.h>
#include <typeinfo>
diff --git a/libcxx/include/vector b/libcxx/include/vector
index 5238ac5..d327e28 100644
--- a/libcxx/include/vector
+++ b/libcxx/include/vector
@@ -285,6 +285,7 @@ erase_if(vector<T, Allocator>& c, Predicate pred); // C++20
#include <__debug>
#include <__format/enable_insertable.h>
#include <__functional/hash.h>
+#include <__functional/unary_function.h>
#include <__iterator/iterator_traits.h>
#include <__iterator/wrap_iter.h>
#include <__memory/allocate_at_least.h>
@@ -305,12 +306,6 @@ erase_if(vector<T, Allocator>& c, Predicate pred); // C++20
#include <version>
// TODO: remove these headers
-#include <__functional/binary_function.h>
-#include <__functional/invoke.h>
-#include <__functional/operations.h>
-#include <__functional/reference_wrapper.h>
-#include <__functional/unary_function.h>
-#include <__functional/weak_result_type.h>
#include <typeinfo>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
diff --git a/libcxx/test/libcxx/algorithms/debug_less.pass.cpp b/libcxx/test/libcxx/algorithms/debug_less.pass.cpp
index 05ba0f1..6caad3a 100644
--- a/libcxx/test/libcxx/algorithms/debug_less.pass.cpp
+++ b/libcxx/test/libcxx/algorithms/debug_less.pass.cpp
@@ -17,8 +17,9 @@
// ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DEBUG=1
#include <algorithm>
-#include <iterator>
#include <cassert>
+#include <functional>
+#include <iterator>
#include "test_macros.h"
#include "check_assertion.h"
diff --git a/libcxx/test/libcxx/algorithms/sort_stability.pass.cpp b/libcxx/test/libcxx/algorithms/sort_stability.pass.cpp
index 54563a9..8b3ec2b 100644
--- a/libcxx/test/libcxx/algorithms/sort_stability.pass.cpp
+++ b/libcxx/test/libcxx/algorithms/sort_stability.pass.cpp
@@ -16,6 +16,7 @@
#include <algorithm>
#include <array>
#include <cassert>
+#include <functional>
#include <iterator>
#include <vector>
diff --git a/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp b/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp
index 45ec2f4..6eb5c24 100644
--- a/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.nonmodifying/alg.foreach/for_each_n.pass.cpp
@@ -16,6 +16,7 @@
#include <algorithm>
#include <cassert>
+#include <functional>
#include "test_macros.h"
#include "test_iterators.h"
diff --git a/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
index f5a00f8..9b9bac2 100644
--- a/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
+++ b/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp
@@ -13,6 +13,7 @@
#include <chrono>
#include <concepts>
+#include <functional>
#include <memory>
#include <random>
#include <type_traits>
diff --git a/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp
index 4d54605..bfd2075 100644
--- a/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp
+++ b/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp
@@ -13,6 +13,7 @@
#include <chrono>
#include <concepts>
+#include <functional>
#include <memory>
#include <random>
#include <type_traits>
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
index 589ae66..7142c8af 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
@@ -15,6 +15,7 @@
#include <iterator>
#include <cassert>
#include <cstddef>
+#include <functional>
#include "test_macros.h"
#include "min_allocator.h"
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
index ce0e1ef..bfadd6f 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
@@ -11,9 +11,10 @@
// template <class BinaryPredicate> void unique(BinaryPredicate binary_pred); // C++17 and before
// template <class BinaryPredicate> size_type unique(BinaryPredicate binary_pred); // C++20 and after
+#include <cassert>
#include <forward_list>
+#include <functional>
#include <iterator>
-#include <cassert>
#include "test_macros.h"
#include "min_allocator.h"
diff --git a/libcxx/test/std/containers/sequences/list/list.ops/unique_pred.pass.cpp b/libcxx/test/std/containers/sequences/list/list.ops/unique_pred.pass.cpp
index 75f8c7b..8139ddd 100644
--- a/libcxx/test/std/containers/sequences/list/list.ops/unique_pred.pass.cpp
+++ b/libcxx/test/std/containers/sequences/list/list.ops/unique_pred.pass.cpp
@@ -13,6 +13,7 @@
#include <list>
#include <cassert>
+#include <functional>
#include "test_macros.h"
#include "min_allocator.h"
diff --git a/libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.hash/hash.pass.cpp b/libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.hash/hash.pass.cpp
index 06ada6a..0fd56b3 100644
--- a/libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.hash/hash.pass.cpp
+++ b/libcxx/test/std/experimental/language.support/support.coroutines/coroutine.handle/coroutine.handle.hash/hash.pass.cpp
@@ -23,6 +23,7 @@
#include <utility>
#include <cstdint>
#include <cassert>
+#include <functional>
#include "test_macros.h"
diff --git a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp
index f262b4d..5676564 100644
--- a/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp
+++ b/libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/types.pass.cpp
@@ -24,6 +24,7 @@
// using reference = iter_rvalue_reference_t<Iterator>; // Until C++20, value_type&&
// };
+#include <functional>
#include <iterator>
#include <type_traits>
diff --git a/libcxx/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp b/libcxx/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp
index a51519e..347d375 100644
--- a/libcxx/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp
+++ b/libcxx/test/std/numerics/numeric.ops/reduce/reduce_init_op.pass.cpp
@@ -16,6 +16,7 @@
#include <numeric>
#include <cassert>
+#include <functional>
#include "test_macros.h"
#include "test_iterators.h"
diff --git a/libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp
index 7f1ce0b..c85f52e 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp
+++ b/libcxx/test/std/ranges/range.adaptors/range.join.view/sentinel/eq.pass.cpp
@@ -15,6 +15,7 @@
#include <cassert>
#include <concepts>
+#include <functional>
#include <ranges>
#include "../types.h"
diff --git a/libcxx/test/std/ranges/range.adaptors/range.zip/types.h b/libcxx/test/std/ranges/range.adaptors/range.zip/types.h
index 662b875..47c88e9 100644
--- a/libcxx/test/std/ranges/range.adaptors/range.zip/types.h
+++ b/libcxx/test/std/ranges/range.adaptors/range.zip/types.h
@@ -9,6 +9,7 @@
#ifndef TEST_STD_RANGES_RANGE_ADAPTORS_RANGE_ZIP_TYPES_H
#define TEST_STD_RANGES_RANGE_ADAPTORS_RANGE_ZIP_TYPES_H
+#include <functional>
#include <ranges>
#include "test_macros.h"
diff --git a/libcxx/test/support/deduction_guides_sfinae_checks.h b/libcxx/test/support/deduction_guides_sfinae_checks.h
index f1f31c8..a4910a1 100644
--- a/libcxx/test/support/deduction_guides_sfinae_checks.h
+++ b/libcxx/test/support/deduction_guides_sfinae_checks.h
@@ -9,6 +9,7 @@
#ifndef TEST_SUPPORT_DEDUCTION_GUIDES_SFINAE_CHECKS_H
#define TEST_SUPPORT_DEDUCTION_GUIDES_SFINAE_CHECKS_H
+#include <functional>
#include <initializer_list>
#include <memory>
#include <type_traits>