Skip to content

Commit faef447

Browse files
committed
[libc++] Granularize <functional> includes
Reviewed By: Mordante, #libc Spies: libcxx-commits, miyuki Differential Revision: https://reviews.llvm.org/D123912
1 parent 02eac66 commit faef447

27 files changed

+50
-16
lines changed

libcxx/include/__ranges/join_view.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,15 @@
99
#ifndef _LIBCPP___RANGES_JOIN_VIEW_H
1010
#define _LIBCPP___RANGES_JOIN_VIEW_H
1111

12+
#include <__concepts/constructible.h>
13+
#include <__concepts/convertible_to.h>
14+
#include <__concepts/copyable.h>
15+
#include <__concepts/derived_from.h>
16+
#include <__concepts/equality_comparable.h>
1217
#include <__config>
1318
#include <__iterator/concepts.h>
19+
#include <__iterator/iter_move.h>
20+
#include <__iterator/iter_swap.h>
1421
#include <__iterator/iterator_traits.h>
1522
#include <__ranges/access.h>
1623
#include <__ranges/all.h>

libcxx/include/algorithm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -881,7 +881,7 @@ template <class BidirectionalIterator, class Compare>
881881
#include <__debug>
882882
#include <cstddef>
883883
#include <cstring>
884-
#include <functional>
884+
#include <functional> // TODO: Remove this include
885885
#include <initializer_list>
886886
#include <iterator>
887887
#include <memory>

libcxx/include/experimental/coroutine

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,10 @@ template <class P> struct hash<coroutine_handle<P>>;
4646
*/
4747

4848
#include <__assert> // all public C++ headers provide the assertion handler
49+
#include <__functional/hash.h>
4950
#include <cstddef>
5051
#include <experimental/__config>
51-
#include <functional>
52+
#include <functional> // TODO: Remove this include
5253
#include <memory> // for hash<T*>
5354
#include <new>
5455
#include <type_traits>

libcxx/include/experimental/propagate_const

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,10 +108,12 @@
108108
*/
109109

110110
#include <__assert> // all public C++ headers provide the assertion handler
111+
#include <__functional/operations.h>
112+
#include <__utility/forward.h>
111113
#include <__utility/move.h>
112114
#include <__utility/swap.h>
113115
#include <experimental/__config>
114-
#include <functional>
116+
#include <functional> // TODO: Remove this include
115117
#include <type_traits>
116118

117119
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

libcxx/include/experimental/simd

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -650,10 +650,12 @@ public:
650650
*/
651651

652652
#include <__assert> // all public C++ headers provide the assertion handler
653+
#include <__functional/operations.h>
653654
#include <array>
654655
#include <cstddef>
655656
#include <experimental/__config>
656-
#include <functional>
657+
#include <functional> // TODO: Remove this include
658+
#include <tuple>
657659

658660
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
659661
# pragma GCC system_header

libcxx/include/ext/hash_map

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
206206
#include <__hash_table>
207207
#include <algorithm>
208208
#include <ext/__hash>
209-
#include <functional>
209+
#include <functional> // TODO: Remove this include
210210
#include <stdexcept>
211211
#include <type_traits>
212212

libcxx/include/ext/hash_set

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ template <class Value, class Hash, class Pred, class Alloc>
197197
#include <__hash_table>
198198
#include <algorithm>
199199
#include <ext/__hash>
200-
#include <functional>
200+
#include <functional> // TODO: Remove this include
201201

202202
#if defined(__DEPRECATED) && __DEPRECATED
203203
#if defined(_LIBCPP_WARNING)

libcxx/include/map

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
539539
#include <__utility/forward.h>
540540
#include <__utility/swap.h>
541541
#include <compare>
542-
#include <functional>
542+
#include <functional> // TODO: Remove this include
543543
#include <initializer_list>
544544
#include <iterator> // __libcpp_erase_if_container
545545
#include <memory>

libcxx/include/mutex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,7 @@ template<class Callable, class ...Args>
192192
#include <__threading_support>
193193
#include <__utility/forward.h>
194194
#include <cstdint>
195-
#include <functional>
195+
#include <functional> // TODO: Remove this include
196196
#include <memory>
197197
#ifndef _LIBCPP_CXX03_LANG
198198
# include <tuple>

libcxx/include/numeric

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ template<class T>
147147
#include <__assert> // all public C++ headers provide the assertion handler
148148
#include <__config>
149149
#include <cmath> // for isnormal
150-
#include <functional>
150+
#include <functional> // TODO: Remove this include
151151
#include <iterator>
152152
#include <version>
153153

libcxx/include/optional

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,10 +162,17 @@ template<class T>
162162
#include <__availability>
163163
#include <__concepts/invocable.h>
164164
#include <__config>
165+
#include <__functional/hash.h>
166+
#include <__functional/invoke.h>
167+
#include <__functional/unary_function.h>
168+
#include <__memory/construct_at.h>
169+
#include <__tuple>
170+
#include <__utility/forward.h>
165171
#include <__utility/in_place.h>
172+
#include <__utility/move.h>
166173
#include <__utility/swap.h>
167174
#include <compare>
168-
#include <functional>
175+
#include <functional> // TODO: Remove this include
169176
#include <initializer_list>
170177
#include <new>
171178
#include <stdexcept>

