[libc++] Granularize <type_traits> includes
authorNikolas Klauser <nikolasklauser@berlin.de>
Sun, 12 Feb 2023 11:32:36 +0000 (12:32 +0100)
committerNikolas Klauser <nikolasklauser@berlin.de>
Wed, 8 Mar 2023 21:05:04 +0000 (22:05 +0100)
Reviewed By: ldionne, #libc, #libc_abi

Spies: #libc_vendors, smeenai, libcxx-commits

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

127 files changed:
libcxx/include/__bit_reference
libcxx/include/__chrono/hh_mm_ss.h
libcxx/include/__filesystem/filesystem_error.h
libcxx/include/__filesystem/path.h
libcxx/include/__filesystem/u8path.h
libcxx/include/__format/buffer.h
libcxx/include/__format/format_arg.h
libcxx/include/__format/format_arg_store.h
libcxx/include/__format/format_parse_context.h
libcxx/include/__format/formatter_floating_point.h
libcxx/include/__format/parser_std_format_spec.h
libcxx/include/__functional/bind.h
libcxx/include/__functional/bind_back.h
libcxx/include/__functional/bind_front.h
libcxx/include/__functional/compose.h
libcxx/include/__functional/function.h
libcxx/include/__functional/is_transparent.h
libcxx/include/__functional/mem_fn.h
libcxx/include/__functional/not_fn.h
libcxx/include/__functional/perfect_forward.h
libcxx/include/__hash_table
libcxx/include/__memory/shared_ptr.h
libcxx/include/__mutex_base
libcxx/include/__random/clamp_to_integral.h
libcxx/include/__random/discard_block_engine.h
libcxx/include/__random/independent_bits_engine.h
libcxx/include/__random/is_seed_sequence.h
libcxx/include/__random/linear_congruential_engine.h
libcxx/include/__random/mersenne_twister_engine.h
libcxx/include/__random/seed_seq.h
libcxx/include/__random/shuffle_order_engine.h
libcxx/include/__random/subtract_with_carry_engine.h
libcxx/include/__random/uniform_real_distribution.h
libcxx/include/__ranges/all.h
libcxx/include/__ranges/common_view.h
libcxx/include/__ranges/copyable_box.h
libcxx/include/__ranges/counted.h
libcxx/include/__ranges/drop_view.h
libcxx/include/__ranges/empty_view.h
libcxx/include/__ranges/filter_view.h
libcxx/include/__ranges/iota_view.h
libcxx/include/__ranges/join_view.h
libcxx/include/__ranges/lazy_split_view.h
libcxx/include/__ranges/non_propagating_cache.h
libcxx/include/__ranges/owning_view.h
libcxx/include/__ranges/range_adaptor.h
libcxx/include/__ranges/rbegin.h
libcxx/include/__ranges/ref_view.h
libcxx/include/__ranges/rend.h
libcxx/include/__ranges/reverse_view.h
libcxx/include/__ranges/single_view.h
libcxx/include/__ranges/take_view.h
libcxx/include/__ranges/transform_view.h
libcxx/include/__ranges/zip_view.h
libcxx/include/__split_buffer
libcxx/include/any
libcxx/include/array
libcxx/include/bitset
libcxx/include/charconv
libcxx/include/complex
libcxx/include/deque
libcxx/include/experimental/__memory
libcxx/include/experimental/memory_resource
libcxx/include/experimental/propagate_const
libcxx/include/ext/hash_map
libcxx/include/ext/hash_set
libcxx/include/forward_list
libcxx/include/functional
libcxx/include/future
libcxx/include/istream
libcxx/include/list
libcxx/include/locale
libcxx/include/map
libcxx/include/optional
libcxx/include/ostream
libcxx/include/queue
libcxx/include/ranges
libcxx/include/set
libcxx/include/span
libcxx/include/stack
libcxx/include/string
libcxx/include/string_view
libcxx/include/system_error
libcxx/include/thread
libcxx/include/typeinfo
libcxx/include/unordered_map
libcxx/include/unordered_set
libcxx/include/variant
libcxx/include/vector
libcxx/test/libcxx/containers/sequences/vector.bool/trivial_for_purposes_of_call.pass.cpp
libcxx/test/libcxx/language.support/support.dynamic/new_faligned_allocation.pass.cpp
libcxx/test/libcxx/ranges/range.adaptors/range.join/segmented_iterator.compile.pass.cpp
libcxx/test/libcxx/transitive_includes/cxx03.csv
libcxx/test/libcxx/transitive_includes/cxx11.csv
libcxx/test/libcxx/transitive_includes/cxx14.csv
libcxx/test/libcxx/transitive_includes/cxx17.csv
libcxx/test/libcxx/transitive_includes/cxx20.csv
libcxx/test/libcxx/transitive_includes/cxx2b.csv
libcxx/test/std/containers/sequences/array/array.special/swap.pass.cpp
libcxx/test/std/iterators/iterator.container/ssize.pass.cpp
libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp
libcxx/test/std/iterators/stream.iterators/istream.iterator/istream.iterator.cons/default.pass.cpp
libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.bin/eval.pass.cpp
libcxx/test/std/numerics/rand/rand.dist/rand.dist.bern/rand.dist.bern.geo/eval.pass.cpp
libcxx/test/std/numerics/rand/rand.dist/rand.dist.pois/rand.dist.pois.poisson/eval.pass.cpp
libcxx/test/std/numerics/rand/rand.dist/rand.dist.samp/rand.dist.samp.discrete/eval.pass.cpp
libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp
libcxx/test/std/numerics/rand/rand.dist/rand.dist.uni/rand.dist.uni.int/int128.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.as.rvalue/ctor.pass.cpp
libcxx/test/std/ranges/range.adaptors/range.take/ctor.default.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/ctor.value.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/iterator/ctor.value.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/iterator/decrement.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/iterator/increment.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/iterator/member_typedefs.compile.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/iterator/minus_eq.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/iterator/plus_eq.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/sentinel/ctor.value.pass.cpp
libcxx/test/std/ranges/range.factories/range.iota.view/views_iota.pass.cpp
libcxx/test/std/strings/basic.string.literals/noexcept.compile.pass.cpp
libcxx/test/std/strings/string.view/string.view.io/stream_insert_decl_present.compile.pass.cpp
libcxx/test/std/utilities/charconv/charconv.syn/chars_format.pass.cpp
libcxx/test/std/utilities/template.bitset/bitset.cons/string_ctor.pass.cpp
libcxx/test/support/filesystem_test_helper.h
libcxxabi/src/demangle/ItaniumDemangle.h

