[libcxx-commits] [libcxx] 89b356f - [libc++] Granularize <concept> includes

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Sat Nov 5 12:59:36 PDT 2022


Author: Nikolas Klauser
Date: 2022-11-05T20:59:29+01:00
New Revision: 89b356f05ab7aa3d96fc7b68aece6e7a5bdb0db5

URL: https://github.com/llvm/llvm-project/commit/89b356f05ab7aa3d96fc7b68aece6e7a5bdb0db5
DIFF: https://github.com/llvm/llvm-project/commit/89b356f05ab7aa3d96fc7b68aece6e7a5bdb0db5.diff

LOG: [libc++] Granularize <concept> includes

Reviewed By: ldionne, #libc

Spies: libcxx-commits

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

Added: 
    

Modified: 
    libcxx/include/__format/buffer.h
    libcxx/include/__format/format_context.h
    libcxx/include/__format/parser_std_format_spec.h
    libcxx/include/__functional/ranges_operations.h
    libcxx/include/__iterator/advance.h
    libcxx/include/__iterator/common_iterator.h
    libcxx/include/__iterator/concepts.h
    libcxx/include/__iterator/counted_iterator.h
    libcxx/include/__iterator/incrementable_traits.h
    libcxx/include/__iterator/iter_swap.h
    libcxx/include/__iterator/iterator_traits.h
    libcxx/include/__iterator/readable_traits.h
    libcxx/include/__memory/concepts.h
    libcxx/include/__ranges/common_view.h
    libcxx/include/__ranges/copyable_box.h
    libcxx/include/__ranges/drop_view.h
    libcxx/include/__ranges/enable_view.h
    libcxx/include/__ranges/filter_view.h
    libcxx/include/__ranges/non_propagating_cache.h
    libcxx/include/__ranges/range_adaptor.h
    libcxx/include/__ranges/ref_view.h
    libcxx/include/__ranges/single_view.h
    libcxx/include/__ranges/size.h
    libcxx/include/__ranges/take_view.h
    libcxx/include/algorithm
    libcxx/include/any
    libcxx/include/array
    libcxx/include/bitset
    libcxx/include/charconv
    libcxx/include/chrono
    libcxx/include/codecvt
    libcxx/include/condition_variable
    libcxx/include/deque
    libcxx/include/ext/hash_map
    libcxx/include/ext/hash_set
    libcxx/include/filesystem
    libcxx/include/forward_list
    libcxx/include/fstream
    libcxx/include/functional
    libcxx/include/ios
    libcxx/include/istream
    libcxx/include/list
    libcxx/include/locale
    libcxx/include/map
    libcxx/include/memory
    libcxx/include/mutex
    libcxx/include/numbers
    libcxx/include/numeric
    libcxx/include/queue
    libcxx/include/random
    libcxx/include/regex
    libcxx/include/set
    libcxx/include/span
    libcxx/include/stack
    libcxx/include/string
    libcxx/include/string_view
    libcxx/include/unordered_map
    libcxx/include/unordered_set
    libcxx/include/valarray
    libcxx/include/vector
    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/algorithms/alg.sorting/alg.clamp/ranges.clamp.pass.cpp

Removed: 
    


################################################################################
diff  --git a/libcxx/include/__format/buffer.h b/libcxx/include/__format/buffer.h
index 4f7577eb06055..60c1f8093c61d 100644
--- a/libcxx/include/__format/buffer.h
+++ b/libcxx/include/__format/buffer.h
@@ -17,6 +17,7 @@
 #include <__algorithm/ranges_copy_n.h>
 #include <__algorithm/transform.h>
 #include <__algorithm/unwrap_iter.h>
+#include <__concepts/same_as.h>
 #include <__config>
 #include <__format/concepts.h>
 #include <__format/enable_insertable.h>
@@ -27,7 +28,6 @@
 #include <__iterator/iterator_traits.h>
 #include <__iterator/wrap_iter.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <cstddef>
 #include <string_view>
 #include <type_traits>

diff  --git a/libcxx/include/__format/format_context.h b/libcxx/include/__format/format_context.h
index 19468de45ca37..b3c0b34427852 100644
--- a/libcxx/include/__format/format_context.h
+++ b/libcxx/include/__format/format_context.h
@@ -18,7 +18,6 @@
 #include <__iterator/back_insert_iterator.h>
 #include <__iterator/concepts.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <cstddef>
 
 #ifndef _LIBCPP_HAS_NO_LOCALIZATION

diff  --git a/libcxx/include/__format/parser_std_format_spec.h b/libcxx/include/__format/parser_std_format_spec.h
index bd5b6ae2a4e54..05f51f7cf9b94 100644
--- a/libcxx/include/__format/parser_std_format_spec.h
+++ b/libcxx/include/__format/parser_std_format_spec.h
@@ -19,6 +19,7 @@
 #include <__algorithm/find_if.h>
 #include <__algorithm/min.h>
 #include <__assert>
+#include <__concepts/same_as.h>
 #include <__config>
 #include <__debug>
 #include <__format/format_arg.h>
@@ -28,7 +29,6 @@
 #include <__format/unicode.h>
 #include <__variant/monostate.h>
 #include <bit>
-#include <concepts>
 #include <cstdint>
 #include <string_view>
 #include <type_traits>

diff  --git a/libcxx/include/__functional/ranges_operations.h b/libcxx/include/__functional/ranges_operations.h
index 3f63a86731e0e..87081dd56a05c 100644
--- a/libcxx/include/__functional/ranges_operations.h
+++ b/libcxx/include/__functional/ranges_operations.h
@@ -10,9 +10,10 @@
 #ifndef _LIBCPP___FUNCTIONAL_RANGES_OPERATIONS_H
 #define _LIBCPP___FUNCTIONAL_RANGES_OPERATIONS_H
 
