Skip to content

Commit 8fed520

Browse files
philnik777yuxuanchen1997
authored andcommitted
[libc++] Include the rest of the detail headers by version in the umbrella headers (#96032)
Summary: This is a follow-up to #83740. Test Plan: Reviewers: Subscribers: Tasks: Tags: Differential Revision: https://phabricator.intern.facebook.com/D60250970
1 parent 1dbee77 commit 8fed520

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+417
-236
lines changed

libcxx/include/__type_traits/make_signed.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#define _LIBCPP___TYPE_TRAITS_MAKE_SIGNED_H
1111

1212
#include <__config>
13+
#include <__type_traits/copy_cv.h>
1314
#include <__type_traits/is_enum.h>
1415
#include <__type_traits/is_integral.h>
1516
#include <__type_traits/nat.h>

libcxx/include/atomic

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -599,7 +599,6 @@ template <class T>
599599
#include <__atomic/atomic_flag.h>
600600
#include <__atomic/atomic_init.h>
601601
#include <__atomic/atomic_lock_free.h>
602-
#include <__atomic/atomic_ref.h>
603602
#include <__atomic/atomic_sync.h>
604603
#include <__atomic/check_memory_order.h>
605604
#include <__atomic/contention_t.h>
@@ -610,6 +609,10 @@ template <class T>
610609
#include <__atomic/memory_order.h>
611610
#include <version>
612611

612+
#if _LIBCPP_STD_VER >= 20
613+
# include <__atomic/atomic_ref.h>
614+
#endif
615+
613616
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
614617
# pragma GCC system_header
615618
#endif

libcxx/include/expected

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,24 @@ namespace std {
3939
*/
4040

4141
#include <__config>
42-
#include <__expected/bad_expected_access.h>
43-
#include <__expected/expected.h>
44-
#include <__expected/unexpect.h>
45-
#include <__expected/unexpected.h>
42+
43+
#if _LIBCPP_STD_VER >= 23
44+
# include <__expected/bad_expected_access.h>
45+
# include <__expected/expected.h>
46+
# include <__expected/unexpect.h>
47+
# include <__expected/unexpected.h>
48+
#endif
49+
4650
#include <version>
4751

4852
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
4953
# pragma GCC system_header
5054
#endif
5155

56+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
57+
# include <cstddef>
58+
# include <initializer_list>
59+
# include <new>
60+
#endif
61+
5262
#endif // _LIBCPP_EXPECTED

libcxx/include/filesystem

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -534,22 +534,26 @@ inline constexpr bool std::ranges::enable_view<std::filesystem::recursive_direct
534534
*/
535535

536536
#include <__config>
537-
#include <__filesystem/copy_options.h>
538-
#include <__filesystem/directory_entry.h>
539-
#include <__filesystem/directory_iterator.h>
540-
#include <__filesystem/directory_options.h>
541-
#include <__filesystem/file_status.h>
542-
#include <__filesystem/file_time_type.h>
543-
#include <__filesystem/file_type.h>
544-
#include <__filesystem/filesystem_error.h>
545-
#include <__filesystem/operations.h>
546-
#include <__filesystem/path.h>
547-
#include <__filesystem/path_iterator.h>
548-
#include <__filesystem/perm_options.h>
549-
#include <__filesystem/perms.h>
550-
#include <__filesystem/recursive_directory_iterator.h>
551-
#include <__filesystem/space_info.h>
552-
#include <__filesystem/u8path.h>
537+
538+
#if _LIBCPP_STD_VER >= 17
539+
# include <__filesystem/copy_options.h>
540+
# include <__filesystem/directory_entry.h>
541+
# include <__filesystem/directory_iterator.h>
542+
# include <__filesystem/directory_options.h>
543+
# include <__filesystem/file_status.h>
544+
# include <__filesystem/file_time_type.h>
545+
# include <__filesystem/file_type.h>
546+
# include <__filesystem/filesystem_error.h>
547+
# include <__filesystem/operations.h>
548+
# include <__filesystem/path.h>
549+
# include <__filesystem/path_iterator.h>
550+
# include <__filesystem/perm_options.h>
551+
# include <__filesystem/perms.h>
552+
# include <__filesystem/recursive_directory_iterator.h>
553+
# include <__filesystem/space_info.h>
554+
# include <__filesystem/u8path.h>
555+
#endif
556+
553557
#include <version>
554558

555559
// standard-mandated includes

libcxx/include/format

Lines changed: 53 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -189,40 +189,65 @@ namespace std {
189189
*/
190190

191191
#include <__config>
192-
#include <__format/buffer.h>
193-
#include <__format/concepts.h>
194-
#include <__format/container_adaptor.h>
195-
#include <__format/enable_insertable.h>
196-
#include <__format/escaped_output_table.h>
197-
#include <__format/extended_grapheme_cluster_table.h>
198-
#include <__format/format_arg.h>
199-
#include <__format/format_arg_store.h>
200-
#include <__format/format_args.h>
201-
#include <__format/format_context.h>
202-
#include <__format/format_error.h>
203-
#include <__format/format_functions.h>
204-
#include <__format/format_parse_context.h>
205-
#include <__format/format_string.h>
206-
#include <__format/format_to_n_result.h>
207-
#include <__format/formatter.h>
208-
#include <__format/formatter_bool.h>
209-
#include <__format/formatter_char.h>
210-
#include <__format/formatter_floating_point.h>
211-
#include <__format/formatter_integer.h>
212-
#include <__format/formatter_pointer.h>
213-
#include <__format/formatter_string.h>
214-
#include <__format/formatter_tuple.h>
215-
#include <__format/parser_std_format_spec.h>
216-
#include <__format/range_default_formatter.h>
217-
#include <__format/range_formatter.h>
218-
#include <__format/unicode.h>
219-
#include <__fwd/format.h>
192+
193+
#if _LIBCPP_STD_VER >= 20
194+
# include <__format/buffer.h>
195+
# include <__format/concepts.h>
196+
# include <__format/container_adaptor.h>
197+
# include <__format/enable_insertable.h>
198+
# include <__format/escaped_output_table.h>
199+
# include <__format/extended_grapheme_cluster_table.h>
200+
# include <__format/format_arg.h>
201+
# include <__format/format_arg_store.h>
202+
# include <__format/format_args.h>
203+
# include <__format/format_context.h>
204+
# include <__format/format_error.h>
205+
# include <__format/format_functions.h>
206+
# include <__format/format_parse_context.h>
207+
# include <__format/format_string.h>
208+
# include <__format/format_to_n_result.h>
209+
# include <__format/formatter.h>
210+
# include <__format/formatter_bool.h>
211+
# include <__format/formatter_char.h>
212+
# include <__format/formatter_floating_point.h>
213+
# include <__format/formatter_integer.h>
214+
# include <__format/formatter_pointer.h>
215+
# include <__format/formatter_string.h>
216+
# include <__format/formatter_tuple.h>
217+
# include <__format/parser_std_format_spec.h>
218+
# include <__format/range_default_formatter.h>
219+
# include <__format/range_formatter.h>
220+
# include <__format/unicode.h>
221+
# include <__fwd/format.h>
222+
#endif
223+
220224
#include <version>
221225

222226
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
223227
# pragma GCC system_header
224228
#endif
225229

230+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
231+
# include <array>
232+
# include <cctype>
233+
# include <cerrno>
234+
# include <clocale>
235+
# include <cmath>
236+
# include <cstddef>
237+
# include <cstdint>
238+
# include <cstdlib>
239+
# include <cstring>
240+
# include <cwchar>
241+
# include <initializer_list>
242+
# include <limits>
243+
# include <new>
244+
# include <optional>
245+
# include <stdexcept>
246+
# include <string>
247+
# include <string_view>
248+
# include <tuple>
249+
#endif
250+
226251
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
227252
# include <locale>
228253
# include <queue>

libcxx/include/forward_list

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,7 @@ template <class T, class Allocator, class Predicate>
224224
#include <__type_traits/is_nothrow_constructible.h>
225225
#include <__type_traits/is_pointer.h>
226226
#include <__type_traits/is_same.h>
227+
#include <__type_traits/is_swappable.h>
227228
#include <__type_traits/type_identity.h>
228229
#include <__utility/forward.h>
229230
#include <__utility/move.h>

libcxx/include/functional

Lines changed: 33 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -527,41 +527,60 @@ POLICY: For non-variadic implementations, the number of arguments is limited
527527
528528
*/
529529

530-
#include <__algorithm/search.h>
531-
#include <__compare/compare_three_way.h>
532530
#include <__config>
531+
533532
#include <__functional/binary_function.h>
534533
#include <__functional/binary_negate.h>
535534
#include <__functional/bind.h>
536-
#include <__functional/bind_back.h>
537-
#include <__functional/bind_front.h>
538535
#include <__functional/binder1st.h>
539536
#include <__functional/binder2nd.h>
540-
#include <__functional/boyer_moore_searcher.h>
541-
#include <__functional/compose.h>
542-
#include <__functional/default_searcher.h>
543-
#include <__functional/function.h>
544537
#include <__functional/hash.h>
545-
#include <__functional/identity.h>
546-
#include <__functional/invoke.h>
547538
#include <__functional/mem_fn.h> // TODO: deprecate
548539
#include <__functional/mem_fun_ref.h>
549-
#include <__functional/not_fn.h>
550540
#include <__functional/operations.h>
551541
#include <__functional/pointer_to_binary_function.h>
552542
#include <__functional/pointer_to_unary_function.h>
553-
#include <__functional/ranges_operations.h>
554543
#include <__functional/reference_wrapper.h>
555544
#include <__functional/unary_function.h>
556545
#include <__functional/unary_negate.h>
557-
#include <__type_traits/unwrap_ref.h>
558-
#include <__utility/forward.h>
546+
547+
#ifndef _LIBCPP_CXX03_LANG
548+
# include <__functional/function.h>
549+
#endif
550+
551+
#if _LIBCPP_STD_VER >= 17
552+
# include <__functional/boyer_moore_searcher.h>
553+
# include <__functional/default_searcher.h>
554+
# include <__functional/invoke.h>
555+
# include <__functional/not_fn.h>
556+
#endif
557+
558+
#if _LIBCPP_STD_VER >= 20
559+
# include <__functional/bind_back.h>
560+
# include <__functional/bind_front.h>
561+
# include <__functional/identity.h>
562+
# include <__functional/ranges_operations.h>
563+
# include <__type_traits/unwrap_ref.h>
564+
#endif
565+
559566
#include <version>
560567

561568
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
562569
# pragma GCC system_header
563570
#endif
564571

572+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && defined(_LIBCPP_CXX03_LANG)
573+
# include <limits>
574+
# include <new>
575+
#endif
576+
577+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 14
578+
# include <array>
579+
# include <initializer_list>
580+
# include <unordered_map>
581+
# include <vector>
582+
#endif
583+
565584
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
566585
# include <atomic>
567586
# include <concepts>

libcxx/include/iterator

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -683,43 +683,49 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
683683
#include <__iterator/access.h>
684684
#include <__iterator/advance.h>
685685
#include <__iterator/back_insert_iterator.h>
686-
#include <__iterator/bounded_iter.h>
687-
#include <__iterator/common_iterator.h>
688-
#include <__iterator/concepts.h>
689-
#include <__iterator/counted_iterator.h>
690-
#include <__iterator/data.h>
691-
#include <__iterator/default_sentinel.h>
692686
#include <__iterator/distance.h>
693-
#include <__iterator/empty.h>
694-
#include <__iterator/erase_if_container.h>
695687
#include <__iterator/front_insert_iterator.h>
696-
#include <__iterator/incrementable_traits.h>
697-
#include <__iterator/indirectly_comparable.h>
698688
#include <__iterator/insert_iterator.h>
699689
#include <__iterator/istream_iterator.h>
700690
#include <__iterator/istreambuf_iterator.h>
701-
#include <__iterator/iter_move.h>
702-
#include <__iterator/iter_swap.h>
703691
#include <__iterator/iterator.h>
704692
#include <__iterator/iterator_traits.h>
705-
#include <__iterator/mergeable.h>
706693
#include <__iterator/move_iterator.h>
707-
#include <__iterator/move_sentinel.h>
708694
#include <__iterator/next.h>
709695
#include <__iterator/ostream_iterator.h>
710696
#include <__iterator/ostreambuf_iterator.h>
711-
#include <__iterator/permutable.h>
712697
#include <__iterator/prev.h>
713-
#include <__iterator/projected.h>
714-
#include <__iterator/readable_traits.h>
715-
#include <__iterator/reverse_access.h>
716698
#include <__iterator/reverse_iterator.h>
717-
#include <__iterator/size.h>
718-
#include <__iterator/sortable.h>
719-
#include <__iterator/unreachable_sentinel.h>
720699
#include <__iterator/wrap_iter.h>
721-
#include <__memory/addressof.h>
722-
#include <__memory/pointer_traits.h>
700+
701+
#if _LIBCPP_STD_VER >= 14
702+
# include <__iterator/reverse_access.h>
703+
#endif
704+
705+
#if _LIBCPP_STD_VER >= 17
706+
# include <__iterator/data.h>
707+
# include <__iterator/empty.h>
708+
# include <__iterator/size.h>
709+
#endif
710+
711+
#if _LIBCPP_STD_VER >= 20
712+
# include <__iterator/common_iterator.h>
713+
# include <__iterator/concepts.h>
714+
# include <__iterator/counted_iterator.h>
715+
# include <__iterator/default_sentinel.h>
716+
# include <__iterator/incrementable_traits.h>
717+
# include <__iterator/indirectly_comparable.h>
718+
# include <__iterator/iter_move.h>
719+
# include <__iterator/iter_swap.h>
720+
# include <__iterator/mergeable.h>
721+
# include <__iterator/move_sentinel.h>
722+
# include <__iterator/permutable.h>
723+
# include <__iterator/projected.h>
724+
# include <__iterator/readable_traits.h>
725+
# include <__iterator/sortable.h>
726+
# include <__iterator/unreachable_sentinel.h>
727+
#endif
728+
723729
#include <version>
724730

725731
// standard-mandated includes
@@ -732,6 +738,10 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
732738
# pragma GCC system_header
733739
#endif
734740

741+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 17
742+
# include <variant>
743+
#endif
744+
735745
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
736746
# include <cstdlib>
737747
# include <exception>

libcxx/include/mdspan

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -409,17 +409,30 @@ namespace std {
409409
#define _LIBCPP_MDSPAN
410410

411411
#include <__config>
412-
#include <__fwd/mdspan.h>
413-
#include <__mdspan/default_accessor.h>
414-
#include <__mdspan/extents.h>
415-
#include <__mdspan/layout_left.h>
416-
#include <__mdspan/layout_right.h>
417-
#include <__mdspan/layout_stride.h>
418-
#include <__mdspan/mdspan.h>
412+
413+
#if _LIBCPP_STD_VER >= 23
414+
# include <__fwd/mdspan.h>
415+
# include <__mdspan/default_accessor.h>
416+
# include <__mdspan/extents.h>
417+
# include <__mdspan/layout_left.h>
418+
# include <__mdspan/layout_right.h>
419+
# include <__mdspan/layout_stride.h>
420+
# include <__mdspan/mdspan.h>
421+
#endif
422+
419423
#include <version>
420424

421425
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
422426
# pragma GCC system_header
423427
#endif
424428

429+
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
430+
# include <array>
431+
# include <cinttypes>
432+
# include <concepts>
433+
# include <cstddef>
434+
# include <limits>
435+
# include <span>
436+
#endif
437+
425438
#endif // _LIBCPP_MDSPAN

0 commit comments

Comments
 (0)