index c66dc4a..95188ff 100644 (file)
@@ -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
index dd1c94e..5bd452e 100644 (file)
@@ -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
index 70e3954..49a076a 100644 (file)
@@ -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
index aad0beb..530821a 100644 (file)
 #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
index d35faa1..ebc1159 100644 (file)
@@ -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.
index c985dbc..c8e1192 100644 (file)
@@ -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>
index 43fca44..a25976a 100644 (file)
@@ -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>
index 44e0e93..15bfccc 100644 (file)
@@ -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>
index 2e2b477..fc1d0a3 100644 (file)
@@ -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)
index 0e19731..31cd012 100644 (file)
@@ -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>
index b88f399..c500525 100644 (file)
@@ -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>
index 30af938..0eb5ce7 100644 (file)
@@ -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
index 1476325..544315d 100644 (file)
@@ -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
index 4e0e71d..109a83c 100644 (file)
@@ -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
index 2a0d61d..168131e 100644 (file)
@@ -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
index d7cc07e..1d2d2a1 100644 (file)
@@ -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)
index 4ff163f..c539a07 100644 (file)
@@ -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
index 8b51627..fe221dd 100644 (file)
@@ -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
index 3c4f588..f148a40 100644 (file)
@@ -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
index 4497dec..af89797 100644 (file)
@@ -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
index 19a47e0..e38a442 100644 (file)
@@ -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>
 #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
index 7061517..ec8bb9c 100644 (file)
 #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>
index 82d9fa6..80621c8 100644 (file)
@@ -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>
index 85f8aa5..c67d76d 100644 (file)
@@ -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
index db33623..077f158 100644 (file)
 
 #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
index f4a23bb..2cd4096 100644 (file)
 #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
index 3c82b27..06621c3 100644 (file)
@@ -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
index 0d91f14..aa24a06 100644 (file)
 
 #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