+#include <__concepts/equality_comparable.h>
+#include <__concepts/totally_ordered.h>
 #include <__config>
 #include <__utility/forward.h>
-#include <concepts>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
 #  pragma GCC system_header

diff  --git a/libcxx/include/__iterator/advance.h b/libcxx/include/__iterator/advance.h
index e26ad4b7317cf..cd6353e65e86a 100644
--- a/libcxx/include/__iterator/advance.h
+++ b/libcxx/include/__iterator/advance.h
@@ -11,6 +11,8 @@
 #define _LIBCPP___ITERATOR_ADVANCE_H
 
 #include <__assert>
+#include <__concepts/assignable.h>
+#include <__concepts/same_as.h>
 #include <__config>
 #include <__iterator/concepts.h>
 #include <__iterator/incrementable_traits.h>
@@ -18,7 +20,6 @@
 #include <__utility/convert_to_integral.h>
 #include <__utility/move.h>
 #include <__utility/unreachable.h>
-#include <concepts>
 #include <cstdlib>
 #include <limits>
 #include <type_traits>

diff  --git a/libcxx/include/__iterator/common_iterator.h b/libcxx/include/__iterator/common_iterator.h
index 4de57c5d67c08..a1985c9287534 100644
--- a/libcxx/include/__iterator/common_iterator.h
+++ b/libcxx/include/__iterator/common_iterator.h
@@ -11,6 +11,13 @@
 #define _LIBCPP___ITERATOR_COMMON_ITERATOR_H
 
 #include <__assert>
+#include <__concepts/assignable.h>
+#include <__concepts/constructible.h>
+#include <__concepts/convertible_to.h>
+#include <__concepts/copyable.h>
+#include <__concepts/derived_from.h>
+#include <__concepts/equality_comparable.h>
+#include <__concepts/same_as.h>
 #include <__config>
 #include <__iterator/concepts.h>
 #include <__iterator/incrementable_traits.h>
@@ -18,7 +25,6 @@
 #include <__iterator/iter_swap.h>
 #include <__iterator/iterator_traits.h>
 #include <__iterator/readable_traits.h>
-#include <concepts>
 #include <variant>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__iterator/concepts.h b/libcxx/include/__iterator/concepts.h
index bd68889333ce6..246f84c7cf53d 100644
--- a/libcxx/include/__iterator/concepts.h
+++ b/libcxx/include/__iterator/concepts.h
@@ -10,6 +10,21 @@
 #ifndef _LIBCPP___ITERATOR_CONCEPTS_H
 #define _LIBCPP___ITERATOR_CONCEPTS_H
 
+#include <__concepts/arithmetic.h>
+#include <__concepts/assignable.h>
+#include <__concepts/common_reference_with.h>
+#include <__concepts/constructible.h>
+#include <__concepts/copyable.h>
+#include <__concepts/derived_from.h>
+#include <__concepts/equality_comparable.h>
+#include <__concepts/invocable.h>
+#include <__concepts/movable.h>
+#include <__concepts/predicate.h>
+#include <__concepts/regular.h>
+#include <__concepts/relation.h>
+#include <__concepts/same_as.h>
+#include <__concepts/semiregular.h>
+#include <__concepts/totally_ordered.h>
 #include <__config>
 #include <__iterator/incrementable_traits.h>
 #include <__iterator/iter_move.h>
@@ -17,7 +32,6 @@
 #include <__iterator/readable_traits.h>
 #include <__memory/pointer_traits.h>
 #include <__utility/forward.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__iterator/counted_iterator.h b/libcxx/include/__iterator/counted_iterator.h
index aab2c51f33a84..8303013ef4e12 100644
--- a/libcxx/include/__iterator/counted_iterator.h
+++ b/libcxx/include/__iterator/counted_iterator.h
@@ -10,6 +10,11 @@
 #define _LIBCPP___ITERATOR_COUNTED_ITERATOR_H
 
 #include <__assert>
+#include <__concepts/assignable.h>
+#include <__concepts/common_with.h>
+#include <__concepts/constructible.h>
+#include <__concepts/convertible_to.h>
+#include <__concepts/same_as.h>
 #include <__config>
 #include <__iterator/concepts.h>
 #include <__iterator/default_sentinel.h>
@@ -21,7 +26,6 @@
 #include <__memory/pointer_traits.h>
 #include <__utility/move.h>
 #include <compare>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__iterator/incrementable_traits.h b/libcxx/include/__iterator/incrementable_traits.h
index e6a5ed720f9fa..6f966ec4c7484 100644
--- a/libcxx/include/__iterator/incrementable_traits.h
+++ b/libcxx/include/__iterator/incrementable_traits.h
@@ -10,9 +10,9 @@
 #ifndef _LIBCPP___ITERATOR_INCREMENTABLE_TRAITS_H
 #define _LIBCPP___ITERATOR_INCREMENTABLE_TRAITS_H
 
+#include <__concepts/arithmetic.h>
 #include <__config>
 #include <__type_traits/is_primary_template.h>
-#include <concepts>
 #include <cstddef>
 #include <type_traits>
 

diff  --git a/libcxx/include/__iterator/iter_swap.h b/libcxx/include/__iterator/iter_swap.h
index 9e06464c36904..40272e2b0ad5f 100644
--- a/libcxx/include/__iterator/iter_swap.h
+++ b/libcxx/include/__iterator/iter_swap.h
@@ -9,6 +9,8 @@
 #ifndef _LIBCPP___ITERATOR_ITER_SWAP_H
 #define _LIBCPP___ITERATOR_ITER_SWAP_H
 
+#include <__concepts/class_or_enum.h>
+#include <__concepts/swappable.h>
 #include <__config>
 #include <__iterator/concepts.h>
 #include <__iterator/iter_move.h>
