[libcxx-commits] [libcxx] 028f1b0 - [libc++] Fix P1206R7 feature test macros (#90914)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sat May 4 09:23:53 PDT 2024
Author: krzysdz
Date: 2024-05-04T18:23:49+02:00
New Revision: 028f1b078193b9120ddb441808521b6bd6eaed0e
URL: https://github.com/llvm/llvm-project/commit/028f1b078193b9120ddb441808521b6bd6eaed0e
DIFF: https://github.com/llvm/llvm-project/commit/028f1b078193b9120ddb441808521b6bd6eaed0e.diff
LOG: [libc++] Fix P1206R7 feature test macros (#90914)
- Add missing `__cpp_lib_containers_ranges` feature test macro
- Constrain `__cpp_lib_ranges_to_container` to the `<ranges>` header,
since the standard does not list it in containers' headers
Ref:
-
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p1206r7.pdf#section.18
- https://eel.is/c++draft/support.limits#lib:__cpp_lib_containers_ranges
-
https://eel.is/c++draft/support.limits#lib:__cpp_lib_ranges_to_container
Added:
Modified:
libcxx/docs/FeatureTestMacroTable.rst
libcxx/include/version
libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
libcxx/utils/generate_feature_test_macro_components.py
Removed:
################################################################################
diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index 3197d2cd1b271c..1032a9c338f455 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -322,6 +322,8 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_typeinfo`` ``202106L``
---------------------------------------------------------- -----------------
+ ``__cpp_lib_containers_ranges`` ``202202L``
+ ---------------------------------------------------------- -----------------
``__cpp_lib_expected`` ``202211L``
---------------------------------------------------------- -----------------
``__cpp_lib_format_path`` *unimplemented*
diff --git a/libcxx/include/version b/libcxx/include/version
index 0ed77345baa71d..eb5fd5c8057843 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -79,6 +79,10 @@ __cpp_lib_constexpr_utility 201811L <utility>
__cpp_lib_constexpr_vector 201907L <vector>
__cpp_lib_constrained_equality 202403L <optional> <tuple> <utility>
<variant>
+__cpp_lib_containers_ranges 202202L <deque> <forward_list> <list>
+ <map> <queue> <set>
+ <stack> <string> <unordered_map>
+ <unordered_set> <vector>
__cpp_lib_copyable_function 202306L <functional>
__cpp_lib_coroutine 201902L <coroutine>
__cpp_lib_debugging 202311L <debugging>
@@ -184,10 +188,7 @@ __cpp_lib_ranges_join_with 202202L <ranges>
__cpp_lib_ranges_repeat 202207L <ranges>
__cpp_lib_ranges_slide 202202L <ranges>
__cpp_lib_ranges_starts_ends_with 202106L <algorithm>
-__cpp_lib_ranges_to_container 202202L <deque> <forward_list> <list>
- <map> <queue> <ranges>
- <set> <stack> <string>
- <unordered_map> <unordered_set> <vector>
+__cpp_lib_ranges_to_container 202202L <ranges>
__cpp_lib_ranges_zip 202110L <ranges> <tuple> <utility>
__cpp_lib_ratio 202306L <ratio>
__cpp_lib_raw_memory_algorithms 201606L <memory>
@@ -456,6 +457,7 @@ __cpp_lib_within_lifetime 202306L <type_traits>
# undef __cpp_lib_constexpr_memory
# define __cpp_lib_constexpr_memory 202202L
# define __cpp_lib_constexpr_typeinfo 202106L
+# define __cpp_lib_containers_ranges 202202L
# define __cpp_lib_expected 202211L
// # define __cpp_lib_format_path 202403L
# define __cpp_lib_format_ranges 202207L
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
index 720557f33e2a14..d0e4ac130c60eb 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
@@ -17,10 +17,10 @@
/* Constant Value
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_default_template_type_for_algorithm_values 202403L [C++26]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
*/
#include <deque>
@@ -32,6 +32,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -44,16 +48,16 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 14
# ifdef __cpp_lib_allocator_traits_is_always_equal
# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -66,10 +70,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 17
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -79,6 +79,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -94,10 +98,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 20
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -107,6 +107,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -125,10 +129,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -138,6 +138,13 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -156,13 +163,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
#elif TEST_STD_VER > 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -172,6 +172,13 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26"
@@ -199,12 +206,5 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
index 9305cf0c54b959..bcb606451b27f6 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
@@ -17,12 +17,12 @@
/* Constant Value
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_default_template_type_for_algorithm_values 202403L [C++26]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_incomplete_container_elements 201505L [C++17]
__cpp_lib_list_remove_return_type 201806L [C++20]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
*/
#include <forward_list>
@@ -34,6 +34,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -54,16 +58,16 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 14
# ifdef __cpp_lib_allocator_traits_is_always_equal
# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -84,10 +88,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 17
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -97,6 +97,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -123,10 +127,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 20
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -136,6 +136,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -168,10 +172,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -181,6 +181,13 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -213,13 +220,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
#elif TEST_STD_VER > 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -229,6 +229,13 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26"
@@ -270,12 +277,5 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
index 12225612b80d80..9cd3c3bc941c08 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
@@ -17,12 +17,12 @@
/* Constant Value
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_default_template_type_for_algorithm_values 202403L [C++26]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_incomplete_container_elements 201505L [C++17]
__cpp_lib_list_remove_return_type 201806L [C++20]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
*/
#include <list>
@@ -34,6 +34,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -54,16 +58,16 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 14
# ifdef __cpp_lib_allocator_traits_is_always_equal
# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -84,10 +88,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 17
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -97,6 +97,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -123,10 +127,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 20
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -136,6 +136,10 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -168,10 +172,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -181,6 +181,13 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -213,13 +220,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
#elif TEST_STD_VER > 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -229,6 +229,13 @@
# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26"
@@ -270,12 +277,5 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
index 23a2df95dca96e..4ffb72d1442e54 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
@@ -19,12 +19,12 @@
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
__cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_generic_associative_lookup 201304L [C++14]
__cpp_lib_map_try_emplace 201411L [C++17]
__cpp_lib_node_extract 201606L [C++17]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
__cpp_lib_tuple_like 202207L [C++23]
202311L [C++26]
*/
@@ -46,6 +46,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -66,10 +70,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should not be defined before c++23"
# endif
@@ -88,6 +88,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -111,10 +115,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should not be defined before c++23"
# endif
@@ -136,6 +136,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -168,10 +172,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should not be defined before c++23"
# endif
@@ -193,6 +193,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++20"
# endif
@@ -228,10 +232,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should not be defined before c++23"
# endif
@@ -262,6 +262,13 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++23"
# endif
@@ -297,13 +304,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should be defined in c++23"
@@ -352,6 +352,13 @@
# endif
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++26"
# endif
@@ -387,13 +394,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should be defined in c++26"
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
index fdedd27bd46bcc..5a5739ff5e7c76 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
@@ -17,7 +17,7 @@
/* Constant Value
__cpp_lib_adaptor_iterator_pair_constructor 202106L [C++23]
- __cpp_lib_ranges_to_container 202202L [C++23]
+ __cpp_lib_containers_ranges 202202L [C++23]
*/
#include <queue>
@@ -29,8 +29,8 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
# endif
#elif TEST_STD_VER == 14
@@ -39,8 +39,8 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
# endif
#elif TEST_STD_VER == 17
@@ -49,8 +49,8 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
# endif
#elif TEST_STD_VER == 20
@@ -59,8 +59,8 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
# endif
#elif TEST_STD_VER == 23
@@ -72,11 +72,11 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
# endif
#elif TEST_STD_VER > 23
@@ -88,11 +88,11 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
# endif
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
index 271df95b81496c..a733f17c3153c0 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
@@ -19,11 +19,11 @@
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
__cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_generic_associative_lookup 201304L [C++14]
__cpp_lib_node_extract 201606L [C++17]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
*/
#include <set>
@@ -43,6 +43,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -59,10 +63,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 14
# ifdef __cpp_lib_allocator_traits_is_always_equal
@@ -77,6 +77,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -96,10 +100,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 17
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -117,6 +117,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -142,10 +146,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 20
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -163,6 +163,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++20"
# endif
@@ -191,10 +195,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -221,6 +221,13 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++23"
# endif
@@ -249,13 +256,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
#elif TEST_STD_VER > 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -291,6 +291,13 @@
# endif
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++26"
# endif
@@ -319,12 +326,5 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
index cc5af8a4df609a..db51c4782b6ceb 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
@@ -17,7 +17,7 @@
/* Constant Value
__cpp_lib_adaptor_iterator_pair_constructor 202106L [C++23]
- __cpp_lib_ranges_to_container 202202L [C++23]
+ __cpp_lib_containers_ranges 202202L [C++23]
*/
#include <stack>
@@ -29,8 +29,8 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
# endif
#elif TEST_STD_VER == 14
@@ -39,8 +39,8 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
# endif
#elif TEST_STD_VER == 17
@@ -49,8 +49,8 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
# endif
#elif TEST_STD_VER == 20
@@ -59,8 +59,8 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
# endif
#elif TEST_STD_VER == 23
@@ -72,11 +72,11 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
# endif
#elif TEST_STD_VER > 23
@@ -88,11 +88,11 @@
# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
# endif
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
index 8d944a194faf42..16a9a0a28de635 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
@@ -19,10 +19,10 @@
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
__cpp_lib_char8_t 201907L [C++20]
__cpp_lib_constexpr_string 201907L [C++20]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_default_template_type_for_algorithm_values 202403L [C++26]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
__cpp_lib_starts_ends_with 201711L [C++20]
__cpp_lib_string_contains 202011L [C++23]
__cpp_lib_string_resize_and_overwrite 202110L [C++23]
@@ -49,6 +49,10 @@
# error "__cpp_lib_constexpr_string should not be defined before c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -61,10 +65,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_starts_ends_with
# error "__cpp_lib_starts_ends_with should not be defined before c++20"
# endif
@@ -103,6 +103,10 @@
# error "__cpp_lib_constexpr_string should not be defined before c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -115,10 +119,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_starts_ends_with
# error "__cpp_lib_starts_ends_with should not be defined before c++20"
# endif
@@ -163,6 +163,10 @@
# error "__cpp_lib_constexpr_string should not be defined before c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -178,10 +182,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_starts_ends_with
# error "__cpp_lib_starts_ends_with should not be defined before c++20"
# endif
@@ -241,6 +241,10 @@
# error "__cpp_lib_constexpr_string should have the value 201907L in c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -259,10 +263,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifndef __cpp_lib_starts_ends_with
# error "__cpp_lib_starts_ends_with should be defined in c++20"
# endif
@@ -325,6 +325,13 @@
# error "__cpp_lib_constexpr_string should have the value 201907L in c++23"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -343,13 +350,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
# ifndef __cpp_lib_starts_ends_with
# error "__cpp_lib_starts_ends_with should be defined in c++23"
# endif
@@ -427,6 +427,13 @@
# error "__cpp_lib_constexpr_string should have the value 201907L in c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26"
@@ -454,13 +461,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
# ifndef __cpp_lib_starts_ends_with
# error "__cpp_lib_starts_ends_with should be defined in c++26"
# endif
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
index 5f7f1805c509fd..83c12730a671dd 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
@@ -19,11 +19,11 @@
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
__cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_generic_unordered_lookup 201811L [C++20]
__cpp_lib_node_extract 201606L [C++17]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
__cpp_lib_tuple_like 202207L [C++23]
202311L [C++26]
__cpp_lib_unordered_map_try_emplace 201411L [C++17]
@@ -46,6 +46,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -62,10 +66,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should not be defined before c++23"
# endif
@@ -88,6 +88,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -104,10 +108,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should not be defined before c++23"
# endif
@@ -133,6 +133,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -155,10 +159,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should not be defined before c++23"
# endif
@@ -187,6 +187,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++20"
# endif
@@ -215,10 +219,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
# ifdef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should not be defined before c++23"
# endif
@@ -256,6 +256,13 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++23"
# endif
@@ -284,13 +291,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should be defined in c++23"
@@ -346,6 +346,13 @@
# endif
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++26"
# endif
@@ -374,13 +381,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_tuple_like
# error "__cpp_lib_tuple_like should be defined in c++26"
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
index a0947e995a28fc..4da49a45698d49 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
@@ -19,11 +19,11 @@
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
__cpp_lib_associative_heterogeneous_erasure 202110L [C++23]
__cpp_lib_associative_heterogeneous_insertion 202306L [C++26]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_generic_unordered_lookup 201811L [C++20]
__cpp_lib_node_extract 201606L [C++17]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
*/
#include <unordered_set>
@@ -43,6 +43,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -59,10 +63,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 14
# ifdef __cpp_lib_allocator_traits_is_always_equal
@@ -77,6 +77,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -93,10 +97,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 17
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -114,6 +114,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should not be defined before c++20"
# endif
@@ -136,10 +140,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 20
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -157,6 +157,10 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++20"
# endif
@@ -185,10 +189,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -215,6 +215,13 @@
# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++23"
# endif
@@ -243,13 +250,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
#elif TEST_STD_VER > 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -285,6 +285,13 @@
# endif
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# ifndef __cpp_lib_erase_if
# error "__cpp_lib_erase_if should be defined in c++26"
# endif
@@ -313,12 +320,5 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
index 3d0a956e6c8e78..0eef1e99221e75 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
@@ -18,11 +18,11 @@
/* Constant Value
__cpp_lib_allocator_traits_is_always_equal 201411L [C++17]
__cpp_lib_constexpr_vector 201907L [C++20]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_default_template_type_for_algorithm_values 202403L [C++26]
__cpp_lib_erase_if 202002L [C++20]
__cpp_lib_incomplete_container_elements 201505L [C++17]
__cpp_lib_nonmember_container_access 201411L [C++17]
- __cpp_lib_ranges_to_container 202202L [C++23]
*/
#include <vector>
@@ -38,6 +38,10 @@
# error "__cpp_lib_constexpr_vector should not be defined before c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -54,10 +58,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 14
# ifdef __cpp_lib_allocator_traits_is_always_equal
@@ -68,6 +68,10 @@
# error "__cpp_lib_constexpr_vector should not be defined before c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -84,10 +88,6 @@
# error "__cpp_lib_nonmember_container_access should not be defined before c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 17
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -101,6 +101,10 @@
# error "__cpp_lib_constexpr_vector should not be defined before c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -123,10 +127,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 20
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -143,6 +143,10 @@
# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -168,10 +172,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
# endif
-# ifdef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should not be defined before c++23"
-# endif
-
#elif TEST_STD_VER == 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -188,6 +188,13 @@
# error "__cpp_lib_constexpr_vector should have the value 201907L in c++23"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifdef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26"
# endif
@@ -213,13 +220,6 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
-# endif
-
#elif TEST_STD_VER > 23
# ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -236,6 +236,13 @@
# error "__cpp_lib_constexpr_vector should have the value 201907L in c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_default_template_type_for_algorithm_values
# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26"
@@ -270,12 +277,5 @@
# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
# endif
-# ifndef __cpp_lib_ranges_to_container
-# error "__cpp_lib_ranges_to_container should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_to_container != 202202L
-# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
-# endif
-
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
index 3ec548f56cea1d..da7a780528c7a7 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
@@ -73,6 +73,7 @@
__cpp_lib_constexpr_utility 201811L [C++20]
__cpp_lib_constexpr_vector 201907L [C++20]
__cpp_lib_constrained_equality 202403L [C++26]
+ __cpp_lib_containers_ranges 202202L [C++23]
__cpp_lib_copyable_function 202306L [C++26]
__cpp_lib_coroutine 201902L [C++20]
__cpp_lib_debugging 202311L [C++26]
@@ -455,6 +456,10 @@
# error "__cpp_lib_constrained_equality should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_copyable_function
# error "__cpp_lib_copyable_function should not be defined before c++26"
# endif
@@ -1283,6 +1288,10 @@
# error "__cpp_lib_constrained_equality should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_copyable_function
# error "__cpp_lib_copyable_function should not be defined before c++26"
# endif
@@ -2213,6 +2222,10 @@
# error "__cpp_lib_constrained_equality should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_copyable_function
# error "__cpp_lib_copyable_function should not be defined before c++26"
# endif
@@ -3422,6 +3435,10 @@
# error "__cpp_lib_constrained_equality should not be defined before c++26"
# endif
+# ifdef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should not be defined before c++23"
+# endif
+
# ifdef __cpp_lib_copyable_function
# error "__cpp_lib_copyable_function should not be defined before c++26"
# endif
@@ -4841,6 +4858,13 @@
# error "__cpp_lib_constrained_equality should not be defined before c++26"
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++23"
+# endif
+
# ifdef __cpp_lib_copyable_function
# error "__cpp_lib_copyable_function should not be defined before c++26"
# endif
@@ -6482,6 +6506,13 @@
# endif
# endif
+# ifndef __cpp_lib_containers_ranges
+# error "__cpp_lib_containers_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_containers_ranges != 202202L
+# error "__cpp_lib_containers_ranges should have the value 202202L in c++26"
+# endif
+
# if !defined(_LIBCPP_VERSION)
# ifndef __cpp_lib_copyable_function
# error "__cpp_lib_copyable_function should be defined in c++26"
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index f2b8d55c0e11b0..29c8ceba0c7ef5 100755
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -397,6 +397,23 @@ def add_version_header(tc):
"headers": ["optional", "tuple", "utility", "variant"],
"unimplemented": True,
},
+ {
+ "name": "__cpp_lib_containers_ranges",
+ "values": {"c++23": 202202},
+ "headers": [
+ "deque",
+ "forward_list",
+ "list",
+ "map",
+ "queue",
+ "set",
+ "stack",
+ "string",
+ "unordered_map",
+ "unordered_set",
+ "vector",
+ ],
+ },
{
"name": "__cpp_lib_copyable_function",
"values": {"c++26": 202306}, # P2548R6 copyable_function
@@ -991,20 +1008,7 @@ def add_version_header(tc):
{
"name": "__cpp_lib_ranges_to_container",
"values": {"c++23": 202202},
- "headers": [
- "deque",
- "forward_list",
- "list",
- "map",
- "queue",
- "ranges",
- "set",
- "stack",
- "string",
- "unordered_map",
- "unordered_set",
- "vector",
- ],
+ "headers": ["ranges"],
},
{
"name": "__cpp_lib_ranges_zip",
More information about the libcxx-commits
mailing list