libcxx/include/queue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ template <class T, class Container, class Compare>
227227
#include <__utility/forward.h>
228228
#include <compare>
229229
#include <deque>
230-
#include <functional>
230+
#include <functional> // TODO: Remove this include
231231
#include <type_traits>
232232
#include <vector>
233233
#include <version>

libcxx/include/regex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -763,6 +763,7 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
763763
*/
764764

765765
#include <__algorithm/find.h>
766+
#include <__algorithm/search.h>
766767
#include <__assert> // all public C++ headers provide the assertion handler
767768
#include <__config>
768769
#include <__iterator/wrap_iter.h>

libcxx/include/set

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -481,7 +481,7 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred); // C++20
481481
#include <__tree>
482482
#include <__utility/forward.h>
483483
#include <compare>
484-
#include <functional>
484+
#include <functional> // TODO: Remove this include
485485
#include <initializer_list>
486486
#include <iterator> // __libcpp_erase_if_container
487487
#include <version>

libcxx/include/thread

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
9090
#include <__threading_support>
9191
#include <__utility/forward.h>
9292
#include <cstddef>
93-
#include <functional>
93+
#include <functional> // TODO: Remove this include
9494
#include <iosfwd>
9595
#include <memory>
9696
#include <system_error>

libcxx/include/unordered_map

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -525,7 +525,7 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
525525
#include <__node_handle>
526526
#include <__utility/forward.h>
527527
#include <compare>
528-
#include <functional>
528+
#include <functional> // TODO: Remove this include
529529
#include <iterator> // __libcpp_erase_if_container
530530
#include <stdexcept>
531531
#include <tuple>

libcxx/include/unordered_set

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ template <class Value, class Hash, class Pred, class Alloc>
469469
#include <__node_handle>
470470
#include <__utility/forward.h>
471471
#include <compare>
472-
#include <functional>
472+
#include <functional> // TODO: Remove this include
473473
#include <iterator> // __libcpp_erase_if_container
474474
#include <version>
475475

libcxx/include/valarray

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -350,9 +350,14 @@ template <class T> unspecified2 end(const valarray<T>& v);
350350
#include <__algorithm/unwrap_iter.h>
351351
#include <__assert> // all public C++ headers provide the assertion handler
352352
#include <__config>
353+
#include <__functional/operations.h>
354+
#include <__memory/allocator.h>
355+
#include <__memory/uninitialized_algorithms.h>
356+
#include <__utility/move.h>
357+
#include <__utility/swap.h>
353358
#include <cmath>
354359
#include <cstddef>
355-
#include <functional>
360+
#include <functional> // TODO: Remove this include
356361
#include <initializer_list>
357362
#include <new>
358363
#include <version>

libcxx/test/std/algorithms/alg.modifying.operations/alg.transform/ranges.transform.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
#include <algorithm>
4141
#include <array>
4242
#include <cassert>
43+
#include <functional>
4344
#include <ranges>
4445

4546
#include "test_iterators.h"

libcxx/test/std/algorithms/alg.nonmodifying/mismatch/ranges_mismatch.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include <algorithm>
2525
#include <array>
2626
#include <cassert>
27+
#include <functional>
2728
#include <ranges>
2829

2930
#include "test_iterators.h"

libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.max.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <algorithm>
2929
#include <array>
3030
#include <cassert>
31+
#include <functional>
3132
#include <ranges>
3233

3334
#include "almost_satisfies_types.h"

libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.max_element.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <algorithm>
2323
#include <array>
2424
#include <cassert>
25+
#include <functional>
2526
#include <random>
2627
#include <ranges>
2728

libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.min.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <algorithm>
2727
#include <array>
2828
#include <cassert>
29+
#include <functional>
2930
#include <ranges>
3031

3132
#include "almost_satisfies_types.h"

libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.min_element.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <algorithm>
2323
#include <array>
2424
#include <cassert>
25+
#include <functional>
2526
#include <random>
2627
#include <ranges>
2728

libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.minmax.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <algorithm>
2929
#include <array>
3030
#include <cassert>
31+
#include <functional>
3132
#include <ranges>
3233

3334
#include "test_iterators.h"

libcxx/test/std/algorithms/alg.sorting/alg.min.max/ranges.minmax_element.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <algorithm>
2424
#include <array>
2525
#include <cassert>
26+
#include <functional>
2627
#include <ranges>
2728

2829
#include "almost_satisfies_types.h"

libcxx/test/std/ranges/range.adaptors/range.lazy.split/constraints.compile.pass.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
// (forward_range<V> || tiny-range<Pattern>)
1616
// class lazy_split_view;
1717

18+
#include <functional>
1819
#include <ranges>
1920

2021
#include "test_iterators.h"

0 commit comments

Comments
 (0)