index eb5f56f..89df825 100644 (file)
@@ -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
index 330537f..5c40d15 100644 (file)
@@ -13,6 +13,7 @@
 #include <__algorithm/fill.h>
 #include <__algorithm/max.h>
 #include <__config>
+#include <cstdint>
 #include <initializer_list>
 #include <vector>
 
index 86a60fc..e07f230 100644 (file)
 #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
index b25ca84..9294cc2 100644 (file)
@@ -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
index b52b689..dd6d6b3 100644 (file)
@@ -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
index 383fd14..ecf908d 100644 (file)
 #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
index 2b1e72b..8fc68ba 100644 (file)
@@ -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
index c92e293..1973bbf 100644 (file)
@@ -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
index f50cd2b..882f90b 100644 (file)
 #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
index 62de445..b97505b 100644 (file)
 #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
index 1a48769..bb445b4 100644 (file)
@@ -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
index 895eb6e..bf1481b 100644 (file)
@@ -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
index fae3b0b..67cf0b7 100644 (file)
 #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
index a9e5b99..cba16c8 100644 (file)
@@ -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
index d84e4ce..b5b0e7e 100644 (file)
@@ -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>
 #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
index 438d90d..2e6e72f 100644 (file)
@@ -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
index ec46065..cb1d0d5 100644 (file)
@@ -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
index fcb1f2f..f8fd2f6 100644 (file)
@@ -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
index 720ae3d..1ceb111 100644 (file)
 #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
index a7fa4f2..be32b81 100644 (file)
@@ -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
index 15770d1..7ee574c 100644 (file)
 #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
index fc49eea..01d1b97 100644 (file)
 #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
index 7ea302a..ccab2c1 100644 (file)
 #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
index b8adedf..ec859e9 100644 (file)
 #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
index 9394fce..a71350f 100644 (file)
@@ -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
index b3cac71..b2067f6 100644 (file)
 #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
index 86daddb..c4f1315 100644 (file)
 #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
index 4236287..e44ec7a 100644 (file)
@@ -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
 
index 2a8d0db..218ad3d 100644 (file)
@@ -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
 
index daf3d1a..ac866fa 100644 (file)
@@ -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
index df444d7..899f0d6 100644 (file)
@@ -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
index 5c07c1c..26f189d 100644 (file)
@@ -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
index ed03f37..4ce261f 100644 (file)
@@ -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
 
index b36f31e..d7b031d 100644 (file)
 
 #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
index f107f10..f9edd30 100644 (file)
@@ -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
 
index feb85d4..3efec5d 100644 (file)
 #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
index 3ad4b16..f7f53bc 100644 (file)
@@ -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
index dc8b786..9c67862 100644 (file)
@@ -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
index f5a6120..e487d17 100644 (file)
@@ -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
 
index bb5db29..6686020 100644 (file)
@@ -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
 
index a82efeb..92999ce 100644 (file)
@@ -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>
index 831d4ec..1fb45fa 100644 (file)
@@ -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>
index 750ccf9..191f317 100644 (file)
@@ -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
 
index 0b64c68..0f862b1 100644 (file)
@@ -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>
index b1ba562..838c96c 100644 (file)
@@ -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
 
index bbc8229..abfd9eb 100644 (file)
@@ -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>
index d2e422b..7bd0ed3 100644 (file)
@@ -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>
index f3ca8a6..35cceb5 100644 (file)
@@ -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
index c804709..f9a94a1 100644 (file)
@@ -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
index 9bbb34c..289e35a 100644 (file)
@@ -1600,6 +1600,7 @@ _LIBCPP_END_NAMESPACE_STD
 #  include <concepts>
 #  include <functional>
 #  include <iterator>
+#  include <type_traits>
 #endif
 
 #endif // _LIBCPP_SET
index e961823..661ae0d 100644 (file)
@@ -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
index 3ee4074..318c9c7 100644 (file)
@@ -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
index 787064d..3217361 100644 (file)
@@ -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>
index 052e098..d5629b7 100644 (file)
@@ -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
index 3d2b681..8142aac 100644 (file)
@@ -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
index 2d4229d..db8a1e8 100644 (file)
@@ -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
index b3ba8c2..2558e17 100644 (file)
@@ -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
index 251a581..99d55d3 100644 (file)
@@ -2648,6 +2648,7 @@ _LIBCPP_END_NAMESPACE_STD
 #  include <bit>
 #  include <concepts>
 #  include <iterator>
