diff options
127 files changed, 377 insertions, 138 deletions
diff --git a/libcxx/include/__bit_reference b/libcxx/include/__bit_reference index c66dc4a..95188ff 100644 --- a/libcxx/include/__bit_reference +++ b/libcxx/include/__bit_reference @@ -19,7 +19,9 @@ #include <__iterator/iterator_traits.h> #include <__memory/construct_at.h> #include <__memory/pointer_traits.h> -#include <type_traits> +#include <__type_traits/conditional.h> +#include <__utility/swap.h> +#include <cstring> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__chrono/hh_mm_ss.h b/libcxx/include/__chrono/hh_mm_ss.h index dd1c94e..5bd452e5 100644 --- a/libcxx/include/__chrono/hh_mm_ss.h +++ b/libcxx/include/__chrono/hh_mm_ss.h @@ -13,8 +13,8 @@ #include <__chrono/duration.h> #include <__chrono/time_point.h> #include <__config> +#include <__type_traits/common_type.h> #include <ratio> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__filesystem/filesystem_error.h b/libcxx/include/__filesystem/filesystem_error.h index 70e3954..49a076a 100644 --- a/libcxx/include/__filesystem/filesystem_error.h +++ b/libcxx/include/__filesystem/filesystem_error.h @@ -18,7 +18,6 @@ #include <iosfwd> #include <new> #include <system_error> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__filesystem/path.h b/libcxx/include/__filesystem/path.h index aad0beb..530821a 100644 --- a/libcxx/include/__filesystem/path.h +++ b/libcxx/include/__filesystem/path.h @@ -18,10 +18,13 @@ #include <__fwd/hash.h> #include <__iterator/back_insert_iterator.h> #include <__iterator/iterator_traits.h> +#include <__type_traits/decay.h> +#include <__type_traits/is_pointer.h> +#include <__type_traits/remove_const.h> +#include <__type_traits/remove_pointer.h> #include <cstddef> #include <string> #include <string_view> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_LOCALIZATION) # include <iomanip> // for quoted diff --git a/libcxx/include/__filesystem/u8path.h b/libcxx/include/__filesystem/u8path.h index d35faa1..ebc1159 100644 --- a/libcxx/include/__filesystem/u8path.h +++ b/libcxx/include/__filesystem/u8path.h @@ -15,7 +15,6 @@ #include <__config> #include <__filesystem/path.h> #include <string> -#include <type_traits> // Only required on Windows for __widen_from_utf8, and included conservatively // because it requires support for localization. diff --git a/libcxx/include/__format/buffer.h b/libcxx/include/__format/buffer.h index c985dbc..c8e1192 100644 --- a/libcxx/include/__format/buffer.h +++ b/libcxx/include/__format/buffer.h @@ -27,6 +27,7 @@ #include <__iterator/incrementable_traits.h> #include <__iterator/iterator_traits.h> #include <__iterator/wrap_iter.h> +#include <__type_traits/add_pointer.h> #include <__utility/move.h> #include <cstddef> #include <string_view> diff --git a/libcxx/include/__format/format_arg.h b/libcxx/include/__format/format_arg.h index 43fca44..a25976a 100644 --- a/libcxx/include/__format/format_arg.h +++ b/libcxx/include/__format/format_arg.h @@ -18,6 +18,7 @@ #include <__format/format_parse_context.h> #include <__functional/invoke.h> #include <__memory/addressof.h> +#include <__utility/declval.h> #include <__utility/forward.h> #include <__utility/unreachable.h> #include <__variant/monostate.h> diff --git a/libcxx/include/__format/format_arg_store.h b/libcxx/include/__format/format_arg_store.h index 44e0e93..15bfccc 100644 --- a/libcxx/include/__format/format_arg_store.h +++ b/libcxx/include/__format/format_arg_store.h @@ -19,6 +19,9 @@ #include <__config> #include <__format/concepts.h> #include <__format/format_arg.h> +#include <__type_traits/conditional.h> +#include <__type_traits/extent.h> +#include <__type_traits/is_same.h> #include <__utility/forward.h> #include <string> #include <string_view> diff --git a/libcxx/include/__format/format_parse_context.h b/libcxx/include/__format/format_parse_context.h index 2e2b477..fc1d0a3 100644 --- a/libcxx/include/__format/format_parse_context.h +++ b/libcxx/include/__format/format_parse_context.h @@ -12,6 +12,7 @@ #include <__config> #include <__format/format_error.h> +#include <__type_traits/is_constant_evaluated.h> #include <string_view> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/__format/formatter_floating_point.h b/libcxx/include/__format/formatter_floating_point.h index 0e19731..31cd012 100644 --- a/libcxx/include/__format/formatter_floating_point.h +++ b/libcxx/include/__format/formatter_floating_point.h @@ -26,6 +26,7 @@ #include <__format/formatter_output.h> #include <__format/parser_std_format_spec.h> #include <__memory/allocator.h> +#include <__type_traits/conditional.h> #include <__utility/move.h> #include <__utility/unreachable.h> #include <charconv> diff --git a/libcxx/include/__format/parser_std_format_spec.h b/libcxx/include/__format/parser_std_format_spec.h index b88f399..c500525 100644 --- a/libcxx/include/__format/parser_std_format_spec.h +++ b/libcxx/include/__format/parser_std_format_spec.h @@ -30,6 +30,8 @@ #include <__format/unicode.h> #include <__iterator/concepts.h> #include <__iterator/readable_traits.h> // iter_value_t +#include <__type_traits/common_type.h> +#include <__type_traits/is_trivially_copyable.h> #include <__variant/monostate.h> #include <cstdint> #include <string_view> diff --git a/libcxx/include/__functional/bind.h b/libcxx/include/__functional/bind.h index 30af938..0eb5ce7 100644 --- a/libcxx/include/__functional/bind.h +++ b/libcxx/include/__functional/bind.h @@ -15,7 +15,6 @@ #include <__functional/weak_result_type.h> #include <cstddef> #include <tuple> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__functional/bind_back.h b/libcxx/include/__functional/bind_back.h index 1476325..544315d 100644 --- a/libcxx/include/__functional/bind_back.h +++ b/libcxx/include/__functional/bind_back.h @@ -16,7 +16,6 @@ #include <__utility/forward.h> #include <__utility/integer_sequence.h> #include <tuple> -#include <type_traits> #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 4e0e71d..109a83c 100644 --- a/libcxx/include/__functional/bind_front.h +++ b/libcxx/include/__functional/bind_front.h @@ -14,7 +14,6 @@ #include <__functional/invoke.h> #include <__functional/perfect_forward.h> #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/compose.h b/libcxx/include/__functional/compose.h index 2a0d61d..168131e 100644 --- a/libcxx/include/__functional/compose.h +++ b/libcxx/include/__functional/compose.h @@ -14,7 +14,6 @@ #include <__functional/invoke.h> #include <__functional/perfect_forward.h> #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/function.h b/libcxx/include/__functional/function.h index d7cc07e..1d2d2a1 100644 --- a/libcxx/include/__functional/function.h +++ b/libcxx/include/__functional/function.h @@ -23,6 +23,9 @@ #include <__memory/builtin_new_allocator.h> #include <__memory/compressed_pair.h> #include <__memory/unique_ptr.h> +#include <__type_traits/aligned_storage.h> +#include <__type_traits/is_trivially_copy_constructible.h> +#include <__type_traits/is_trivially_destructible.h> #include <__type_traits/strip_signature.h> #include <__utility/forward.h> #include <__utility/move.h> @@ -31,7 +34,6 @@ #include <exception> #include <new> #include <tuple> -#include <type_traits> #include <typeinfo> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/__functional/is_transparent.h b/libcxx/include/__functional/is_transparent.h index 4ff163f..c539a07 100644 --- a/libcxx/include/__functional/is_transparent.h +++ b/libcxx/include/__functional/is_transparent.h @@ -11,7 +11,8 @@ #define _LIBCPP___FUNCTIONAL_IS_TRANSPARENT #include <__config> -#include <type_traits> +#include <__type_traits/integral_constant.h> +#include <__type_traits/void_t.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 8b51627..fe221dd 100644 --- a/libcxx/include/__functional/mem_fn.h +++ b/libcxx/include/__functional/mem_fn.h @@ -15,7 +15,6 @@ #include <__functional/invoke.h> #include <__functional/weak_result_type.h> #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 3c4f588..f148a40 100644 --- a/libcxx/include/__functional/not_fn.h +++ b/libcxx/include/__functional/not_fn.h @@ -14,7 +14,6 @@ #include <__functional/invoke.h> #include <__functional/perfect_forward.h> #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/perfect_forward.h b/libcxx/include/__functional/perfect_forward.h index 4497dec..af89797a 100644 --- a/libcxx/include/__functional/perfect_forward.h +++ b/libcxx/include/__functional/perfect_forward.h @@ -15,7 +15,6 @@ #include <__utility/forward.h> #include <__utility/move.h> #include <tuple> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__hash_table b/libcxx/include/__hash_table index 19a47e0..e38a442 100644 --- a/libcxx/include/__hash_table +++ b/libcxx/include/__hash_table @@ -17,6 +17,7 @@ #include <__config> #include <__debug> #include <__functional/hash.h> +#include <__functional/invoke.h> #include <__iterator/iterator_traits.h> #include <__memory/addressof.h> #include <__memory/allocator_traits.h> @@ -25,6 +26,16 @@ #include <__memory/swap_allocator.h> #include <__memory/unique_ptr.h> #include <__type_traits/can_extract_key.h> +#include <__type_traits/conditional.h> +#include <__type_traits/is_const.h> +#include <__type_traits/is_copy_constructible.h> +#include <__type_traits/is_nothrow_constructible.h> +#include <__type_traits/is_nothrow_default_constructible.h> +#include <__type_traits/is_nothrow_move_constructible.h> +#include <__type_traits/is_pointer.h> +#include <__type_traits/is_reference.h> +#include <__type_traits/remove_const.h> +#include <__type_traits/remove_cvref.h> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/pair.h> @@ -32,7 +43,6 @@ #include <cmath> #include <cstring> #include <initializer_list> -#include <type_traits> #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 7061517..ec8bb9c 100644 --- a/libcxx/include/__memory/shared_ptr.h +++ b/libcxx/include/__memory/shared_ptr.h @@ -29,6 +29,20 @@ #include <__memory/pointer_traits.h> #include <__memory/uninitialized_algorithms.h> #include <__memory/unique_ptr.h> +#include <__type_traits/add_lvalue_reference.h> +#include <__type_traits/conditional.h> +#include <__type_traits/conjunction.h> +#include <__type_traits/disjunction.h> +#include <__type_traits/is_array.h> +#include <__type_traits/is_bounded_array.h> +#include <__type_traits/is_move_constructible.h> +#include <__type_traits/is_reference.h> +#include <__type_traits/is_unbounded_array.h> +#include <__type_traits/nat.h> +#include <__type_traits/negation.h> +#include <__type_traits/remove_extent.h> +#include <__type_traits/remove_reference.h> +#include <__utility/declval.h> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/swap.h> diff --git a/libcxx/include/__mutex_base b/libcxx/include/__mutex_base index 82d9fa6..80621c8 100644 --- a/libcxx/include/__mutex_base +++ b/libcxx/include/__mutex_base @@ -16,6 +16,8 @@ #include <__chrono/time_point.h> #include <__config> #include <__threading_support> +#include <__type_traits/is_floating_point.h> +#include <__type_traits/is_nothrow_default_constructible.h> #include <ratio> #include <system_error> #include <time.h> diff --git a/libcxx/include/__random/clamp_to_integral.h b/libcxx/include/__random/clamp_to_integral.h index 85f8aa5..c67d76d 100644 --- a/libcxx/include/__random/clamp_to_integral.h +++ b/libcxx/include/__random/clamp_to_integral.h @@ -12,7 +12,6 @@ #include <__config> #include <cmath> #include <limits> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__random/discard_block_engine.h b/libcxx/include/__random/discard_block_engine.h index db33623..077f158 100644 --- a/libcxx/include/__random/discard_block_engine.h +++ b/libcxx/include/__random/discard_block_engine.h @@ -11,10 +11,12 @@ #include <__config> #include <__random/is_seed_sequence.h> +#include <__type_traits/enable_if.h> +#include <__type_traits/is_convertible.h> #include <__utility/move.h> +#include <cstddef> #include <iosfwd> #include <limits> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__random/independent_bits_engine.h b/libcxx/include/__random/independent_bits_engine.h index f4a23bb..2cd4096 100644 --- a/libcxx/include/__random/independent_bits_engine.h +++ b/libcxx/include/__random/independent_bits_engine.h @@ -12,10 +12,13 @@ #include <__config> #include <__random/is_seed_sequence.h> #include <__random/log2.h> +#include <__type_traits/conditional.h> +#include <__type_traits/enable_if.h> +#include <__type_traits/is_convertible.h> #include <__utility/move.h> +#include <cstddef> #include <iosfwd> #include <limits> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__random/is_seed_sequence.h b/libcxx/include/__random/is_seed_sequence.h index 3c82b27..06621c3 100644 --- a/libcxx/include/__random/is_seed_sequence.h +++ b/libcxx/include/__random/is_seed_sequence.h @@ -10,7 +10,9 @@ #define _LIBCPP___RANDOM_IS_SEED_SEQUENCE_H #include <__config> -#include <type_traits> +#include <__type_traits/is_convertible.h> +#include <__type_traits/is_same.h> +#include <__type_traits/remove_cv.h> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__random/linear_congruential_engine.h b/libcxx/include/__random/linear_congruential_engine.h index 0d91f14..aa24a06 100644 --- a/libcxx/include/__random/linear_congruential_engine.h +++ b/libcxx/include/__random/linear_congruential_engine.h @@ -11,9 +11,11 @@ #include <__config> #include <__random/is_seed_sequence.h> +#include <__type_traits/enable_if.h> +#include <__type_traits/integral_constant.h> +#include <__type_traits/is_unsigned.h> #include <cstdint> #include <iosfwd> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__random/mersenne_twister_engine.h b/libcxx/include/__random/mersenne_twister_engine.h index eb5f56f..89df825 100644 --- a/libcxx/include/__random/mersenne_twister_engine.h +++ b/libcxx/include/__random/mersenne_twister_engine.h @@ -17,7 +17,6 @@ #include <cstdint> #include <iosfwd> #include <limits> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__random/seed_seq.h b/libcxx/include/__random/seed_seq.h index 330537f..5c40d15 100644 --- a/libcxx/include/__random/seed_seq.h +++ b/libcxx/include/__random/seed_seq.h @@ -13,6 +13,7 @@ #include <__algorithm/fill.h> #include <__algorithm/max.h> #include <__config> +#include <cstdint> #include <initializer_list> #include <vector> diff --git a/libcxx/include/__random/shuffle_order_engine.h b/libcxx/include/__random/shuffle_order_engine.h index 86a60fc..e07f230 100644 --- a/libcxx/include/__random/shuffle_order_engine.h +++ b/libcxx/include/__random/shuffle_order_engine.h @@ -12,10 +12,13 @@ #include <__algorithm/equal.h> #include <__config> #include <__random/is_seed_sequence.h> +#include <__type_traits/enable_if.h> +#include <__type_traits/integral_constant.h> +#include <__type_traits/is_convertible.h> #include <__utility/move.h> +#include <cstddef> #include <cstdint> #include <iosfwd> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__random/subtract_with_carry_engine.h b/libcxx/include/__random/subtract_with_carry_engine.h index b25ca84..9294cc2 100644 --- a/libcxx/include/__random/subtract_with_carry_engine.h +++ b/libcxx/include/__random/subtract_with_carry_engine.h @@ -18,7 +18,6 @@ #include <cstdint> #include <iosfwd> #include <limits> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__random/uniform_real_distribution.h b/libcxx/include/__random/uniform_real_distribution.h index b52b689..dd6d6b3 100644 --- a/libcxx/include/__random/uniform_real_distribution.h +++ b/libcxx/include/__random/uniform_real_distribution.h @@ -14,7 +14,6 @@ #include <__random/is_valid.h> #include <iosfwd> #include <limits> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/all.h b/libcxx/include/__ranges/all.h index 383fd14..ecf908d 100644 --- a/libcxx/include/__ranges/all.h +++ b/libcxx/include/__ranges/all.h @@ -18,10 +18,10 @@ #include <__ranges/owning_view.h> #include <__ranges/range_adaptor.h> #include <__ranges/ref_view.h> +#include <__type_traits/decay.h> #include <__utility/auto_cast.h> #include <__utility/declval.h> #include <__utility/forward.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/common_view.h b/libcxx/include/__ranges/common_view.h index 2b1e72b..8fc68ba 100644 --- a/libcxx/include/__ranges/common_view.h +++ b/libcxx/include/__ranges/common_view.h @@ -24,7 +24,6 @@ #include <__ranges/view_interface.h> #include <__utility/forward.h> #include <__utility/move.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/copyable_box.h b/libcxx/include/__ranges/copyable_box.h index c92e293..1973bbf 100644 --- a/libcxx/include/__ranges/copyable_box.h +++ b/libcxx/include/__ranges/copyable_box.h @@ -18,7 +18,6 @@ #include <__memory/construct_at.h> #include <__utility/move.h> #include <optional> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/counted.h b/libcxx/include/__ranges/counted.h index f50cd2b..882f90b 100644 --- a/libcxx/include/__ranges/counted.h +++ b/libcxx/include/__ranges/counted.h @@ -19,10 +19,11 @@ #include <__iterator/iterator_traits.h> #include <__memory/pointer_traits.h> #include <__ranges/subrange.h> +#include <__type_traits/decay.h> #include <__utility/forward.h> #include <__utility/move.h> +#include <cstddef> #include <span> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/drop_view.h b/libcxx/include/__ranges/drop_view.h index 62de445..b97505b 100644 --- a/libcxx/include/__ranges/drop_view.h +++ b/libcxx/include/__ranges/drop_view.h @@ -33,10 +33,15 @@ #include <__ranges/size.h> #include <__ranges/subrange.h> #include <__ranges/view_interface.h> +#include <__type_traits/conditional.h> +#include <__type_traits/decay.h> +#include <__type_traits/is_nothrow_constructible.h> +#include <__type_traits/make_unsigned.h> +#include <__type_traits/remove_cvref.h> #include <__utility/auto_cast.h> #include <__utility/forward.h> #include <__utility/move.h> -#include <type_traits> +#include <cstddef> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/empty_view.h b/libcxx/include/__ranges/empty_view.h index 1a48769..bb445b4 100644 --- a/libcxx/include/__ranges/empty_view.h +++ b/libcxx/include/__ranges/empty_view.h @@ -13,7 +13,8 @@ #include <__config> #include <__ranges/enable_borrowed_range.h> #include <__ranges/view_interface.h> -#include <type_traits> +#include <__type_traits/is_object.h> +#include <cstddef> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/filter_view.h b/libcxx/include/__ranges/filter_view.h index 895eb6e..bf1481b 100644 --- a/libcxx/include/__ranges/filter_view.h +++ b/libcxx/include/__ranges/filter_view.h @@ -35,7 +35,6 @@ #include <__utility/forward.h> #include <__utility/in_place.h> #include <__utility/move.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/iota_view.h b/libcxx/include/__ranges/iota_view.h index fae3b0b5..67cf0b7 100644 --- a/libcxx/include/__ranges/iota_view.h +++ b/libcxx/include/__ranges/iota_view.h @@ -30,9 +30,12 @@ #include <__ranges/copyable_box.h> #include <__ranges/enable_borrowed_range.h> #include <__ranges/view_interface.h> +#include <__type_traits/conditional.h> +#include <__type_traits/is_nothrow_copy_constructible.h> +#include <__type_traits/make_unsigned.h> +#include <__type_traits/type_identity.h> #include <__utility/forward.h> #include <__utility/move.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/join_view.h b/libcxx/include/__ranges/join_view.h index a9e5b99..cba16c8 100644 --- a/libcxx/include/__ranges/join_view.h +++ b/libcxx/include/__ranges/join_view.h @@ -32,7 +32,6 @@ #include <__type_traits/maybe_const.h> #include <__utility/forward.h> #include <optional> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/lazy_split_view.h b/libcxx/include/__ranges/lazy_split_view.h index d84e4ce..b5b0e7e 100644 --- a/libcxx/include/__ranges/lazy_split_view.h +++ b/libcxx/include/__ranges/lazy_split_view.h @@ -12,6 +12,7 @@ #include <__algorithm/ranges_find.h> #include <__algorithm/ranges_mismatch.h> +#include <__assert> #include <__concepts/constructible.h> #include <__concepts/convertible_to.h> #include <__concepts/derived_from.h> @@ -34,10 +35,13 @@ #include <__ranges/single_view.h> #include <__ranges/subrange.h> #include <__ranges/view_interface.h> +#include <__type_traits/conditional.h> +#include <__type_traits/decay.h> +#include <__type_traits/is_nothrow_constructible.h> #include <__type_traits/maybe_const.h> +#include <__type_traits/remove_reference.h> #include <__utility/forward.h> #include <__utility/move.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/non_propagating_cache.h b/libcxx/include/__ranges/non_propagating_cache.h index 438d90d..2e6e72f 100644 --- a/libcxx/include/__ranges/non_propagating_cache.h +++ b/libcxx/include/__ranges/non_propagating_cache.h @@ -16,7 +16,6 @@ #include <__memory/addressof.h> #include <__utility/forward.h> #include <optional> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/owning_view.h b/libcxx/include/__ranges/owning_view.h index ec46065d..cb1d0d5 100644 --- a/libcxx/include/__ranges/owning_view.h +++ b/libcxx/include/__ranges/owning_view.h @@ -20,8 +20,8 @@ #include <__ranges/enable_borrowed_range.h> #include <__ranges/size.h> #include <__ranges/view_interface.h> +#include <__type_traits/remove_cvref.h> #include <__utility/move.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/range_adaptor.h b/libcxx/include/__ranges/range_adaptor.h index fcb1f2f..f8fd2f6 100644 --- a/libcxx/include/__ranges/range_adaptor.h +++ b/libcxx/include/__ranges/range_adaptor.h @@ -20,7 +20,6 @@ #include <__ranges/concepts.h> #include <__utility/forward.h> #include <__utility/move.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/rbegin.h b/libcxx/include/__ranges/rbegin.h index 720ae3d..1ceb111 100644 --- a/libcxx/include/__ranges/rbegin.h +++ b/libcxx/include/__ranges/rbegin.h @@ -17,8 +17,11 @@ #include <__iterator/readable_traits.h> #include <__iterator/reverse_iterator.h> #include <__ranges/access.h> +#include <__type_traits/decay.h> +#include <__type_traits/is_reference.h> +#include <__type_traits/remove_cvref.h> +#include <__type_traits/remove_reference.h> #include <__utility/auto_cast.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/ref_view.h b/libcxx/include/__ranges/ref_view.h index a7fa4f2..be32b81 100644 --- a/libcxx/include/__ranges/ref_view.h +++ b/libcxx/include/__ranges/ref_view.h @@ -24,8 +24,9 @@ #include <__ranges/enable_borrowed_range.h> #include <__ranges/size.h> #include <__ranges/view_interface.h> +#include <__type_traits/is_object.h> +#include <__utility/declval.h> #include <__utility/forward.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/rend.h b/libcxx/include/__ranges/rend.h index 15770d1..7ee574cc 100644 --- a/libcxx/include/__ranges/rend.h +++ b/libcxx/include/__ranges/rend.h @@ -18,8 +18,11 @@ #include <__iterator/reverse_iterator.h> #include <__ranges/access.h> #include <__ranges/rbegin.h> +#include <__type_traits/decay.h> +#include <__type_traits/is_reference.h> +#include <__type_traits/remove_cvref.h> +#include <__type_traits/remove_reference.h> #include <__utility/auto_cast.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/reverse_view.h b/libcxx/include/__ranges/reverse_view.h index fc49eead..01d1b97 100644 --- a/libcxx/include/__ranges/reverse_view.h +++ b/libcxx/include/__ranges/reverse_view.h @@ -24,9 +24,10 @@ #include <__ranges/size.h> #include <__ranges/subrange.h> #include <__ranges/view_interface.h> +#include <__type_traits/conditional.h> +#include <__type_traits/remove_cvref.h> #include <__utility/forward.h> #include <__utility/move.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/single_view.h b/libcxx/include/__ranges/single_view.h index 7ea302a..ccab2c1 100644 --- a/libcxx/include/__ranges/single_view.h +++ b/libcxx/include/__ranges/single_view.h @@ -15,10 +15,12 @@ #include <__ranges/copyable_box.h> #include <__ranges/range_adaptor.h> #include <__ranges/view_interface.h> +#include <__type_traits/decay.h> +#include <__type_traits/is_object.h> #include <__utility/forward.h> #include <__utility/in_place.h> #include <__utility/move.h> -#include <type_traits> +#include <cstddef> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/take_view.h b/libcxx/include/__ranges/take_view.h index b8adedf..ec859e9 100644 --- a/libcxx/include/__ranges/take_view.h +++ b/libcxx/include/__ranges/take_view.h @@ -34,11 +34,14 @@ #include <__ranges/size.h> #include <__ranges/subrange.h> #include <__ranges/view_interface.h> +#include <__type_traits/decay.h> +#include <__type_traits/is_nothrow_constructible.h> #include <__type_traits/maybe_const.h> +#include <__type_traits/remove_cvref.h> #include <__utility/auto_cast.h> #include <__utility/forward.h> #include <__utility/move.h> -#include <type_traits> +#include <cstddef> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/transform_view.h b/libcxx/include/__ranges/transform_view.h index 9394fce..a71350f 100644 --- a/libcxx/include/__ranges/transform_view.h +++ b/libcxx/include/__ranges/transform_view.h @@ -35,7 +35,6 @@ #include <__utility/forward.h> #include <__utility/in_place.h> #include <__utility/move.h> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__ranges/zip_view.h b/libcxx/include/__ranges/zip_view.h index b3cac71..b2067f6 100644 --- a/libcxx/include/__ranges/zip_view.h +++ b/libcxx/include/__ranges/zip_view.h @@ -30,11 +30,11 @@ #include <__ranges/enable_borrowed_range.h> #include <__ranges/size.h> #include <__ranges/view_interface.h> +#include <__utility/declval.h> #include <__utility/forward.h> #include <__utility/integer_sequence.h> #include <__utility/move.h> #include <tuple> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/__split_buffer b/libcxx/include/__split_buffer index 86daddb..c4f1315 100644 --- a/libcxx/include/__split_buffer +++ b/libcxx/include/__split_buffer @@ -23,9 +23,18 @@ #include <__memory/compressed_pair.h> #include <__memory/pointer_traits.h> #include <__memory/swap_allocator.h> +#include <__type_traits/add_lvalue_reference.h> +#include <__type_traits/enable_if.h> +#include <__type_traits/integral_constant.h> +#include <__type_traits/is_nothrow_default_constructible.h> +#include <__type_traits/is_nothrow_move_assignable.h> +#include <__type_traits/is_nothrow_move_constructible.h> +#include <__type_traits/is_swappable.h> +#include <__type_traits/is_trivially_destructible.h> +#include <__type_traits/remove_reference.h> #include <__utility/forward.h> #include <__utility/move.h> -#include <type_traits> +#include <cstddef> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/any b/libcxx/include/any index 4236287..e44ec7a 100644 --- a/libcxx/include/any +++ b/libcxx/include/any @@ -87,13 +87,25 @@ namespace std { #include <__memory/allocator_destructor.h> #include <__memory/allocator_traits.h> #include <__memory/unique_ptr.h> +#include <__type_traits/add_const.h> +#include <__type_traits/add_pointer.h> +#include <__type_traits/aligned_storage.h> +#include <__type_traits/alignment_of.h> +#include <__type_traits/conditional.h> +#include <__type_traits/is_constructible.h> +#include <__type_traits/is_function.h> +#include <__type_traits/is_nothrow_move_constructible.h> +#include <__type_traits/is_reference.h> +#include <__type_traits/is_same.h> +#include <__type_traits/remove_cv.h> +#include <__type_traits/remove_cvref.h> +#include <__type_traits/remove_reference.h> #include <__utility/forward.h> #include <__utility/in_place.h> #include <__utility/move.h> #include <__utility/unreachable.h> #include <cstdlib> #include <initializer_list> -#include <type_traits> #include <typeinfo> #include <version> @@ -706,6 +718,7 @@ _LIBCPP_END_NAMESPACE_STD # include <iosfwd> # include <iterator> # include <memory> +# include <type_traits> # include <variant> #endif diff --git a/libcxx/include/array b/libcxx/include/array index 2a8d0db..218ad3d 100644 --- a/libcxx/include/array +++ b/libcxx/include/array @@ -116,11 +116,20 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce #include <__config> #include <__iterator/reverse_iterator.h> #include <__tuple_dir/sfinae_helpers.h> +#include <__type_traits/conditional.h> +#include <__type_traits/is_array.h> +#include <__type_traits/is_const.h> +#include <__type_traits/is_constructible.h> +#include <__type_traits/is_move_constructible.h> +#include <__type_traits/is_nothrow_constructible.h> +#include <__type_traits/is_nothrow_move_constructible.h> +#include <__type_traits/is_same.h> +#include <__type_traits/is_swappable.h> +#include <__type_traits/remove_cv.h> #include <__utility/integer_sequence.h> #include <__utility/move.h> #include <__utility/unreachable.h> #include <stdexcept> -#include <type_traits> #include <version> // standard-mandated includes @@ -536,6 +545,7 @@ _LIBCPP_END_NAMESPACE_STD # include <algorithm> # include <concepts> # include <iterator> +# include <type_traits> # include <utility> #endif diff --git a/libcxx/include/bitset b/libcxx/include/bitset index daf3d1a..ac866fa 100644 --- a/libcxx/include/bitset +++ b/libcxx/include/bitset @@ -1154,6 +1154,7 @@ _LIBCPP_POP_MACROS #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include <concepts> +# include <type_traits> #endif #endif // _LIBCPP_BITSET diff --git a/libcxx/include/charconv b/libcxx/include/charconv index df444d7..899f0d6 100644 --- a/libcxx/include/charconv +++ b/libcxx/include/charconv @@ -80,13 +80,14 @@ namespace std { #include <__debug> #include <__errc> #include <__memory/addressof.h> +#include <__type_traits/is_unsigned.h> #include <__type_traits/make_32_64_or_128_bit.h> +#include <__type_traits/make_unsigned.h> #include <__utility/unreachable.h> #include <cmath> // for log2f #include <cstdint> #include <cstdlib> #include <limits> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header @@ -832,6 +833,7 @@ _LIBCPP_POP_MACROS # include <concepts> # include <cstring> # include <iosfwd> +# include <type_traits> #endif #endif // _LIBCPP_CHARCONV diff --git a/libcxx/include/complex b/libcxx/include/complex index 5c07c1c..26f189d 100644 --- a/libcxx/include/complex +++ b/libcxx/include/complex @@ -236,7 +236,6 @@ template<class T> complex<T> tanh (const complex<T>&); #include <cmath> #include <iosfwd> #include <stdexcept> -#include <type_traits> #include <version> #if !defined(_LIBCPP_HAS_NO_LOCALIZATION) @@ -1565,4 +1564,8 @@ inline namespace literals _LIBCPP_END_NAMESPACE_STD +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include <type_traits> +#endif + #endif // _LIBCPP_COMPLEX diff --git a/libcxx/include/deque b/libcxx/include/deque index ed03f37..4ce261f 100644 --- a/libcxx/include/deque +++ b/libcxx/include/deque @@ -188,12 +188,13 @@ template <class T, class Allocator, class Predicate> #include <__memory_resource/polymorphic_allocator.h> #include <__split_buffer> #include <__type_traits/is_allocator.h> +#include <__type_traits/is_same.h> +#include <__type_traits/type_identity.h> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/swap.h> #include <limits> #include <stdexcept> -#include <type_traits> #include <version> // standard-mandated includes @@ -2456,6 +2457,7 @@ _LIBCPP_POP_MACROS # include <functional> # include <iosfwd> # include <iterator> +# include <type_traits> # include <typeinfo> #endif diff --git a/libcxx/include/experimental/__memory b/libcxx/include/experimental/__memory index b36f31e..d7b031d 100644 --- a/libcxx/include/experimental/__memory +++ b/libcxx/include/experimental/__memory @@ -12,9 +12,12 @@ #include <__memory/allocator_arg_t.h> #include <__memory/uses_allocator.h> +#include <__type_traits/conditional.h> +#include <__type_traits/is_constructible.h> +#include <__type_traits/is_convertible.h> +#include <__type_traits/is_same.h> #include <experimental/__config> #include <experimental/utility> // for erased_type -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header diff --git a/libcxx/include/experimental/memory_resource b/libcxx/include/experimental/memory_resource index f107f10..f9edd30 100644 --- a/libcxx/include/experimental/memory_resource +++ b/libcxx/include/experimental/memory_resource @@ -66,6 +66,7 @@ namespace pmr { #include <__assert> // all public C++ headers provide the assertion handler #include <__memory/allocator_traits.h> +#include <__type_traits/aligned_storage.h> #include <__utility/move.h> #include <cstddef> #include <cstdlib> @@ -75,7 +76,6 @@ namespace pmr { #include <new> #include <stdexcept> #include <tuple> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header @@ -437,6 +437,7 @@ _LIBCPP_POP_MACROS # include <iterator> # include <memory> # include <ratio> +# include <type_traits> # include <variant> #endif diff --git a/libcxx/include/experimental/propagate_const b/libcxx/include/experimental/propagate_const index feb85d4..3efec5d 100644 --- a/libcxx/include/experimental/propagate_const +++ b/libcxx/include/experimental/propagate_const @@ -110,11 +110,26 @@ #include <__assert> // all public C++ headers provide the assertion handler #include <__functional/operations.h> #include <__fwd/hash.h> +#include <__type_traits/conditional.h> +#include <__type_traits/decay.h> +#include <__type_traits/enable_if.h> +#include <__type_traits/is_array.h> +#include <__type_traits/is_constructible.h> +#include <__type_traits/is_convertible.h> +#include <__type_traits/is_function.h> +#include <__type_traits/is_pointer.h> +#include <__type_traits/is_reference.h> +#include <__type_traits/is_same.h> +#include <__type_traits/is_swappable.h> +#include <__type_traits/remove_cv.h> +#include <__type_traits/remove_pointer.h> +#include <__type_traits/remove_reference.h> +#include <__utility/declval.h> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/swap.h> +#include <cstddef> #include <experimental/__config> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header @@ -578,4 +593,9 @@ struct greater_equal<experimental::fundamentals_v2::propagate_const<_Tp>> _LIBCPP_END_NAMESPACE_STD #endif // _LIBCPP_STD_VER >= 14 + +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include <type_traits> +#endif + #endif // _LIBCPP_EXPERIMENTAL_PROPAGATE_CONST diff --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map index 3ad4b16..f7f53bc 100644 --- a/libcxx/include/ext/hash_map +++ b/libcxx/include/ext/hash_map @@ -208,7 +208,6 @@ template <class Key, class T, class Hash, class Pred, class Alloc> #include <ext/__hash> #include <functional> #include <stdexcept> -#include <type_traits> #if defined(__DEPRECATED) && __DEPRECATED #if defined(_LIBCPP_WARNING) @@ -985,6 +984,7 @@ operator!=(const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x, #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include <concepts> # include <iterator> +# include <type_traits> #endif #endif // _LIBCPP_HASH_MAP diff --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set index dc8b786..9c678623 100644 --- a/libcxx/include/ext/hash_set +++ b/libcxx/include/ext/hash_set @@ -665,6 +665,7 @@ operator!=(const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x, #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include <concepts> # include <iterator> +# include <type_traits> #endif #endif // _LIBCPP_HASH_SET diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list index f5a6120..e487d17 100644 --- a/libcxx/include/forward_list +++ b/libcxx/include/forward_list @@ -202,11 +202,18 @@ template <class T, class Allocator, class Predicate> #include <__memory/swap_allocator.h> #include <__memory/unique_ptr.h> #include <__memory_resource/polymorphic_allocator.h> +#include <__type_traits/conditional.h> #include <__type_traits/is_allocator.h> +#include <__type_traits/is_const.h> +#include <__type_traits/is_nothrow_default_constructible.h> +#include <__type_traits/is_nothrow_move_assignable.h> +#include <__type_traits/is_nothrow_move_constructible.h> +#include <__type_traits/is_pointer.h> +#include <__type_traits/is_same.h> +#include <__type_traits/type_identity.h> #include <__utility/forward.h> #include <__utility/move.h> #include <limits> -#include <type_traits> #include <version> // standard-mandated includes @@ -1818,6 +1825,7 @@ _LIBCPP_POP_MACROS # include <functional> # include <iosfwd> # include <iterator> +# include <type_traits> # include <typeinfo> #endif diff --git a/libcxx/include/functional b/libcxx/include/functional index bb5db29..6686020 100644 --- a/libcxx/include/functional +++ b/libcxx/include/functional @@ -545,7 +545,6 @@ POLICY: For non-variadic implementations, the number of arguments is limited #include <__utility/forward.h> #include <exception> #include <memory> // TODO: find out why removing this breaks the modules build -#include <type_traits> #include <typeinfo> #include <version> @@ -556,6 +555,7 @@ POLICY: For non-variadic implementations, the number of arguments is limited #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include <concepts> # include <tuple> +# include <type_traits> # include <utility> #endif diff --git a/libcxx/include/future b/libcxx/include/future index a82efeb..92999ce 100644 --- a/libcxx/include/future +++ b/libcxx/include/future @@ -368,7 +368,11 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>; #include <__config> #include <__memory/allocator_arg_t.h> #include <__memory/allocator_destructor.h> +#include <__memory/shared_ptr.h> +#include <__memory/unique_ptr.h> #include <__memory/uses_allocator.h> +#include <__type_traits/aligned_storage.h> +#include <__type_traits/alignment_of.h> #include <__type_traits/strip_signature.h> #include <__utility/auto_cast.h> #include <__utility/forward.h> diff --git a/libcxx/include/istream b/libcxx/include/istream index 831d4ec..1fb45fa 100644 --- a/libcxx/include/istream +++ b/libcxx/include/istream @@ -161,6 +161,7 @@ template <class Stream, class T> #include <__assert> // all public C++ headers provide the assertion handler #include <__config> #include <__iterator/istreambuf_iterator.h> +#include <__utility/declval.h> #include <__utility/forward.h> #include <ostream> #include <version> diff --git a/libcxx/include/list b/libcxx/include/list index 750ccf9..191f317 100644 --- a/libcxx/include/list +++ b/libcxx/include/list @@ -207,13 +207,19 @@ template <class T, class Allocator, class Predicate> #include <__memory/swap_allocator.h> #include <__memory/unique_ptr.h> #include <__memory_resource/polymorphic_allocator.h> +#include <__type_traits/conditional.h> #include <__type_traits/is_allocator.h> +#include <__type_traits/is_nothrow_default_constructible.h> +#include <__type_traits/is_nothrow_move_assignable.h> +#include <__type_traits/is_nothrow_move_constructible.h> +#include <__type_traits/is_pointer.h> +#include <__type_traits/is_same.h> +#include <__type_traits/type_identity.h> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/swap.h> #include <cstring> #include <limits> -#include <type_traits> #include <version> // standard-mandated includes @@ -2399,6 +2405,7 @@ _LIBCPP_POP_MACROS # include <functional> # include <iosfwd> # include <iterator> +# include <type_traits> # include <typeinfo> #endif diff --git a/libcxx/include/locale b/libcxx/include/locale index 0b64c68..0f862b1 100644 --- a/libcxx/include/locale +++ b/libcxx/include/locale @@ -202,6 +202,7 @@ template <class charT> class messages_byname; #include <__iterator/ostreambuf_iterator.h> #include <__locale> #include <__memory/unique_ptr.h> +#include <__type_traits/make_unsigned.h> #include <cstdio> #include <cstdlib> #include <ctime> diff --git a/libcxx/include/map b/libcxx/include/map index b1ba562..838c96c 100644 --- a/libcxx/include/map +++ b/libcxx/include/map @@ -547,7 +547,6 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20 #include <__utility/piecewise_construct.h> #include <__utility/swap.h> #include <tuple> -#include <type_traits> #include <version> // standard-mandated includes @@ -2355,6 +2354,7 @@ _LIBCPP_END_NAMESPACE_STD # include <concepts> # include <functional> # include <iterator> +# include <type_traits> # include <utility> #endif diff --git a/libcxx/include/optional b/libcxx/include/optional index bbc8229..abfd9eb 100644 --- a/libcxx/include/optional +++ b/libcxx/include/optional @@ -167,6 +167,13 @@ template<class T> #include <__functional/unary_function.h> #include <__memory/construct_at.h> #include <__tuple_dir/sfinae_helpers.h> +#include <__type_traits/is_trivially_copy_assignable.h> +#include <__type_traits/is_trivially_copy_constructible.h> +#include <__type_traits/is_trivially_destructible.h> +#include <__type_traits/is_trivially_move_assignable.h> +#include <__type_traits/is_trivially_move_constructible.h> +#include <__type_traits/negation.h> +#include <__utility/declval.h> #include <__utility/forward.h> #include <__utility/in_place.h> #include <__utility/move.h> @@ -174,7 +181,6 @@ template<class T> #include <initializer_list> #include <new> #include <stdexcept> -#include <type_traits> #include <version> // standard-mandated includes @@ -1583,6 +1589,7 @@ _LIBCPP_END_NAMESPACE_STD # include <memory> # include <ratio> # include <tuple> +# include <type_traits> # include <typeinfo> # include <utility> # include <variant> diff --git a/libcxx/include/ostream b/libcxx/include/ostream index d2e422b..7bd0ed3 100644 --- a/libcxx/include/ostream +++ b/libcxx/include/ostream @@ -167,6 +167,9 @@ basic_ostream<wchar_t, traits>& operator<<(basic_ostream<wchar_t, traits>&, cons #include <__config> #include <__memory/shared_ptr.h> #include <__memory/unique_ptr.h> +#include <__type_traits/conjunction.h> +#include <__type_traits/void_t.h> +#include <__utility/declval.h> #include <bitset> #include <ios> #include <locale> diff --git a/libcxx/include/queue b/libcxx/include/queue index f3ca8a6..35cceb5 100644 --- a/libcxx/include/queue +++ b/libcxx/include/queue @@ -227,7 +227,6 @@ template <class T, class Container, class Compare> #include <__memory/uses_allocator.h> #include <__utility/forward.h> #include <deque> -#include <type_traits> #include <vector> #include <version> @@ -965,6 +964,7 @@ _LIBCPP_END_NAMESPACE_STD #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include <concepts> # include <functional> +# include <type_traits> #endif #endif // _LIBCPP_QUEUE diff --git a/libcxx/include/ranges b/libcxx/include/ranges index c804709..f9a94a1 100644 --- a/libcxx/include/ranges +++ b/libcxx/include/ranges @@ -377,7 +377,6 @@ namespace std { #include <__ranges/view_interface.h> #include <__ranges/views.h> #include <__ranges/zip_view.h> -#include <type_traits> #include <version> #if !defined(_LIBCPP_HAS_NO_LOCALIZATION) @@ -399,4 +398,8 @@ namespace std { # pragma GCC system_header #endif +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include <type_traits> +#endif + #endif // _LIBCPP_RANGES diff --git a/libcxx/include/set b/libcxx/include/set index 9bbb34c..289e35a 100644 --- a/libcxx/include/set +++ b/libcxx/include/set @@ -1600,6 +1600,7 @@ _LIBCPP_END_NAMESPACE_STD # include <concepts> # include <functional> # include <iterator> +# include <type_traits> #endif #endif // _LIBCPP_SET diff --git a/libcxx/include/span b/libcxx/include/span index e961823..661ae0d 100644 --- a/libcxx/include/span +++ b/libcxx/include/span @@ -141,11 +141,13 @@ template<class R> #include <__ranges/enable_borrowed_range.h> #include <__ranges/enable_view.h> #include <__ranges/size.h> +#include <__type_traits/remove_cvref.h> +#include <__type_traits/remove_reference.h> +#include <__type_traits/type_identity.h> #include <__utility/forward.h> #include <array> // for array #include <cstddef> // for byte #include <limits> -#include <type_traits> // for remove_cv, etc #include <version> // standard-mandated includes @@ -595,6 +597,7 @@ _LIBCPP_POP_MACROS # include <concepts> # include <functional> # include <iterator> +# include <type_traits> #endif #endif // _LIBCPP_SPAN diff --git a/libcxx/include/stack b/libcxx/include/stack index 3ee4074..318c9c7 100644 --- a/libcxx/include/stack +++ b/libcxx/include/stack @@ -102,9 +102,9 @@ template <class T, class Container> #include <__config> #include <__iterator/iterator_traits.h> #include <__memory/uses_allocator.h> +#include <__type_traits/is_same.h> #include <__utility/forward.h> #include <deque> -#include <type_traits> #include <version> // standard-mandated includes @@ -366,6 +366,7 @@ _LIBCPP_END_NAMESPACE_STD #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 # include <concepts> # include <functional> +# include <type_traits> #endif #endif // _LIBCPP_STACK diff --git a/libcxx/include/string b/libcxx/include/string index 787064d..3217361 100644 --- a/libcxx/include/string +++ b/libcxx/include/string @@ -561,7 +561,14 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len ); #include <__string/char_traits.h> #include <__string/extern_template_lists.h> #include <__type_traits/is_allocator.h> +#include <__type_traits/is_array.h> +#include <__type_traits/is_nothrow_default_constructible.h> +#include <__type_traits/is_nothrow_move_assignable.h> +#include <__type_traits/is_same.h> +#include <__type_traits/is_standard_layout.h> +#include <__type_traits/is_trivial.h> #include <__type_traits/noexcept_move_assign_container.h> +#include <__type_traits/remove_cvref.h> #include <__utility/auto_cast.h> #include <__utility/move.h> #include <__utility/swap.h> @@ -574,7 +581,6 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len ); #include <limits> #include <stdexcept> #include <string_view> -#include <type_traits> #include <version> #ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS @@ -4625,6 +4631,7 @@ _LIBCPP_POP_MACROS # include <functional> # include <iterator> # include <new> +# include <type_traits> # include <typeinfo> # include <utility> # include <vector> diff --git a/libcxx/include/string_view b/libcxx/include/string_view index 052e098..d5629b7 100644 --- a/libcxx/include/string_view +++ b/libcxx/include/string_view @@ -219,10 +219,16 @@ namespace std { #include <__ranges/enable_view.h> #include <__ranges/size.h> #include <__string/char_traits.h> +#include <__type_traits/is_array.h> +#include <__type_traits/is_same.h> +#include <__type_traits/is_standard_layout.h> +#include <__type_traits/is_trivial.h> +#include <__type_traits/remove_cvref.h> +#include <__type_traits/remove_reference.h> +#include <__type_traits/type_identity.h> #include <iosfwd> #include <limits> #include <stdexcept> -#include <type_traits> #include <version> // standard-mandated includes @@ -1040,6 +1046,7 @@ _LIBCPP_POP_MACROS # include <concepts> # include <functional> # include <iterator> +# include <type_traits> #endif #endif // _LIBCPP_STRING_VIEW diff --git a/libcxx/include/system_error b/libcxx/include/system_error index 3d2b681..8142aac 100644 --- a/libcxx/include/system_error +++ b/libcxx/include/system_error @@ -152,7 +152,6 @@ template <> struct hash<std::error_condition>; #include <__memory/addressof.h> #include <stdexcept> #include <string> -#include <type_traits> #include <version> // standard-mandated includes @@ -545,4 +544,8 @@ void __throw_system_error(int __ev, const char* __what_arg); _LIBCPP_END_NAMESPACE_STD +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include <type_traits> +#endif + #endif // _LIBCPP_SYSTEM_ERROR diff --git a/libcxx/include/thread b/libcxx/include/thread index 2d4229d..db8a1e8 100644 --- a/libcxx/include/thread +++ b/libcxx/include/thread @@ -96,7 +96,6 @@ void sleep_for(const chrono::duration<Rep, Period>& rel_time); #include <iosfwd> #include <system_error> #include <tuple> -#include <type_traits> #include <version> // standard-mandated includes diff --git a/libcxx/include/typeinfo b/libcxx/include/typeinfo index b3ba8c2..2558e17 100644 --- a/libcxx/include/typeinfo +++ b/libcxx/include/typeinfo @@ -64,7 +64,6 @@ public: #include <cstdint> #include <cstdlib> #include <exception> -#include <type_traits> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header @@ -414,4 +413,8 @@ void __throw_bad_cast() } _LIBCPP_END_NAMESPACE_STD +#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 +# include <type_traits> +#endif + #endif // __LIBCPP_TYPEINFO diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map index 251a581..99d55d3 100644 --- a/libcxx/include/unordered_map +++ b/libcxx/include/unordered_map @@ -2648,6 +2648,7 @@ _LIBCPP_END_NAMESPACE_STD # include <bit> # include <concepts> # include <iterator> +# include <type_traits> #endif #endif // _LIBCPP_UNORDERED_MAP diff --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set index 1fdaf96..3d4a1f7 100644 --- a/libcxx/include/unordered_set +++ b/libcxx/include/unordered_set @@ -1819,6 +1819,7 @@ _LIBCPP_END_NAMESPACE_STD # include <concepts> # include <functional> # include <iterator> +# include <type_traits> #endif #endif // _LIBCPP_UNORDERED_SET diff --git a/libcxx/include/variant b/libcxx/include/variant index c523469..0f4600e 100644 --- a/libcxx/include/variant +++ b/libcxx/include/variant @@ -231,6 +231,7 @@ namespace std { #include <__type_traits/remove_const.h> #include <__type_traits/type_identity.h> #include <__type_traits/void_t.h> +#include <__utility/declval.h> #include <__utility/forward.h> #include <__utility/in_place.h> #include <__utility/move.h> diff --git a/libcxx/include/vector b/libcxx/include/vector index 619e258..6c25e5d 100644 --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -307,7 +307,10 @@ template<class T, class charT> requires is-vector-bool-reference<T> // Since C++ #include <__memory_resource/polymorphic_allocator.h> #include <__split_buffer> #include <__type_traits/is_allocator.h> +#include <__type_traits/is_constructible.h> +#include <__type_traits/is_nothrow_move_assignable.h> #include <__type_traits/noexcept_move_assign_container.h> +#include <__type_traits/type_identity.h> #include <__utility/exception_guard.h> #include <__utility/forward.h> #include <__utility/move.h> @@ -318,7 +321,6 @@ template<class T, class charT> requires is-vector-bool-reference<T> // Since C++ #include <iosfwd> // for forward declaration of vector #include <limits> #include <stdexcept> -#include <type_traits> #include <version> // standard-mandated includes @@ -3359,6 +3361,7 @@ _LIBCPP_POP_MACROS # include <algorithm> # include <atomic> # include <concepts> +# include <type_traits> # include <typeinfo> # include <utility> #endif diff --git a/libcxx/test/libcxx/containers/sequences/vector.bool/trivial_for_purposes_of_call.pass.cpp b/libcxx/test/libcxx/containers/sequences/vector.bool/trivial_for_purposes_of_call.pass.cpp index d9d698f..d29b0f1 100644 --- a/libcxx/test/libcxx/containers/sequences/vector.bool/trivial_for_purposes_of_call.pass.cpp +++ b/libcxx/test/libcxx/containers/sequences/vector.bool/trivial_for_purposes_of_call.pass.cpp @@ -26,10 +26,9 @@ // UNSUPPORTED: c++03 -#include <vector> #include <cassert> - -#include "test_macros.h" +#include <type_traits> +#include <vector> template <class T> using IsTrivialForCall = std::integral_constant<bool, diff --git a/libcxx/test/libcxx/language.support/support.dynamic/new_faligned_allocation.pass.cpp b/libcxx/test/libcxx/language.support/support.dynamic/new_faligned_allocation.pass.cpp index 8820e12..aecdcd6 100644 --- a/libcxx/test/libcxx/language.support/support.dynamic/new_faligned_allocation.pass.cpp +++ b/libcxx/test/libcxx/language.support/support.dynamic/new_faligned_allocation.pass.cpp @@ -21,10 +21,11 @@ // REQUIRES: -faligned-allocation // ADDITIONAL_COMPILE_FLAGS: -faligned-allocation +#include <cassert> #include <new> -#include <typeinfo> #include <string> -#include <cassert> +#include <type_traits> +#include <typeinfo> #include "test_macros.h" diff --git a/libcxx/test/libcxx/ranges/range.adaptors/range.join/segmented_iterator.compile.pass.cpp b/libcxx/test/libcxx/ranges/range.adaptors/range.join/segmented_iterator.compile.pass.cpp index 509b0c8..82e8cab 100644 --- a/libcxx/test/libcxx/ranges/range.adaptors/range.join/segmented_iterator.compile.pass.cpp +++ b/libcxx/test/libcxx/ranges/range.adaptors/range.join/segmented_iterator.compile.pass.cpp @@ -10,6 +10,7 @@ // UNSUPPORTED: !c++experimental #include <ranges> +#include <utility> #include <vector> using JoinView = decltype(std::views::join(std::declval<std::vector<std::vector<int>>&>())); diff --git a/libcxx/test/libcxx/transitive_includes/cxx03.csv b/libcxx/test/libcxx/transitive_includes/cxx03.csv index d88331b..3d5bf74 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx03.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx03.csv @@ -394,16 +394,24 @@ functional unordered_map functional utility functional vector functional version +future atomic future chrono future cstddef +future cstdint +future cstdlib +future cstring future exception +future initializer_list +future iosfwd future limits future mutex future new future ratio +future stdexcept future system_error future thread future type_traits +future typeinfo future version initializer_list cstddef iomanip istream diff --git a/libcxx/test/libcxx/transitive_includes/cxx11.csv b/libcxx/test/libcxx/transitive_includes/cxx11.csv index 439b64d..2e37a0d 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx11.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx11.csv @@ -394,16 +394,24 @@ functional unordered_map functional utility functional vector functional version +future atomic future chrono future cstddef +future cstdint +future cstdlib +future cstring future exception +future initializer_list +future iosfwd future limits future mutex future new future ratio +future stdexcept future system_error future thread future type_traits +future typeinfo future version initializer_list cstddef iomanip istream diff --git a/libcxx/test/libcxx/transitive_includes/cxx14.csv b/libcxx/test/libcxx/transitive_includes/cxx14.csv index 57bc474..f48296d 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx14.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx14.csv @@ -396,16 +396,24 @@ functional unordered_map functional utility functional vector functional version +future atomic future chrono future cstddef +future cstdint +future cstdlib +future cstring future exception +future initializer_list +future iosfwd future limits future mutex future new future ratio +future stdexcept future system_error future thread future type_traits +future typeinfo future version initializer_list cstddef iomanip istream diff --git a/libcxx/test/libcxx/transitive_includes/cxx17.csv b/libcxx/test/libcxx/transitive_includes/cxx17.csv index 57bc474..f48296d 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx17.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx17.csv @@ -396,16 +396,24 @@ functional unordered_map functional utility functional vector functional version +future atomic future chrono future cstddef +future cstdint +future cstdlib +future cstring future exception +future initializer_list +future iosfwd future limits future mutex future new future ratio +future stdexcept future system_error future thread future type_traits +future typeinfo future version initializer_list cstddef iomanip istream diff --git a/libcxx/test/libcxx/transitive_includes/cxx20.csv b/libcxx/test/libcxx/transitive_includes/cxx20.csv index 8a439c9..e048e1b 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx20.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx20.csv @@ -403,15 +403,23 @@ functional unordered_map functional utility functional vector functional version +future atomic future cstddef +future cstdint +future cstdlib +future cstring future exception +future initializer_list +future iosfwd future limits future mutex future new future ratio +future stdexcept future system_error future thread future type_traits +future typeinfo future version initializer_list cstddef iomanip istream diff --git a/libcxx/test/libcxx/transitive_includes/cxx2b.csv b/libcxx/test/libcxx/transitive_includes/cxx2b.csv index 427e173..964892a 100644 --- a/libcxx/test/libcxx/transitive_includes/cxx2b.csv +++ b/libcxx/test/libcxx/transitive_includes/cxx2b.csv @@ -16,7 +16,6 @@ any initializer_list any limits any new any stdexcept -any type_traits any typeinfo any version array compare @@ -25,7 +24,6 @@ array cstdlib array initializer_list array limits array stdexcept -array type_traits array version atomic cstddef atomic cstdint @@ -60,7 +58,6 @@ bitset limits bitset new bitset stdexcept bitset string -bitset type_traits bitset version ccomplex complex charconv cerrno @@ -70,7 +67,6 @@ charconv cstdint charconv cstdlib charconv initializer_list charconv limits -charconv type_traits chrono array chrono charconv chrono cmath @@ -90,7 +86,6 @@ chrono stdexcept chrono string chrono string_view chrono tuple -chrono type_traits chrono vector chrono version cinttypes cstdint @@ -111,7 +106,6 @@ complex cmath complex iosfwd complex sstream complex stdexcept -complex type_traits complex version concepts cstddef concepts version @@ -150,7 +144,6 @@ deque limits deque new deque stdexcept deque tuple -deque type_traits deque version exception cstddef exception cstdlib @@ -180,9 +173,7 @@ experimental/memory_resource limits experimental/memory_resource new experimental/memory_resource stdexcept experimental/memory_resource tuple -experimental/memory_resource type_traits experimental/propagate_const cstddef -experimental/propagate_const type_traits experimental/regex experimental/memory_resource experimental/regex experimental/string experimental/regex regex @@ -213,7 +204,6 @@ ext/hash_map limits ext/hash_map new ext/hash_map stdexcept ext/hash_map string -ext/hash_map type_traits ext/hash_set algorithm ext/hash_set cmath ext/hash_set cstddef @@ -224,7 +214,6 @@ ext/hash_set initializer_list ext/hash_set limits ext/hash_set new ext/hash_set string -ext/hash_set type_traits filesystem cerrno filesystem compare filesystem cstddef @@ -240,7 +229,6 @@ filesystem ratio filesystem string filesystem string_view filesystem system_error -filesystem type_traits filesystem version format array format charconv @@ -270,7 +258,6 @@ forward_list limits forward_list new forward_list stdexcept forward_list tuple -forward_list type_traits forward_list version fstream cctype fstream cstddef @@ -300,19 +287,26 @@ functional memory functional new functional stdexcept functional tuple -functional type_traits functional typeinfo functional unordered_map functional vector functional version +future atomic future cstddef +future cstdint +future cstdlib +future cstring future exception +future initializer_list +future iosfwd future limits future mutex future new future ratio +future stdexcept future system_error future thread +future typeinfo future version initializer_list cstddef iomanip istream @@ -360,7 +354,6 @@ list limits list new list stdexcept list tuple -list type_traits list version locale cctype locale cstddef @@ -387,7 +380,6 @@ map new map optional map stdexcept map tuple -map type_traits map version memory atomic memory compare @@ -443,7 +435,6 @@ optional initializer_list optional limits optional new optional stdexcept -optional type_traits optional version ostream atomic ostream bitset @@ -467,7 +458,6 @@ queue cstdlib queue deque queue initializer_list queue limits -queue type_traits queue vector queue version random cmath @@ -479,7 +469,6 @@ random iosfwd random limits random numeric random string -random type_traits random vector random version ranges compare @@ -493,7 +482,6 @@ ranges new ranges optional ranges span ranges tuple -ranges type_traits ranges variant ranges version ratio climits @@ -534,7 +522,6 @@ set new set optional set stdexcept set tuple -set type_traits set version shared_mutex cstddef shared_mutex ctime @@ -549,7 +536,6 @@ span array span cstddef span initializer_list span limits -span type_traits span version sstream cstddef sstream istream @@ -560,7 +546,6 @@ stack compare stack cstddef stack deque stack initializer_list -stack type_traits stack version stdexcept cstdlib stdexcept exception @@ -584,7 +569,6 @@ string new string stdexcept string string_view string tuple -string type_traits string version string_view compare string_view cstddef @@ -597,7 +581,6 @@ string_view initializer_list string_view iosfwd string_view limits string_view stdexcept -string_view type_traits string_view version strstream istream strstream ostream @@ -610,7 +593,6 @@ system_error cstring system_error limits system_error stdexcept system_error string -system_error type_traits system_error version thread compare thread cstddef @@ -623,7 +605,6 @@ thread new thread ratio thread system_error thread tuple -thread type_traits thread version tuple compare tuple cstddef @@ -638,7 +619,6 @@ typeinfo cstddef typeinfo cstdint typeinfo cstdlib typeinfo exception -typeinfo type_traits unordered_map cmath unordered_map compare unordered_map cstddef @@ -651,7 +631,6 @@ unordered_map new unordered_map optional unordered_map stdexcept unordered_map tuple -unordered_map type_traits unordered_map version unordered_set cmath unordered_set compare @@ -665,7 +644,6 @@ unordered_set new unordered_set optional unordered_set stdexcept unordered_set tuple -unordered_set type_traits unordered_set version utility compare utility cstddef @@ -702,5 +680,4 @@ vector limits vector new vector stdexcept vector tuple -vector type_traits vector version diff --git a/libcxx/test/std/containers/sequences/array/array.special/swap.pass.cpp b/libcxx/test/std/containers/sequences/array/array.special/swap.pass.cpp index 617641d..9497429 100644 --- a/libcxx/test/std/containers/sequences/array/array.special/swap.pass.cpp +++ b/libcxx/test/std/containers/sequences/array/array.special/swap.pass.cpp @@ -12,6 +12,7 @@ #include <array> #include <cassert> +#include <utility> #include "test_macros.h" diff --git a/libcxx/test/std/iterators/iterator.container/ssize.pass.cpp b/libcxx/test/std/iterators/iterator.container/ssize.pass.cpp index 9f384c6..a424ebb 100644 --- a/libcxx/test/std/iterators/iterator.container/ssize.pass.cpp +++ b/libcxx/test/std/iterators/iterator.container/ssize.pass.cpp @@ -13,14 +13,16 @@ // -> common_type_t<ptrdiff_t, make_signed_t<decltype(c.size())>>; // C++20 // template <class T, ptrdiff_t> constexpr ptrdiff_t ssize(const T (&array)[N]) noexcept; // C++20 -#include <iterator> -#include <cassert> -#include <vector> #include <array> -#include <list> +#include <cassert> +#include <cstdint> #include <initializer_list> -#include <string_view> +#include <iterator> #include <limits> +#include <list> +#include <string_view> +#include <type_traits> +#include <vector> #include "test_macros.h" diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp index 31ec010..5666382 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp @@ -11,11 +11,11 @@ // template<class I> // unspecified iter_move; -#include <iterator> - -#include <array> #include <algorithm> +#include <array> #include <cassert> +#include <iterator> +#include <type_traits> #include <utility> #include "../unqualified_lookup_wrapper.h" diff --git a/libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.pass.cpp b/libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.pass.cpp index 7273223..d8377f0 100644 --- a/libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.pass.cpp +++ b/libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.pass.cpp @@ -14,9 +14,10 @@ // C++17 says: If is_trivially_default_constructible_v<T> is true, then this // constructor is a constexpr constructor. -#include <iterator> #include <cassert> +#include <iterator> #include <string> +#include <type_traits> #include "test_macros.h" diff --git a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp index 2e8bfaeb..a9a1a8f 100644 --- a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp @@ -15,10 +15,12 @@ // template<class _URNG> result_type operator()(_URNG& g); -#include <random> +#include <cassert> +#include <cstdint> #include <numeric> +#include <random> +#include <type_traits> #include <vector> -#include <cassert> #include "test_macros.h" diff --git a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/eval.pass.cpp b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/eval.pass.cpp index deccad1..440334e 100644 --- a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/eval.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/eval.pass.cpp @@ -15,10 +15,11 @@ // template<class _URNG> result_type operator()(_URNG& g); -#include <random> +#include <cassert> +#include <cstdint> #include <numeric> +#include <random> #include <vector> -#include <cassert> #include "test_macros.h" diff --git a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/eval.pass.cpp b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/eval.pass.cpp index 6aef9b4..5feb2e5 100644 --- a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/eval.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/eval.pass.cpp @@ -15,13 +15,13 @@ // template<class _URNG> result_type operator()(_URNG& g); -#include <random> - #include <cassert> #include <cmath> +#include <cstdint> #include <limits> -#include <vector> #include <numeric> +#include <random> +#include <vector> #include "test_macros.h" diff --git a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/eval.pass.cpp b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/eval.pass.cpp index d52e23e..4403c6c 100644 --- a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/eval.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/eval.pass.cpp @@ -15,9 +15,10 @@ // template<class _URNG> result_type operator()(_URNG& g); +#include <cassert> +#include <cstdint> #include <random> #include <vector> -#include <cassert> #include "test_macros.h" diff --git a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp index d636c4c..15270cc 100644 --- a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp @@ -15,12 +15,13 @@ // template<class _URNG> result_type operator()(_URNG& g); -#include <random> #include <cassert> #include <climits> #include <cstddef> +#include <cstdint> #include <limits> #include <numeric> +#include <random> #include <vector> #include "test_macros.h" diff --git a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/int128.pass.cpp b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/int128.pass.cpp index 9b522052..9d499db 100644 --- a/libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/int128.pass.cpp +++ b/libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/int128.pass.cpp @@ -15,10 +15,11 @@ // template<class _URNG> result_type operator()(_URNG& g); -#include <random> #include <cassert> +#include <cstdint> #include <limits> +#include <random> #include "test_macros.h" diff --git a/libcxx/test/std/ranges/range.adaptors/range.as.rvalue/ctor.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.as.rvalue/ctor.pass.cpp index 4832139..d9b14e4 100644 --- a/libcxx/test/std/ranges/range.adaptors/range.as.rvalue/ctor.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.as.rvalue/ctor.pass.cpp @@ -12,6 +12,7 @@ #include <cassert> #include <ranges> +#include <type_traits> #include <vector> struct DefaultConstructibleView : std::ranges::view_base { diff --git a/libcxx/test/std/ranges/range.adaptors/range.take/ctor.default.pass.cpp b/libcxx/test/std/ranges/range.adaptors/range.take/ctor.default.pass.cpp index 33071a9..98fd1e0 100644 --- a/libcxx/test/std/ranges/range.adaptors/range.take/ctor.default.pass.cpp +++ b/libcxx/test/std/ranges/range.adaptors/range.take/ctor.default.pass.cpp @@ -10,8 +10,9 @@ // take_view() requires default_initializable<V> = default; -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> int buff[8] = {1, 2, 3, 4, 5, 6, 7, 8}; diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/ctor.value.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/ctor.value.pass.cpp index ac5a25b..cda372e 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/ctor.value.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/ctor.value.pass.cpp @@ -10,8 +10,9 @@ // constexpr explicit iota_view(W value); -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/ctor.value.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/ctor.value.pass.cpp index 5a71837..a84cb91 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/ctor.value.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/ctor.value.pass.cpp @@ -10,8 +10,9 @@ // constexpr explicit iterator(W value); -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/decrement.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/decrement.pass.cpp index 45b5e17..3b1613e 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/decrement.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/decrement.pass.cpp @@ -11,8 +11,9 @@ // constexpr iterator& operator--() requires decrementable<W>; // constexpr iterator operator--(int) requires decrementable<W>; -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/increment.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/increment.pass.cpp index a979a2d..d99e57f 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/increment.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/increment.pass.cpp @@ -12,8 +12,9 @@ // constexpr void operator++(int); // constexpr iterator operator++(int) requires incrementable<W>; -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/member_typedefs.compile.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/member_typedefs.compile.pass.cpp index e009bfc..c2f7fd1 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/member_typedefs.compile.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/member_typedefs.compile.pass.cpp @@ -13,6 +13,7 @@ #include <cassert> #include <cstdint> #include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus.pass.cpp index ff425ba..705a744 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus.pass.cpp @@ -16,6 +16,7 @@ #include <cassert> #include <cstdint> #include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus_eq.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus_eq.pass.cpp index 6b16982..b46a34d 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus_eq.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus_eq.pass.cpp @@ -11,8 +11,9 @@ // constexpr iterator& operator-=(difference_type n) // requires advanceable<W>; -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus.pass.cpp index aaff730..b66dc78 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus.pass.cpp @@ -13,8 +13,9 @@ // friend constexpr iterator operator+(difference_type n, iterator i) // requires advanceable<W>; -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus_eq.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus_eq.pass.cpp index ded3c97..fa9135d 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus_eq.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus_eq.pass.cpp @@ -11,8 +11,9 @@ // constexpr iterator& operator+=(difference_type n) // requires advanceable<W>; -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/sentinel/ctor.value.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/sentinel/ctor.value.pass.cpp index c465345..a56369b 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/sentinel/ctor.value.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/sentinel/ctor.value.pass.cpp @@ -10,8 +10,9 @@ // constexpr explicit sentinel(Bound bound); -#include <ranges> #include <cassert> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "../types.h" diff --git a/libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp b/libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp index d7310cc..a6b268f 100644 --- a/libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp @@ -10,9 +10,10 @@ // views::iota -#include <ranges> #include <cassert> #include <concepts> +#include <ranges> +#include <type_traits> #include "test_macros.h" #include "types.h" diff --git a/libcxx/test/std/strings/basic.string.literals/noexcept.compile.pass.cpp b/libcxx/test/std/strings/basic.string.literals/noexcept.compile.pass.cpp index 7f040e5..8e2cae7 100644 --- a/libcxx/test/std/strings/basic.string.literals/noexcept.compile.pass.cpp +++ b/libcxx/test/std/strings/basic.string.literals/noexcept.compile.pass.cpp @@ -9,6 +9,7 @@ // UNSUPPORTED: c++03, c++11 #include <string> +#include <utility> #include "test_macros.h" diff --git a/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp b/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp index 42a83f8..9698ba5 100644 --- a/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp +++ b/libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp @@ -15,8 +15,9 @@ // operator<<(basic_ostream<charT, traits>& os, // const basic_string_view<charT,traits> str); -#include <string_view> #include <iosfwd> +#include <string_view> +#include <utility> template <class SV, class = void> struct HasDecl : std::false_type {}; diff --git a/libcxx/test/std/utilities/charconv/charconv.syn/chars_format.pass.cpp b/libcxx/test/std/utilities/charconv/charconv.syn/chars_format.pass.cpp index beee526..85b78c4 100644 --- a/libcxx/test/std/utilities/charconv/charconv.syn/chars_format.pass.cpp +++ b/libcxx/test/std/utilities/charconv/charconv.syn/chars_format.pass.cpp @@ -18,8 +18,9 @@ // general = fixed | scientific // }; -#include <charconv> #include <cassert> +#include <charconv> +#include <type_traits> #include "test_macros.h" diff --git a/libcxx/test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp b/libcxx/test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp index 327765b..522b967 100644 --- a/libcxx/test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp +++ b/libcxx/test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp @@ -8,11 +8,12 @@ // bitset(string, pos, n, zero, one); // constexpr since C++23 -#include <bitset> #include <algorithm> // for 'min' and 'max' +#include <bitset> #include <cassert> #include <stdexcept> // for 'invalid_argument' #include <string> +#include <type_traits> #include "test_macros.h" diff --git a/libcxx/test/support/filesystem_test_helper.h b/libcxx/test/support/filesystem_test_helper.h index 98429aa..4a352c7 100644 --- a/libcxx/test/support/filesystem_test_helper.h +++ b/libcxx/test/support/filesystem_test_helper.h @@ -19,6 +19,7 @@ #include <cstdio> // for printf #include <string> #include <system_error> +#include <type_traits> #include <vector> #include "assert_macros.h" diff --git a/libcxxabi/src/demangle/ItaniumDemangle.h b/libcxxabi/src/demangle/ItaniumDemangle.h index 66213c6..f71f61f 100644 --- a/libcxxabi/src/demangle/ItaniumDemangle.h +++ b/libcxxabi/src/demangle/ItaniumDemangle.h @@ -27,6 +27,7 @@ #include <cstring> #include <limits> #include <new> +#include <type_traits> #include <utility> DEMANGLE_NAMESPACE_BEGIN |