[libcxx-commits] [libcxx] [libc++] Added FTMs from Hagenberg 2025 (PR #233352)
via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Oct 18 23:52:51 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Hristo Hristov (H-G-Hristov)
<details>
<summary>Changes</summary>
https:/wg21.link/version.syn#headerref:%3cvector%3e
---
Patch is 203.19 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/233352.diff
28 Files Affected:
- (modified) libcxx/docs/FeatureTestMacroTable.rst (+63-1)
- (modified) libcxx/include/version (+64-1)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp (+92)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp (+92)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp (+92)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp (+138)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp (+92)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp (+22-10)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp (+147)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp (+46)
- (added) libcxx/test/std/language.support/support.limits/support.limits.general/stdexcept.version.compile.pass.cpp (+83)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/valarray.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp (+46)
- (modified) libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp (+1457-10)
- (modified) libcxx/utils/generate_feature_test_macro_components.py (+194)
``````````diff
diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index 336a76d30f73f..0cd36dbc37fed 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -372,6 +372,8 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_ranges_as_const`` *unimplemented*
---------------------------------------------------------- -----------------
+ ``__cpp_lib_ranges_as_input`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_ranges_as_rvalue`` ``202207L``
---------------------------------------------------------- -----------------
``__cpp_lib_ranges_chunk`` *unimplemented*
@@ -440,24 +442,38 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_algorithms`` ``202306L``
---------------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_deque`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_exceptions`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_flat_map`` ``202502L``
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_flat_set`` ``202502L``
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_forward_list`` ``202502L``
---------------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_inplace_vector`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_list`` ``202502L``
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_map`` ``202502L``
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_new`` ``202406L``
---------------------------------------------------------- -----------------
- ``__cpp_lib_constexpr_queue`` ``202502L``
+ ``__cpp_lib_constexpr_queue`` *unimplemented*
---------------------------------------------------------- -----------------
``__cpp_lib_constexpr_set`` ``202502L``
---------------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_stack`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_unordered_map`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_constexpr_unordered_set`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_constrained_equality`` ``202411L``
---------------------------------------------------------- -----------------
+ ``__cpp_lib_contracts`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_copyable_function`` *unimplemented*
---------------------------------------------------------- -----------------
``__cpp_lib_debugging`` ``202403L``
@@ -488,8 +504,50 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_generate_random`` *unimplemented*
---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_array`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_basic_stacktrace`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_basic_string`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_basic_string_view`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_bitset`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_common_iterator`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_counted_iterator`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_deque`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_expected`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_forward_list`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_inplace_vector`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_list`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_mdspan`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_optional`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_shared_ptr_array`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_span`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_valarray`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_vector`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_hardened_view_interface`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_hazard_pointer`` *unimplemented*
---------------------------------------------------------- -----------------
+ ``__cpp_lib_hive`` *unimplemented*
+ ---------------------------------------------------------- -----------------
+ ``__cpp_lib_indirect`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_inplace_vector`` *unimplemented*
---------------------------------------------------------- -----------------
``__cpp_lib_integer_sequence`` ``202511L``
@@ -514,10 +572,14 @@ Status
---------------------------------------------------------- -----------------
``__cpp_lib_philox_engine`` *unimplemented*
---------------------------------------------------------- -----------------
+ ``__cpp_lib_polymorphic`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_ranges_concat`` ``202403L``
---------------------------------------------------------- -----------------
``__cpp_lib_ranges_indices`` ``202506L``
---------------------------------------------------------- -----------------
+ ``__cpp_lib_ranges_reserve_hint`` *unimplemented*
+ ---------------------------------------------------------- -----------------
``__cpp_lib_ratio`` ``202306L``
---------------------------------------------------------- -----------------
``__cpp_lib_raw_memory_algorithms`` ``202411L``
diff --git a/libcxx/include/version b/libcxx/include/version
index c8fd4004d40cd..9e704c1e9ae79 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -72,11 +72,15 @@ __cpp_lib_constexpr_bitset 202207L <bitset>
__cpp_lib_constexpr_charconv 202207L <charconv>
__cpp_lib_constexpr_cmath 202202L <cmath> <cstdlib>
__cpp_lib_constexpr_complex 201711L <complex>
+__cpp_lib_constexpr_deque 202502L <deque>
__cpp_lib_constexpr_dynamic_alloc 201907L <memory>
+__cpp_lib_constexpr_exceptions 202502L <exception> <expected> <format>
+ <optional> <stdexcept> <variant>
__cpp_lib_constexpr_flat_map 202502L <flat_map>
__cpp_lib_constexpr_flat_set 202502L <flat_set>
__cpp_lib_constexpr_forward_list 202502L <forward_list>
__cpp_lib_constexpr_functional 201907L <functional>
+__cpp_lib_constexpr_inplace_vector 202502L <inplace_vector>
__cpp_lib_constexpr_iterator 201811L <iterator>
__cpp_lib_constexpr_list 202502L <list>
__cpp_lib_constexpr_map 202502L <map>
@@ -86,10 +90,13 @@ __cpp_lib_constexpr_new 202406L <new>
__cpp_lib_constexpr_numeric 201911L <numeric>
__cpp_lib_constexpr_queue 202502L <queue>
__cpp_lib_constexpr_set 202502L <set>
+__cpp_lib_constexpr_stack 202502L <stack>
__cpp_lib_constexpr_string 201907L <string>
__cpp_lib_constexpr_string_view 201811L <string_view>
__cpp_lib_constexpr_tuple 201811L <tuple>
__cpp_lib_constexpr_typeinfo 202106L <typeinfo>
+__cpp_lib_constexpr_unordered_map 202502L <unordered_map>
+__cpp_lib_constexpr_unordered_set 202502L <unordered_set>
__cpp_lib_constexpr_utility 201811L <utility>
__cpp_lib_constexpr_vector 201907L <vector>
__cpp_lib_constrained_equality 202411L <expected> <optional> <tuple>
@@ -98,6 +105,7 @@ __cpp_lib_containers_ranges 202202L <deque> <forward
<map> <queue> <set>
<stack> <string> <unordered_map>
<unordered_set> <vector>
+__cpp_lib_contracts 202502L <contracts>
__cpp_lib_copyable_function 202306L <functional>
__cpp_lib_coroutine 201902L <coroutine>
__cpp_lib_debugging 202403L <debugging>
@@ -138,11 +146,32 @@ __cpp_lib_gcd_lcm 201606L <numeric>
__cpp_lib_generate_random 202403L <random>
__cpp_lib_generic_associative_lookup 201304L <map> <set>
__cpp_lib_generic_unordered_lookup 201811L <unordered_map> <unordered_set>
+__cpp_lib_hardened_array 202502L <array>
+__cpp_lib_hardened_basic_stacktrace 202506L <stacktrace>
+__cpp_lib_hardened_basic_string 202502L <string>
+__cpp_lib_hardened_basic_string_view 202502L <string_view>
+__cpp_lib_hardened_bitset 202502L <bitset>
+__cpp_lib_hardened_common_iterator 202506L <iterator>
+__cpp_lib_hardened_counted_iterator 202506L <iterator>
+__cpp_lib_hardened_deque 202502L <deque>
+__cpp_lib_hardened_expected 202502L <expected>
+__cpp_lib_hardened_forward_list 202502L <forward_list>
+__cpp_lib_hardened_inplace_vector 202502L <inplace_vector>
+__cpp_lib_hardened_list 202502L <list>
+__cpp_lib_hardened_mdspan 202502L <mdspan>
+__cpp_lib_hardened_optional 202502L <optional>
+__cpp_lib_hardened_shared_ptr_array 202506L <memory>
+__cpp_lib_hardened_span 202502L <span>
+__cpp_lib_hardened_valarray 202502L <valarray>
+__cpp_lib_hardened_vector 202502L <vector>
+__cpp_lib_hardened_view_interface 202506L <ranges>
__cpp_lib_hardware_interference_size 201703L <new>
__cpp_lib_has_unique_object_representations 201606L <type_traits>
__cpp_lib_hazard_pointer 202306L <hazard_pointer>
+__cpp_lib_hive 202502L <hive>
__cpp_lib_hypot 201603L <cmath>
__cpp_lib_incomplete_container_elements 201505L <forward_list> <list> <vector>
+__cpp_lib_indirect 202502L <memory>
__cpp_lib_initializer_list 202511L <initializer_list>
__cpp_lib_inplace_vector 202406L <inplace_vector>
__cpp_lib_int_pow2 202002L <bit>
@@ -206,6 +235,7 @@ __cpp_lib_out_ptr 202311L <memory>
__cpp_lib_parallel_algorithm 201603L <algorithm> <numeric>
__cpp_lib_philox_engine 202406L <random>
__cpp_lib_pointer_tag_pair 202606L <memory>
+__cpp_lib_polymorphic 202502L <memory>
__cpp_lib_polymorphic_allocator 201902L <memory_resource>
__cpp_lib_print 202207L <ostream> <print>
__cpp_lib_quoted_string_io 201304L <iomanip>
@@ -213,6 +243,7 @@ __cpp_lib_ranges 202406L <algorithm> <fun
<memory> <ranges>
202110L // C++20
__cpp_lib_ranges_as_const 202207L <ranges>
+__cpp_lib_ranges_as_input 202502L <ranges>
__cpp_lib_ranges_as_rvalue 202207L <ranges>
__cpp_lib_ranges_chunk 202202L <ranges>
__cpp_lib_ranges_chunk_by 202202L <ranges>
@@ -225,6 +256,7 @@ __cpp_lib_ranges_indices 202506L <ranges>
__cpp_lib_ranges_iota 202202L <numeric>
__cpp_lib_ranges_join_with 202202L <ranges>
__cpp_lib_ranges_repeat 202207L <ranges>
+__cpp_lib_ranges_reserve_hint 202502L <ranges>
__cpp_lib_ranges_slide 202202L <ranges>
__cpp_lib_ranges_starts_ends_with 202106L <algorithm>
__cpp_lib_ranges_stride 202207L <ranges>
@@ -543,6 +575,7 @@ __cpp_lib_void_t 201411L <type_traits>
# undef __cpp_lib_ranges
# define __cpp_lib_ranges 202406L
// # define __cpp_lib_ranges_as_const 202207L
+// # define __cpp_lib_ranges_as_input 202502L
# define __cpp_lib_ranges_as_rvalue 202207L
// # define __cpp_lib_ranges_chunk 202202L
# define __cpp_lib_ranges_chunk_by 202202L
@@ -583,17 +616,24 @@ __cpp_lib_void_t 201411L <type_traits>
# define __cpp_lib_constant_wrapper 202606L
# undef __cpp_lib_constexpr_algorithms
# define __cpp_lib_constexpr_algorithms 202306L
+// # define __cpp_lib_constexpr_deque 202502L
+// # define __cpp_lib_constexpr_exceptions 202502L
# define __cpp_lib_constexpr_flat_map 202502L
# define __cpp_lib_constexpr_flat_set 202502L
# define __cpp_lib_constexpr_forward_list 202502L
+// # define __cpp_lib_constexpr_inplace_vector 202502L
# define __cpp_lib_constexpr_list 202502L
# define __cpp_lib_constexpr_map 202502L
# if !defined(_LIBCPP_ABI_VCRUNTIME)
# define __cpp_lib_constexpr_new 202406L
# endif
-# define __cpp_lib_constexpr_queue 202502L
+// # define __cpp_lib_constexpr_queue 202502L
# define __cpp_lib_constexpr_set 202502L
+// # define __cpp_lib_constexpr_stack 202502L
+// # define __cpp_lib_constexpr_unordered_map 202502L
+// # define __cpp_lib_constexpr_unordered_set 202502L
# define __cpp_lib_constrained_equality 202411L
+// # define __cpp_lib_contracts 202502L
// # define __cpp_lib_copyable_function 202306L
# if _LIBCPP_AVAILABILITY_HAS_DEBUGGING
# define __cpp_lib_debugging 202403L
@@ -613,7 +653,28 @@ __cpp_lib_void_t 201411L <type_traits>
# endif
# define __cpp_lib_function_ref 202603L
// # define __cpp_lib_generate_random 202403L
+// # define __cpp_lib_hardened_array 202502L
+// # define __cpp_lib_hardened_basic_stacktrace 202506L
+// # define __cpp_lib_hardened_basic_string 202502L
+// # define __cpp_lib_hardened_basic_string_view 202502L
+// # define __cpp_lib_hardened_bitset 202502L
+// # define __cpp_lib_hardened_common_iterator 202506L
+// # define __cpp_lib_hardened_counted_iterator 202506L
+// # define __cpp_lib_hardened_deque 202502L
+// # define __cpp_lib_hardened_expected 202502L
+// # define __cpp_lib_hardened_forward_list 202502L
+// # define __cpp_lib_hardened_inplace_vector 202502L
+// # define __cpp_lib_hardened_list 202502L
+// # define __cpp_lib_hardened_mdspan 202502L
+// # define __cpp_lib_hardened_optional 202502L
+// # define __cpp_lib_hardened_shared_ptr_array 202506L
+// # define __cpp_lib_hardened_span 202502L
+// # define __cpp_lib_hardened_valarray 202502L
+// # define __cpp_lib...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/233352
More information about the libcxx-commits
mailing list