@@ -16,7 +18,6 @@
 #include <__iterator/readable_traits.h>
 #include <__utility/forward.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__iterator/iterator_traits.h b/libcxx/include/__iterator/iterator_traits.h
index 918c7138ec187..b4cf07233296d 100644
--- a/libcxx/include/__iterator/iterator_traits.h
+++ b/libcxx/include/__iterator/iterator_traits.h
@@ -10,11 +10,17 @@
 #ifndef _LIBCPP___ITERATOR_ITERATOR_TRAITS_H
 #define _LIBCPP___ITERATOR_ITERATOR_TRAITS_H
 
+#include <__concepts/arithmetic.h>
+#include <__concepts/constructible.h>
+#include <__concepts/convertible_to.h>
+#include <__concepts/copyable.h>
+#include <__concepts/equality_comparable.h>
+#include <__concepts/same_as.h>
+#include <__concepts/totally_ordered.h>
 #include <__config>
 #include <__fwd/pair.h>
 #include <__iterator/incrementable_traits.h>
 #include <__iterator/readable_traits.h>
-#include <concepts>
 #include <cstddef>
 #include <type_traits>
 

diff  --git a/libcxx/include/__iterator/readable_traits.h b/libcxx/include/__iterator/readable_traits.h
index 500b46ac145f6..dc818d8a230e7 100644
--- a/libcxx/include/__iterator/readable_traits.h
+++ b/libcxx/include/__iterator/readable_traits.h
@@ -10,8 +10,8 @@
 #ifndef _LIBCPP___ITERATOR_READABLE_TRAITS_H
 #define _LIBCPP___ITERATOR_READABLE_TRAITS_H
 
+#include <__concepts/same_as.h>
 #include <__config>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__memory/concepts.h b/libcxx/include/__memory/concepts.h
index bc4cff7719e4e..76d2a2e729d61 100644
--- a/libcxx/include/__memory/concepts.h
+++ b/libcxx/include/__memory/concepts.h
@@ -10,13 +10,13 @@
 #ifndef _LIBCPP___MEMORY_CONCEPTS_H
 #define _LIBCPP___MEMORY_CONCEPTS_H
 
+#include <__concepts/same_as.h>
 #include <__config>
 #include <__iterator/concepts.h>
 #include <__iterator/iterator_traits.h>
 #include <__iterator/readable_traits.h>
 #include <__ranges/access.h>
 #include <__ranges/concepts.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__ranges/common_view.h b/libcxx/include/__ranges/common_view.h
index ec0c7632d9297..aad0d2f49e78d 100644
--- a/libcxx/include/__ranges/common_view.h
+++ b/libcxx/include/__ranges/common_view.h
@@ -9,6 +9,8 @@
 #ifndef _LIBCPP___RANGES_COMMON_VIEW_H
 #define _LIBCPP___RANGES_COMMON_VIEW_H
 
+#include <__concepts/constructible.h>
+#include <__concepts/copyable.h>
 #include <__config>
 #include <__iterator/common_iterator.h>
 #include <__iterator/iterator_traits.h>
@@ -21,7 +23,6 @@
 #include <__ranges/view_interface.h>
 #include <__utility/forward.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__ranges/copyable_box.h b/libcxx/include/__ranges/copyable_box.h
index 9b708d942c20f..fb3d6e409c8f2 100644
--- a/libcxx/include/__ranges/copyable_box.h
+++ b/libcxx/include/__ranges/copyable_box.h
@@ -10,11 +10,13 @@
 #ifndef _LIBCPP___RANGES_COPYABLE_BOX_H
 #define _LIBCPP___RANGES_COPYABLE_BOX_H
 
+#include <__concepts/constructible.h>
+#include <__concepts/copyable.h>
+#include <__concepts/movable.h>
 #include <__config>
 #include <__memory/addressof.h>
 #include <__memory/construct_at.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <optional>
 #include <type_traits>
 

diff  --git a/libcxx/include/__ranges/drop_view.h b/libcxx/include/__ranges/drop_view.h
index 9e0fe16a55a40..3131f4b43d41d 100644
--- a/libcxx/include/__ranges/drop_view.h
+++ b/libcxx/include/__ranges/drop_view.h
@@ -11,6 +11,8 @@
 
 #include <__algorithm/min.h>
 #include <__assert>
+#include <__concepts/constructible.h>
+#include <__concepts/convertible_to.h>
 #include <__config>
 #include <__functional/bind_back.h>
 #include <__fwd/span.h>
@@ -33,7 +35,6 @@
 #include <__utility/auto_cast.h>
 #include <__utility/forward.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__ranges/enable_view.h b/libcxx/include/__ranges/enable_view.h
index a1e5721404cdd..2dc4752ff428f 100644
--- a/libcxx/include/__ranges/enable_view.h
+++ b/libcxx/include/__ranges/enable_view.h
@@ -10,8 +10,9 @@
 #ifndef _LIBCPP___RANGES_ENABLE_VIEW_H
 #define _LIBCPP___RANGES_ENABLE_VIEW_H
 
+#include <__concepts/derived_from.h>
+#include <__concepts/same_as.h>
 #include <__config>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__ranges/filter_view.h b/libcxx/include/__ranges/filter_view.h
index 3e50c17c64050..74c07d9d36691 100644
--- a/libcxx/include/__ranges/filter_view.h
+++ b/libcxx/include/__ranges/filter_view.h
@@ -10,6 +10,10 @@
 #define _LIBCPP___RANGES_FILTER_VIEW_H
 
 #include <__algorithm/ranges_find_if.h>
+#include <__concepts/constructible.h>
+#include <__concepts/copyable.h>
+#include <__concepts/derived_from.h>
+#include <__concepts/equality_comparable.h>
 #include <__config>
 #include <__debug>
 #include <__functional/bind_back.h>
