[libcxx-commits] [libcxx] [libc++] define FTM __cpp_lib_ranges_zip (PR #176569)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sat Jan 17 06:34:13 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Hui (huixie90)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/176569.diff
7 Files Affected:
- (modified) libcxx/docs/FeatureTestMacroTable.rst (+1-1)
- (modified) libcxx/include/version (+1-1)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp (+10-22)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp (+10-22)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp (+10-22)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp (+10-22)
- (modified) libcxx/utils/generate_feature_test_macro_components.py (-1)
``````````diff
diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index 32911d0f64449..572e0cef6282f 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -390,7 +390,7 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_ranges_to_container`` ``202202L``
---------------------------------------------------------- -----------------
- ``__cpp_lib_ranges_zip`` *unimplemented*
+ ``__cpp_lib_ranges_zip`` ``202110L``
---------------------------------------------------------- -----------------
``__cpp_lib_reference_from_temporary`` *unimplemented*
---------------------------------------------------------- -----------------
diff --git a/libcxx/include/version b/libcxx/include/version
index d47f0cb6cd41c..bdacfa1737798 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -531,7 +531,7 @@ __cpp_lib_void_t 201411L <type_traits>
// # define __cpp_lib_ranges_slide 202202L
# define __cpp_lib_ranges_starts_ends_with 202106L
# define __cpp_lib_ranges_to_container 202202L
-// # define __cpp_lib_ranges_zip 202110L
+# define __cpp_lib_ranges_zip 202110L
// # define __cpp_lib_reference_from_temporary 202202L
// # define __cpp_lib_spanstream 202106L
// # define __cpp_lib_stacktrace 202011L
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
index 5116864879485..284b67f7a50ca 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
@@ -332,17 +332,11 @@
# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_zip != 202110L
-# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
-# endif
-# else
-# ifdef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_ranges_zip
+# error "__cpp_lib_ranges_zip should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_zip != 202110L
+# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
# endif
#elif TEST_STD_VER > 23
@@ -461,17 +455,11 @@
# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_zip != 202110L
-# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
-# endif
-# else
-# ifdef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_ranges_zip
+# error "__cpp_lib_ranges_zip should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_zip != 202110L
+# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
# endif
#endif // TEST_STD_VER > 23
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
index ceb338d43da78..c0973c03f3273 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
@@ -214,17 +214,11 @@
# error "__cpp_lib_make_from_tuple should have the value 201606L in c++23"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_zip != 202110L
-# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
-# endif
-# else
-# ifdef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_ranges_zip
+# error "__cpp_lib_ranges_zip should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_zip != 202110L
+# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
# endif
# ifndef __cpp_lib_tuple_element_t
@@ -284,17 +278,11 @@
# error "__cpp_lib_make_from_tuple should have the value 201606L in c++26"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_zip != 202110L
-# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
-# endif
-# else
-# ifdef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_ranges_zip
+# error "__cpp_lib_ranges_zip should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_zip != 202110L
+# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
# endif
# ifndef __cpp_lib_tuple_element_t
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
index 1d82ef9ec0e86..3f82018a15063 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
@@ -331,17 +331,11 @@
# error "__cpp_lib_integer_sequence should have the value 201304L in c++23"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_zip != 202110L
-# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
-# endif
-# else
-# ifdef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_ranges_zip
+# error "__cpp_lib_ranges_zip should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_zip != 202110L
+# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
# endif
# ifndef __cpp_lib_to_underlying
@@ -436,17 +430,11 @@
# error "__cpp_lib_integer_sequence should have the value 202511L in c++26"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_zip != 202110L
-# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
-# endif
-# else
-# ifdef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_ranges_zip
+# error "__cpp_lib_ranges_zip should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_zip != 202110L
+# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
# endif
# ifndef __cpp_lib_to_underlying
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 aacccc0451693..bb04b18395903 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
@@ -5772,17 +5772,11 @@
# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_zip != 202110L
-# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
-# endif
-# else
-# ifdef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_ranges_zip
+# error "__cpp_lib_ranges_zip should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_zip != 202110L
+# error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
# endif
# ifdef __cpp_lib_ratio
@@ -7703,17 +7697,11 @@
# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26"
# endif
-# if !defined(_LIBCPP_VERSION)
-# ifndef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_zip != 202110L
-# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
-# endif
-# else
-# ifdef __cpp_lib_ranges_zip
-# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-# endif
+# ifndef __cpp_lib_ranges_zip
+# error "__cpp_lib_ranges_zip should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_zip != 202110L
+# error "__cpp_lib_ranges_zip should have the value 202110L in c++26"
# endif
# ifndef __cpp_lib_ratio
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index a847042bf47c0..a13c9e5347eed 100644
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -1169,7 +1169,6 @@ def add_version_header(tc):
"name": "__cpp_lib_ranges_zip",
"values": {"c++23": 202110},
"headers": ["ranges", "tuple", "utility"],
- "unimplemented": True,
},
{
"name": "__cpp_lib_ratio",
``````````
</details>
https://github.com/llvm/llvm-project/pull/176569
More information about the libcxx-commits
mailing list