+#  include <type_traits>
 #endif
 
 #endif // _LIBCPP_UNORDERED_MAP
index 1fdaf96..3d4a1f7 100644 (file)
@@ -1819,6 +1819,7 @@ _LIBCPP_END_NAMESPACE_STD
 #  include <concepts>
 #  include <functional>
 #  include <iterator>
+#  include <type_traits>
 #endif
 
 #endif // _LIBCPP_UNORDERED_SET
index c523469..0f4600e 100644 (file)
@@ -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>
index 619e258..6c25e5d 100644 (file)
@@ -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
index d9d698f..d29b0f1 100644 (file)
 
 // 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,
index 8820e12..aecdcd6 100644 (file)
 // 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"
 
index 509b0c8..82e8cab 100644 (file)
@@ -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>>&>()));
index d88331b..3d5bf74 100644 (file)
@@ -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
index 439b64d..2e37a0d 100644 (file)
@@ -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
index 57bc474..f48296d 100644 (file)
@@ -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
index 57bc474..f48296d 100644 (file)
@@ -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
index 8a439c9..e048e1b 100644 (file)
@@ -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
index 427e173..964892a 100644 (file)
@@ -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
index 9f384c6..a424ebb 100644 (file)
 //     -> 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"
 
index 31ec010..5666382 100644 (file)
 // 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"
index 7273223..d8377f0 100644 (file)
 // 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"
 
index 2e8bfae..a9a1a8f 100644 (file)
 
 // 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"
 
index deccad1..440334e 100644 (file)
 
 // 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"
 
index 6aef9b4..5feb2e5 100644 (file)
 
 // 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"
 
index d52e23e..4403c6c 100644 (file)
 
 // template<class _URNG> result_type operator()(_URNG& g);
 
+#include <cassert>
+#include <cstdint>
 #include <random>
 #include <vector>
-#include <cassert>
 
 #include "test_macros.h"
 
index d636c4c..15270cc 100644 (file)
 
 // 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"
index 9b52205..9d499db 100644 (file)
 
 // template<class _URNG> result_type operator()(_URNG& g);
 
-#include <random>
 
 #include <cassert>
+#include <cstdint>
 #include <limits>
+#include <random>
 
 #include "test_macros.h"
 
index 4832139..d9b14e4 100644 (file)
@@ -12,6 +12,7 @@
 
 #include <cassert>
 #include <ranges>
+#include <type_traits>
 #include <vector>
 
 struct DefaultConstructibleView : std::ranges::view_base {
index 33071a9..98fd1e0 100644 (file)
@@ -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};
 
index ac5a25b..cda372e 100644 (file)
@@ -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"
index 5a71837..a84cb91 100644 (file)
@@ -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"
index 45b5e17..3b1613e 100644 (file)
@@ -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"
index a979a2d..d99e57f 100644 (file)
@@ -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"
index 6b16982..b46a34d 100644 (file)
@@ -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"
index aaff730..b66dc78 100644 (file)
@@ -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"
index ded3c97..fa9135d 100644 (file)
@@ -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"
index c465345..a56369b 100644 (file)
@@ -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"
index d7310cc..a6b268f 100644 (file)
 
 // views::iota
 
-#include <ranges>
 #include <cassert>
 #include <concepts>
+#include <ranges>
+#include <type_traits>
 
 #include "test_macros.h"
 #include "types.h"
index 42a83f8..9698ba5 100644 (file)
@@ -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 {};
index beee526..85b78c4 100644 (file)
@@ -18,8 +18,9 @@
 //   general = fixed | scientific
 // };
 
-#include <charconv>
 #include <cassert>
+#include <charconv>
+#include <type_traits>
 
 #include "test_macros.h"
 
index 327765b..522b967 100644 (file)
@@ -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"
 
index 98429aa..4a352c7 100644 (file)
@@ -19,6 +19,7 @@
 #include <cstdio> // for printf
 #include <string>
 #include <system_error>
+#include <type_traits>
 #include <vector>
 
 #include "assert_macros.h"
index 66213c6..f71f61f 100644 (file)
@@ -27,6 +27,7 @@
 #include <cstring>
 #include <limits>
 #include <new>
+#include <type_traits>
 #include <utility>
 
 DEMANGLE_NAMESPACE_BEGIN