@@ -30,7 +34,6 @@
 #include <__utility/forward.h>
 #include <__utility/in_place.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__ranges/non_propagating_cache.h b/libcxx/include/__ranges/non_propagating_cache.h
index b565af69e609d..76ca73dd03742 100644
--- a/libcxx/include/__ranges/non_propagating_cache.h
+++ b/libcxx/include/__ranges/non_propagating_cache.h
@@ -14,7 +14,6 @@
 #include <__iterator/iterator_traits.h> // iter_reference_t
 #include <__memory/addressof.h>
 #include <__utility/forward.h>
-#include <concepts>                     // constructible_from
 #include <optional>
 #include <type_traits>
 

diff  --git a/libcxx/include/__ranges/range_adaptor.h b/libcxx/include/__ranges/range_adaptor.h
index c287a193a57db..37e48179e378b 100644
--- a/libcxx/include/__ranges/range_adaptor.h
+++ b/libcxx/include/__ranges/range_adaptor.h
@@ -10,13 +10,16 @@
 #ifndef _LIBCPP___RANGES_RANGE_ADAPTOR_H
 #define _LIBCPP___RANGES_RANGE_ADAPTOR_H
 
+#include <__concepts/constructible.h>
+#include <__concepts/derived_from.h>
+#include <__concepts/invocable.h>
+#include <__concepts/same_as.h>
 #include <__config>
 #include <__functional/compose.h>
 #include <__functional/invoke.h>
 #include <__ranges/concepts.h>
 #include <__utility/forward.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__ranges/ref_view.h b/libcxx/include/__ranges/ref_view.h
index 7d1ae74ca2a50..bf94889f62bf7 100644
--- a/libcxx/include/__ranges/ref_view.h
+++ b/libcxx/include/__ranges/ref_view.h
@@ -9,6 +9,8 @@
 #ifndef _LIBCPP___RANGES_REF_VIEW_H
 #define _LIBCPP___RANGES_REF_VIEW_H
 
+#include <__concepts/convertible_to.h>
+#include <__concepts/
diff erent_from.h>
 #include <__config>
 #include <__iterator/concepts.h>
 #include <__iterator/incrementable_traits.h>
@@ -22,7 +24,6 @@
 #include <__ranges/size.h>
 #include <__ranges/view_interface.h>
 #include <__utility/forward.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__ranges/single_view.h b/libcxx/include/__ranges/single_view.h
index 38726c225e57b..e15a0c3199597 100644
--- a/libcxx/include/__ranges/single_view.h
+++ b/libcxx/include/__ranges/single_view.h
@@ -9,6 +9,7 @@
 #ifndef _LIBCPP___RANGES_SINGLE_VIEW_H
 #define _LIBCPP___RANGES_SINGLE_VIEW_H
 
+#include <__concepts/constructible.h>
 #include <__config>
 #include <__ranges/copyable_box.h>
 #include <__ranges/range_adaptor.h>
@@ -16,7 +17,6 @@
 #include <__utility/forward.h>
 #include <__utility/in_place.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/__ranges/size.h b/libcxx/include/__ranges/size.h
index 0e6d295651a3c..e4c82222f56ee 100644
--- a/libcxx/include/__ranges/size.h
+++ b/libcxx/include/__ranges/size.h
@@ -9,13 +9,13 @@
 #ifndef _LIBCPP___RANGES_SIZE_H
 #define _LIBCPP___RANGES_SIZE_H
 
+#include <__concepts/arithmetic.h>
 #include <__concepts/class_or_enum.h>
 #include <__config>
 #include <__iterator/concepts.h>
 #include <__iterator/iterator_traits.h>
 #include <__ranges/access.h>
 #include <__utility/auto_cast.h>
-#include <concepts>
 #include <cstddef>
 #include <type_traits>
 

diff  --git a/libcxx/include/__ranges/take_view.h b/libcxx/include/__ranges/take_view.h
index 3fb9499c0118a..2c98a0bed690b 100644
--- a/libcxx/include/__ranges/take_view.h
+++ b/libcxx/include/__ranges/take_view.h
@@ -11,6 +11,8 @@
 
 #include <__algorithm/min.h>
 #include <__algorithm/ranges_min.h>
+#include <__concepts/constructible.h>
+#include <__concepts/convertible_to.h>
 #include <__config>
 #include <__functional/bind_back.h>
 #include <__fwd/span.h>
@@ -34,7 +36,6 @@
 #include <__utility/auto_cast.h>
 #include <__utility/forward.h>
 #include <__utility/move.h>
-#include <concepts>
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/algorithm b/libcxx/include/algorithm
index 9b21e7bbf1936..e27872285f15e 100644
--- a/libcxx/include/algorithm
+++ b/libcxx/include/algorithm
@@ -1917,6 +1917,7 @@ template <class BidirectionalIterator, class Compare>
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <atomic>
+#  include <concepts>
 #  include <iterator>
 #  include <memory>
 #  include <stdexcept>

diff  --git a/libcxx/include/any b/libcxx/include/any
index dc26a20e6ae22..763e3a1815d08 100644
--- a/libcxx/include/any
+++ b/libcxx/include/any
@@ -699,6 +699,7 @@ _LIBCPP_END_NAMESPACE_STD
 #endif
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <iterator>
 #  include <memory>
 #  include <variant>

diff  --git a/libcxx/include/array b/libcxx/include/array
index af199ca2e7199..cb1a6d1202582 100644
--- a/libcxx/include/array
+++ b/libcxx/include/array
@@ -534,6 +534,7 @@ _LIBCPP_END_NAMESPACE_STD
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <concepts>
 #  include <iterator>
 #  include <utility>
 #endif

