[llvm-branch-commits] [libcxx] release/22.x: [libc++] Update `__cpp_lib_flat_set` to `202511L` according to P3567R2 (#176297) (PR #176814)
Cullen Rhodes via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Jan 20 07:46:42 PST 2026
https://github.com/c-rhodes updated https://github.com/llvm/llvm-project/pull/176814
>From ad14a1cb6d2eedf60037d9b353090405807972ec Mon Sep 17 00:00:00 2001
From: "A. Jiang" <de34 at live.cn>
Date: Tue, 20 Jan 2026 04:27:56 +0800
Subject: [PATCH] [libc++] Update `__cpp_lib_flat_set` to `202511L` according
to P3567R2 (#176297)
The paper was already implemented in LLVM22 in cd13170aea2,
but the previous patch forgot to update `__cpp_lib_flat_set`.
Fixes #176232.
(cherry picked from commit bf6e9867c7193bf1d67814a681e707b771749614)
---
libcxx/docs/FeatureTestMacroTable.rst | 2 +-
libcxx/include/version | 4 ++--
.../flat_set.version.compile.pass.cpp | 8 ++++----
.../version.version.compile.pass.cpp | 8 ++++----
libcxx/utils/generate_feature_test_macro_components.py | 2 +-
5 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index 572e0cef6282f..d2b76cb96e866 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -336,7 +336,7 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_flat_map`` ``202511L``
---------------------------------------------------------- -----------------
- ``__cpp_lib_flat_set`` ``202207L``
+ ``__cpp_lib_flat_set`` ``202511L``
---------------------------------------------------------- -----------------
``__cpp_lib_format_ranges`` ``202207L``
---------------------------------------------------------- -----------------
diff --git a/libcxx/include/version b/libcxx/include/version
index bdacfa1737798..7d77677a012ce 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -112,7 +112,7 @@ __cpp_lib_execution 201902L <execution>
__cpp_lib_expected 202211L <expected>
__cpp_lib_filesystem 201703L <filesystem>
__cpp_lib_flat_map 202511L <flat_map>
-__cpp_lib_flat_set 202207L <flat_set>
+__cpp_lib_flat_set 202511L <flat_set>
__cpp_lib_format 202110L <format>
__cpp_lib_format_path 202403L <filesystem>
__cpp_lib_format_ranges 202207L <format>
@@ -498,7 +498,7 @@ __cpp_lib_void_t 201411L <type_traits>
# define __cpp_lib_containers_ranges 202202L
# define __cpp_lib_expected 202211L
# define __cpp_lib_flat_map 202511L
-# define __cpp_lib_flat_set 202207L
+# define __cpp_lib_flat_set 202511L
# define __cpp_lib_format_ranges 202207L
// # define __cpp_lib_formatters 202302L
# define __cpp_lib_forward_like 202207L
diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp
index b29da9fdbe649..725e5107c8997 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp
@@ -67,8 +67,8 @@
# ifndef __cpp_lib_flat_set
# error "__cpp_lib_flat_set should be defined in c++23"
# endif
-# if __cpp_lib_flat_set != 202207L
-# error "__cpp_lib_flat_set should have the value 202207L in c++23"
+# if __cpp_lib_flat_set != 202511L
+# error "__cpp_lib_flat_set should have the value 202511L in c++23"
# endif
#elif TEST_STD_VER > 23
@@ -83,8 +83,8 @@
# ifndef __cpp_lib_flat_set
# error "__cpp_lib_flat_set should be defined in c++26"
# endif
-# if __cpp_lib_flat_set != 202207L
-# error "__cpp_lib_flat_set should have the value 202207L in c++26"
+# if __cpp_lib_flat_set != 202511L
+# error "__cpp_lib_flat_set should have the value 202511L 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 bb04b18395903..f442b22c6d752 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
@@ -5088,8 +5088,8 @@
# ifndef __cpp_lib_flat_set
# error "__cpp_lib_flat_set should be defined in c++23"
# endif
-# if __cpp_lib_flat_set != 202207L
-# error "__cpp_lib_flat_set should have the value 202207L in c++23"
+# if __cpp_lib_flat_set != 202511L
+# error "__cpp_lib_flat_set should have the value 202511L in c++23"
# endif
# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
@@ -6827,8 +6827,8 @@
# ifndef __cpp_lib_flat_set
# error "__cpp_lib_flat_set should be defined in c++26"
# endif
-# if __cpp_lib_flat_set != 202207L
-# error "__cpp_lib_flat_set should have the value 202207L in c++26"
+# if __cpp_lib_flat_set != 202511L
+# error "__cpp_lib_flat_set should have the value 202511L in c++26"
# endif
# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index a13c9e5347eed..88431c76a00f5 100644
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -562,7 +562,7 @@ def add_version_header(tc):
},
{
"name": "__cpp_lib_flat_set",
- "values": {"c++23": 202207},
+ "values": {"c++23": 202511},
"headers": ["flat_set"],
},
{
More information about the llvm-branch-commits
mailing list