diff  --git a/libcxx/include/bitset b/libcxx/include/bitset
index 72b678b5ffdda..c260f9f592c01 100644
--- a/libcxx/include/bitset
+++ b/libcxx/include/bitset
@@ -1152,4 +1152,8 @@ _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 #endif // _LIBCPP_BITSET

diff  --git a/libcxx/include/charconv b/libcxx/include/charconv
index b8664a456b6b9..d2031eac8ba9b 100644
--- a/libcxx/include/charconv
+++ b/libcxx/include/charconv
@@ -832,6 +832,7 @@ _LIBCPP_END_NAMESPACE_STD
 _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <iosfwd>
 #endif
 

diff  --git a/libcxx/include/chrono b/libcxx/include/chrono
index f34919040950b..05e4b6d126ebf 100644
--- a/libcxx/include/chrono
+++ b/libcxx/include/chrono
@@ -728,4 +728,8 @@ constexpr chrono::year                                  operator ""y(unsigned lo
 #  pragma GCC system_header
 #endif
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 #endif // _LIBCPP_CHRONO

diff  --git a/libcxx/include/codecvt b/libcxx/include/codecvt
index a724477b15548..c6445b115cb73 100644
--- a/libcxx/include/codecvt
+++ b/libcxx/include/codecvt
@@ -553,4 +553,8 @@ _LIBCPP_SUPPRESS_DEPRECATED_POP
 
 _LIBCPP_END_NAMESPACE_STD
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 #endif // _LIBCPP_CODECVT

diff  --git a/libcxx/include/condition_variable b/libcxx/include/condition_variable
index 038f0ba2257d7..6b4d506939e16 100644
--- a/libcxx/include/condition_variable
+++ b/libcxx/include/condition_variable
@@ -268,4 +268,8 @@ _LIBCPP_END_NAMESPACE_STD
 
 #endif // !_LIBCPP_HAS_NO_THREADS
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 #endif // _LIBCPP_CONDITION_VARIABLE

diff  --git a/libcxx/include/deque b/libcxx/include/deque
index b6e092b396370..45e1a68d3a13f 100644
--- a/libcxx/include/deque
+++ b/libcxx/include/deque
@@ -2943,6 +2943,7 @@ _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map
index 48186aed0b6a6..3ad4b166865af 100644
--- a/libcxx/include/ext/hash_map
+++ b/libcxx/include/ext/hash_map
@@ -983,6 +983,7 @@ operator!=(const hash_multimap<_Key, _Tp, _Hash, _Pred, _Alloc>& __x,
 } // namespace __gnu_cxx
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <iterator>
 #endif
 

diff  --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set
index 68b449d6b867a..dc8b786453842 100644
--- a/libcxx/include/ext/hash_set
+++ b/libcxx/include/ext/hash_set
@@ -663,6 +663,7 @@ operator!=(const hash_multiset<_Value, _Hash, _Pred, _Alloc>& __x,
 } // namespace __gnu_cxx
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <iterator>
 #endif
 

diff  --git a/libcxx/include/filesystem b/libcxx/include/filesystem
index 1e7efd248aa18..98d4bb9261bcc 100644
--- a/libcxx/include/filesystem
+++ b/libcxx/include/filesystem
@@ -461,4 +461,8 @@ inline constexpr bool std::ranges::enable_view<std::filesystem::recursive_direct
 #  pragma GCC system_header
 #endif
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 #endif // _LIBCPP_FILESYSTEM

diff  --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index 1f817ae8927fd..4ef6f88ef2f4c 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -1792,6 +1792,7 @@ _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/fstream b/libcxx/include/fstream
index 95f345fae4d78..1d2cb79b26b24 100644
--- a/libcxx/include/fstream
+++ b/libcxx/include/fstream
@@ -1744,4 +1744,8 @@ _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 #endif // _LIBCPP_FSTREAM

diff  --git a/libcxx/include/functional b/libcxx/include/functional
index 4c4e02dd702bc..8589d3a9d6a9c 100644
--- a/libcxx/include/functional
+++ b/libcxx/include/functional
@@ -531,7 +531,6 @@ POLICY:  For non-variadic implementations, the number of arguments is limited
 #include <__functional/unary_negate.h>
 #include <__functional/unwrap_ref.h>
 #include <__utility/forward.h>
-#include <concepts>
 #include <exception>
 #include <memory> // TODO: find out why removing this breaks the modules build
 #include <type_traits>
@@ -543,6 +542,7 @@ POLICY:  For non-variadic implementations, the number of arguments is limited
 #endif
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <tuple>
 #  include <utility>
 #endif

diff  --git a/libcxx/include/ios b/libcxx/include/ios
index 6e8360f4ab565..ac4637bce1d57 100644
--- a/libcxx/include/ios
+++ b/libcxx/include/ios
@@ -1038,4 +1038,8 @@ defaultfloat(ios_base& __str)
 
 _LIBCPP_END_NAMESPACE_STD
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 #endif // _LIBCPP_IOS

diff  --git a/libcxx/include/istream b/libcxx/include/istream
index 403b29c29e9e3..1c9adcc0c6297 100644
--- a/libcxx/include/istream
+++ b/libcxx/include/istream
@@ -1637,6 +1637,10 @@ extern template class _LIBCPP_EXTERN_TEMPLATE_TYPE_VIS basic_iostream<char>;
 
 _LIBCPP_END_NAMESPACE_STD
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 _LIBCPP_POP_MACROS
 
 #endif // _LIBCPP_ISTREAM

diff  --git a/libcxx/include/list b/libcxx/include/list
index d3c47bb1d6155..de2693e79aff5 100644
--- a/libcxx/include/list
+++ b/libcxx/include/list
@@ -2375,6 +2375,7 @@ _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/locale b/libcxx/include/locale
index c9ec7c36f5820..fd31f0d87672f 100644
--- a/libcxx/include/locale
+++ b/libcxx/include/locale
@@ -4353,6 +4353,7 @@ _LIBCPP_END_NAMESPACE_STD
 _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <cstdarg>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/map b/libcxx/include/map
index 2d55b69dc9267..9cf47b245a02a 100644
--- a/libcxx/include/map
+++ b/libcxx/include/map
@@ -2352,6 +2352,7 @@ _LIBCPP_END_NAMESPACE_STD
 #endif
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #  include <utility>

diff  --git a/libcxx/include/memory b/libcxx/include/memory
index 8694cf6994a7c..48e808ef54cb1 100644
--- a/libcxx/include/memory
+++ b/libcxx/include/memory
@@ -900,6 +900,7 @@ template<size_t N, class T>
 #endif
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <cstddef>
 #  include <cstdint>
 #  include <cstring>

diff  --git a/libcxx/include/mutex b/libcxx/include/mutex
index d0b53ba75d834..d11ffb20eff93 100644
--- a/libcxx/include/mutex
+++ b/libcxx/include/mutex
@@ -704,6 +704,7 @@ _LIBCPP_END_NAMESPACE_STD
 _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <functional>
 #endif
 

diff  --git a/libcxx/include/numbers b/libcxx/include/numbers
index 3c8527dfc2de1..1d9b6b0e5fb35 100644
--- a/libcxx/include/numbers
+++ b/libcxx/include/numbers
@@ -59,8 +59,8 @@ namespace std::numbers {
 */
 
 #include <__assert> // all public C++ headers provide the assertion handler
+#include <__concepts/arithmetic.h>
 #include <__config>
-#include <concepts>
 #include <type_traits>
 #include <version>
 
@@ -131,4 +131,8 @@ _LIBCPP_END_NAMESPACE_STD
 
 #endif // _LIBCPP_STD_VER > 17
 
+#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
+#endif
+
 #endif // _LIBCPP_NUMBERS

diff  --git a/libcxx/include/numeric b/libcxx/include/numeric
index 64cd45b430828..2fb6f9ed01929 100644
--- a/libcxx/include/numeric
+++ b/libcxx/include/numeric
@@ -172,6 +172,7 @@ template<class T>
 #endif
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/queue b/libcxx/include/queue
index d23f2385eda34..c58da5ec6ee3c 100644
--- a/libcxx/include/queue
+++ b/libcxx/include/queue
@@ -959,6 +959,7 @@ struct _LIBCPP_TEMPLATE_VIS uses_allocator<priority_queue<_Tp, _Container, _Comp
 _LIBCPP_END_NAMESPACE_STD
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <functional>
 #endif
 

diff  --git a/libcxx/include/random b/libcxx/include/random
index ecab84a573550..f8077f10c17f3 100644
--- a/libcxx/include/random
+++ b/libcxx/include/random
@@ -1730,6 +1730,7 @@ class piecewise_linear_distribution
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
 #  include <cmath>
+#  include <concepts>
 #  include <cstddef>
 #  include <cstdint>
 #  include <iosfwd>

diff  --git a/libcxx/include/regex b/libcxx/include/regex
index 91a10feef6b5d..8118c944cae05 100644
--- a/libcxx/include/regex
+++ b/libcxx/include/regex
@@ -6858,6 +6858,7 @@ _LIBCPP_END_NAMESPACE_STD
 _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <iterator>
 #  include <utility>
 #endif

diff  --git a/libcxx/include/set b/libcxx/include/set
index 3933ef22c221e..1154c4e9509c7 100644
--- a/libcxx/include/set
+++ b/libcxx/include/set
@@ -1597,6 +1597,7 @@ _LIBCPP_END_NAMESPACE_STD
 #endif
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/span b/libcxx/include/span
index 337a67434ec4c..8afd1942c1f31 100644
--- a/libcxx/include/span
+++ b/libcxx/include/span
@@ -590,6 +590,7 @@ _LIBCPP_END_NAMESPACE_STD
 _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/stack b/libcxx/include/stack
index 7b08d57da152b..2abbcd025c4aa 100644
--- a/libcxx/include/stack
+++ b/libcxx/include/stack
@@ -362,6 +362,7 @@ struct _LIBCPP_TEMPLATE_VIS uses_allocator<stack<_Tp, _Container>, _Alloc>
 _LIBCPP_END_NAMESPACE_STD
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <functional>
 #endif
 

diff  --git a/libcxx/include/string b/libcxx/include/string
index 592c63466be74..6aee5a489a754 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -4613,6 +4613,7 @@ _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #  include <new>

diff  --git a/libcxx/include/string_view b/libcxx/include/string_view
index 2c4f306458c48..8f39cdcc23f62 100644
--- a/libcxx/include/string_view
+++ b/libcxx/include/string_view
@@ -1023,6 +1023,7 @@ _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map
index a727c36223e5e..cd0aea1205d52 100644
--- a/libcxx/include/unordered_map
+++ b/libcxx/include/unordered_map
@@ -2646,6 +2646,7 @@ _LIBCPP_END_NAMESPACE_STD
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
 #  include <bit>
+#  include <concepts>
 #  include <iterator>
 #endif
 

diff  --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set
index 4786a8a8c5f18..9a25510139428 100644
--- a/libcxx/include/unordered_set
+++ b/libcxx/include/unordered_set
@@ -1816,6 +1816,7 @@ _LIBCPP_END_NAMESPACE_STD
 #endif
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
+#  include <concepts>
 #  include <functional>
 #  include <iterator>
 #endif

diff  --git a/libcxx/include/valarray b/libcxx/include/valarray
index f28e471dfb3f9..6c33d0531cb88 100644
--- a/libcxx/include/valarray
+++ b/libcxx/include/valarray
@@ -4931,6 +4931,7 @@ _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <concepts>
 #  include <functional>
 #endif
 

diff  --git a/libcxx/include/vector b/libcxx/include/vector
index b5a97c66cf53a..8f9b8fb3d727b 100644
--- a/libcxx/include/vector
+++ b/libcxx/include/vector
@@ -3281,6 +3281,7 @@ _LIBCPP_POP_MACROS
 
 #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
 #  include <algorithm>
+#  include <concepts>
 #  include <typeinfo>
 #  include <utility>
 #endif

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx03.csv b/libcxx/test/libcxx/transitive_includes/cxx03.csv
index a7250cf841dba..6e5ce44423c71 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx03.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx03.csv
@@ -335,7 +335,6 @@ filesystem version
 format array
 format bit
 format charconv
-format concepts
 format cstddef
 format cstdint
 format cstdlib
@@ -650,7 +649,6 @@ random type_traits
 random vector
 random version
 ranges compare
-ranges concepts
 ranges cstddef
 ranges cstdlib
 ranges initializer_list

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx11.csv b/libcxx/test/libcxx/transitive_includes/cxx11.csv
index 97dff0bf62d4d..837e22b85df79 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx11.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx11.csv
@@ -335,7 +335,6 @@ filesystem version
 format array
 format bit
 format charconv
-format concepts
 format cstddef
 format cstdint
 format cstdlib
@@ -651,7 +650,6 @@ random type_traits
 random vector
 random version
 ranges compare
-ranges concepts
 ranges cstddef
 ranges cstdlib
 ranges initializer_list

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx14.csv b/libcxx/test/libcxx/transitive_includes/cxx14.csv
index e0935e85f1b7f..e1cbeeee647f0 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx14.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx14.csv
@@ -337,7 +337,6 @@ filesystem version
 format array
 format bit
 format charconv
-format concepts
 format cstddef
 format cstdint
 format cstdlib
@@ -653,7 +652,6 @@ random type_traits
 random vector
 random version
 ranges compare
-ranges concepts
 ranges cstddef
 ranges cstdlib
 ranges initializer_list

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx17.csv b/libcxx/test/libcxx/transitive_includes/cxx17.csv
index e0935e85f1b7f..e1cbeeee647f0 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx17.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx17.csv
@@ -337,7 +337,6 @@ filesystem version
 format array
 format bit
 format charconv
-format concepts
 format cstddef
 format cstdint
 format cstdlib
@@ -653,7 +652,6 @@ random type_traits
 random vector
 random version
 ranges compare
-ranges concepts
 ranges cstddef
 ranges cstdlib
 ranges initializer_list

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx20.csv b/libcxx/test/libcxx/transitive_includes/cxx20.csv
index 4589f7b98b2be..ead6b43f1bada 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx20.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx20.csv
@@ -349,7 +349,6 @@ filesystem version
 format array
 format bit
 format charconv
-format concepts
 format cstddef
 format cstdint
 format cstdlib
@@ -663,7 +662,6 @@ random type_traits
 random vector
 random version
 ranges compare
-ranges concepts
 ranges cstddef
 ranges cstdlib
 ranges initializer_list

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b.csv b/libcxx/test/libcxx/transitive_includes/cxx2b.csv
index e4e82d3cf4319..d896ed6cc26b8 100644
--- a/libcxx/test/libcxx/transitive_includes/cxx2b.csv
+++ b/libcxx/test/libcxx/transitive_includes/cxx2b.csv
@@ -1,6 +1,5 @@
 algorithm bit
 algorithm climits
-algorithm concepts
 algorithm cstddef
 algorithm cstdint
 algorithm cstdlib
@@ -12,7 +11,6 @@ algorithm new
 algorithm type_traits
 algorithm version
 any atomic
-any concepts
 any cstddef
 any cstdint
 any cstdlib
@@ -26,7 +24,6 @@ any type_traits
 any typeinfo
 any version
 array compare
-array concepts
 array cstddef
 array cstdlib
 array initializer_list
@@ -59,7 +56,6 @@ bit limits
 bit type_traits
 bit version
 bitset climits
-bitset concepts
 bitset cstddef
 bitset cstdint
 bitset cstdlib
@@ -75,7 +71,6 @@ bitset version
 ccomplex complex
 charconv cerrno
 charconv cmath
-charconv concepts
 charconv cstddef
 charconv cstdint
 charconv cstdlib
@@ -88,7 +83,6 @@ chrono bit
 chrono charconv
 chrono cmath
 chrono compare
-chrono concepts
 chrono cstddef
 chrono cstdint
 chrono cstdlib
@@ -111,7 +105,6 @@ cmath type_traits
 cmath version
 codecvt atomic
 codecvt cctype
-codecvt concepts
 codecvt cstddef
 codecvt cstdint
 codecvt cstdlib
@@ -142,7 +135,6 @@ concepts cstddef
 concepts type_traits
 concepts version
 condition_variable atomic
-condition_variable concepts
 condition_variable cstddef
 condition_variable cstdint
 condition_variable cstdlib
@@ -171,7 +163,6 @@ cwchar cwctype
 cwctype cctype
 deque atomic
 deque compare
-deque concepts
 deque cstddef
 deque cstdint
 deque cstdlib
@@ -248,7 +239,6 @@ experimental/vector experimental/memory_resource
 experimental/vector vector
 ext/hash_map algorithm
 ext/hash_map cmath
-ext/hash_map concepts
 ext/hash_map cstddef
 ext/hash_map cstdint
 ext/hash_map cstring
@@ -261,7 +251,6 @@ ext/hash_map string
 ext/hash_map type_traits
 ext/hash_set algorithm
 ext/hash_set cmath
-ext/hash_set concepts
 ext/hash_set cstddef
 ext/hash_set cstdint
 ext/hash_set cstring
@@ -273,7 +262,6 @@ ext/hash_set string
 ext/hash_set type_traits
 filesystem cerrno
 filesystem compare
-filesystem concepts
 filesystem cstddef
 filesystem cstdint
 filesystem cstdlib
@@ -292,7 +280,6 @@ filesystem version
 format array
 format bit
 format charconv
-format concepts
 format cstddef
 format cstdint
 format cstdlib
@@ -308,7 +295,6 @@ format type_traits
 format version
 forward_list atomic
 forward_list compare
-forward_list concepts
 forward_list cstddef
 forward_list cstdint
 forward_list cstdlib
@@ -324,7 +310,6 @@ forward_list typeinfo
 forward_list version
 fstream atomic
 fstream cctype
-fstream concepts
 fstream cstddef
 fstream cstdint
 fstream cstdio
@@ -345,7 +330,6 @@ fstream typeinfo
 fstream version
 functional array
 functional atomic
-functional concepts
 functional cstddef
 functional cstdint
 functional cstdlib
@@ -378,7 +362,6 @@ iomanip istream
 iomanip version
 ios atomic
 ios cctype
-ios concepts
 ios cstddef
 ios cstdint
 ios cstdlib
@@ -400,7 +383,6 @@ iostream istream
 iostream ostream
 iostream streambuf
 iostream version
-istream concepts
 istream cstddef
 istream iosfwd
 istream ostream
@@ -423,7 +405,6 @@ limits type_traits
 limits version
 list atomic
 list compare
-list concepts
 list cstddef
 list cstdint
 list cstdlib
@@ -439,7 +420,6 @@ list typeinfo
 list version
 locale atomic
 locale cctype
-locale concepts
 locale cstddef
 locale cstdint
 locale cstdio
@@ -459,7 +439,6 @@ locale type_traits
 locale typeinfo
 locale version
 map compare
-map concepts
 map cstddef
 map cstdlib
 map initializer_list
@@ -472,7 +451,6 @@ map type_traits
 map version
 memory atomic
 memory compare
-memory concepts
 memory cstddef
 memory cstdint
 memory cstdlib
@@ -495,7 +473,6 @@ memory_resource stdexcept
 memory_resource tuple
 memory_resource version
 mutex atomic
-mutex concepts
 mutex cstddef
 mutex cstdint
 mutex cstdlib
@@ -516,11 +493,9 @@ new cstdlib
 new exception
 new type_traits
 new version
-numbers concepts
 numbers type_traits
 numbers version
 numeric cmath
-numeric concepts
 numeric cstddef
 numeric limits
 numeric type_traits
@@ -547,7 +522,6 @@ ostream streambuf
 ostream type_traits
 ostream version
 queue compare
-queue concepts
 queue cstddef
 queue cstdlib
 queue deque
@@ -559,7 +533,6 @@ queue version
 random bit
 random climits
 random cmath
-random concepts
 random cstddef
 random cstdint
 random cstdlib
@@ -572,7 +545,6 @@ random type_traits
 random vector
 random version
 ranges compare
-ranges concepts
 ranges cstddef
 ranges cstdlib
 ranges initializer_list
@@ -593,7 +565,6 @@ ratio version
 regex atomic
 regex cctype
 regex compare
-regex concepts
 regex cstddef
 regex cstdint
 regex cstdlib
@@ -624,7 +595,6 @@ semaphore ratio
 semaphore type_traits
 semaphore version
 set compare
-set concepts
 set cstddef
 set cstdlib
 set initializer_list
@@ -643,7 +613,6 @@ shared_mutex system_error
 shared_mutex type_traits
 shared_mutex version
 span array
-span concepts
 span cstddef
 span initializer_list
 span limits
@@ -656,7 +625,6 @@ sstream string
 sstream type_traits
 sstream version
 stack compare
-stack concepts
 stack cstddef
 stack deque
 stack initializer_list
@@ -671,7 +639,6 @@ streambuf iosfwd
 streambuf version
 string climits
 string compare
-string concepts
 string cstddef
 string cstdint
 string cstdio
@@ -688,7 +655,6 @@ string tuple
 string type_traits
 string version
 string_view compare
-string_view concepts
 string_view cstddef
 string_view cstdint
 string_view cstdio
@@ -744,7 +710,6 @@ typeinfo exception
 typeinfo type_traits
 unordered_map cmath
 unordered_map compare
-unordered_map concepts
 unordered_map cstddef
 unordered_map cstdint
 unordered_map cstdlib
@@ -759,7 +724,6 @@ unordered_map type_traits
 unordered_map version
 unordered_set cmath
 unordered_set compare
-unordered_set concepts
 unordered_set cstddef
 unordered_set cstdint
 unordered_set cstdlib
@@ -780,7 +744,6 @@ utility limits
 utility type_traits
 utility version
 valarray cmath
-valarray concepts
 valarray cstddef
 valarray cstdlib
 valarray cstring
@@ -804,7 +767,6 @@ variant version
 vector atomic
 vector climits
 vector compare
-vector concepts
 vector cstddef
 vector cstdint
 vector cstdlib

diff  --git a/libcxx/test/std/algorithms/alg.sorting/alg.clamp/ranges.clamp.pass.cpp b/libcxx/test/std/algorithms/alg.sorting/alg.clamp/ranges.clamp.pass.cpp
index 553ffb9d4b487..9da52e2772a9e 100644
--- a/libcxx/test/std/algorithms/alg.sorting/alg.clamp/ranges.clamp.pass.cpp
+++ b/libcxx/test/std/algorithms/alg.sorting/alg.clamp/ranges.clamp.pass.cpp
@@ -20,6 +20,7 @@
 
 #include <algorithm>
 #include <cassert>
+#include <concepts>
 #include <functional>
 #include <utility>
 


        


More information about the libcxx-commits mailing list