[libcxx-commits] [libcxx] [libc++] Make forward_list constexpr as part of P3372R3 (PR #129435)

Peng Liu via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jun 4 09:06:41 PDT 2025


https://github.com/winner245 updated https://github.com/llvm/llvm-project/pull/129435

>From b0088937dde8bd6bdec6ae79d9e0f7bdf7a13b90 Mon Sep 17 00:00:00 2001
From: Peng Liu <winner245 at hotmail.com>
Date: Fri, 28 Feb 2025 17:23:27 -0500
Subject: [PATCH 1/7] Make forward_list constexpr as part of P3372R3

---
 libcxx/docs/FeatureTestMacroTable.rst         |    4 +
 libcxx/include/__memory/allocation_guard.h    |   20 +-
 libcxx/include/forward_list                   |  471 +-
 libcxx/include/version                        |    2 +
 .../forwardlist/compare.three_way.pass.cpp    |    7 +-
 .../sequences/forwardlist/empty.pass.cpp      |   13 +-
 .../forwardlist.access/front.pass.cpp         |   16 +-
 .../forwardlist.cons/alloc.compile.fail.cpp   |   13 +-
 .../forwardlist.cons/alloc.pass.cpp           |   13 +-
 .../forwardlist.cons/assign_copy.pass.cpp     |   13 +-
 .../forwardlist.cons/assign_init.pass.cpp     |   13 +-
 .../forwardlist.cons/assign_move.pass.cpp     |   13 +-
 .../forwardlist.cons/assign_op_init.pass.cpp  |   13 +-
 .../forwardlist.cons/assign_range.pass.cpp    |   13 +-
 .../assign_size_value.pass.cpp                |   13 +-
 .../forwardlist.cons/copy.pass.cpp            |   13 +-
 .../forwardlist.cons/copy_alloc.pass.cpp      |   13 +-
 .../forwardlist.cons/default.pass.cpp         |   13 +-
 .../forwardlist.cons/from_range.pass.cpp      |   19 +-
 .../forwardlist.cons/init.pass.cpp            |   13 +-
 .../forwardlist.cons/init_alloc.pass.cpp      |   13 +-
 .../forwardlist.cons/move.pass.cpp            |   13 +-
 .../forwardlist.cons/move_alloc.pass.cpp      |   13 +-
 .../forwardlist.cons/range.pass.cpp           |   13 +-
 .../forwardlist.cons/range_alloc.pass.cpp     |   13 +-
 .../forwardlist.cons/size.pass.cpp            |    4 +-
 .../forwardlist.cons/size_value.pass.cpp      |   13 +-
 .../size_value_alloc.pass.cpp                 |   13 +-
 .../forwardlist.erasure/erase.pass.cpp        |   18 +-
 .../forwardlist.erasure/erase_if.pass.cpp     |   18 +-
 .../forwardlist.iter/before_begin.pass.cpp    |   17 +-
 .../forwardlist.iter/iterators.pass.cpp       |   27 +-
 .../assign_range.pass.cpp                     |   19 +-
 .../forwardlist.modifiers/clear.pass.cpp      |   13 +-
 .../emplace_after.pass.cpp                    |   13 +-
 .../emplace_front.pass.cpp                    |   13 +-
 .../erase_after_many.pass.cpp                 |   13 +-
 .../erase_after_one.pass.cpp                  |   13 +-
 .../insert_after_const.pass.cpp               |   13 +-
 .../insert_after_init.pass.cpp                |   13 +-
 .../insert_after_range.pass.cpp               |   13 +-
 .../insert_after_rv.pass.cpp                  |   13 +-
 .../insert_after_size_value.pass.cpp          |   13 +-
 .../insert_range_after.pass.cpp               |   23 +-
 .../forwardlist.modifiers/pop_front.pass.cpp  |   13 +-
 .../prepend_range.pass.cpp                    |   19 +-
 .../push_front_const.pass.cpp                 |   13 +-
 .../push_front_exception_safety.pass.cpp      |    2 +-
 .../push_front_rv.pass.cpp                    |   13 +-
 .../resize_size.pass.cpp                      |   17 +-
 .../resize_size_value.pass.cpp                |   15 +-
 .../forwardlist.ops/merge_lvalue.pass.cpp     |   17 +-
 .../merge_lvalue_pred.pass.cpp                |   17 +-
 .../forwardlist.ops/merge_rvalue.pass.cpp     |   17 +-
 .../merge_rvalue_pred.pass.cpp                |   17 +-
 .../forwardlist.ops/remove.pass.cpp           |   27 +-
 .../forwardlist.ops/remove_if.pass.cpp        |   25 +-
 .../forwardlist.ops/reverse.pass.cpp          |   19 +-
 .../splice_after_flist.pass.cpp               |   23 +-
 .../forwardlist.ops/splice_after_one.pass.cpp |   25 +-
 .../splice_after_range.pass.cpp               |   27 +-
 .../forwardlist.ops/unique.pass.cpp           |   15 +-
 .../forwardlist.ops/unique_pred.pass.cpp      |   25 +-
 .../forwardlist.spec/equal.pass.cpp           |   17 +-
 .../forwardlist.spec/member_swap.pass.cpp     |   13 +-
 .../forwardlist.spec/non_member_swap.pass.cpp |   13 +-
 .../forwardlist.spec/relational.pass.cpp      |   21 +-
 .../forwardlist.spec/swap_noexcept.pass.cpp   |    4 +-
 .../forwardlist/get_allocator.pass.cpp        |   13 +-
 .../sequences/forwardlist/incomplete.pass.cpp |   17 +-
 .../sequences/forwardlist/max_size.pass.cpp   |   13 +-
 .../version.version.compile.pass.cpp          | 6650 +++++++++++++++++
 libcxx/test/support/counting_predicates.h     |   54 +-
 .../generate_feature_test_macro_components.py |    5 +
 74 files changed, 7777 insertions(+), 444 deletions(-)
 mode change 100755 => 100644 libcxx/utils/generate_feature_test_macro_components.py

diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index a89d4038785cd..aac4ee22989a1 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -418,7 +418,11 @@ Status
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_bitset``                                       ``202306L``
     ---------------------------------------------------------- -----------------
+<<<<<<< HEAD
     ``__cpp_lib_constexpr_algorithms``                         ``202306L``
+=======
+    ``__cpp_lib_constexpr_forward_list``                       ``202502L``
+>>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_new``                                ``202406L``
     ---------------------------------------------------------- -----------------
diff --git a/libcxx/include/__memory/allocation_guard.h b/libcxx/include/__memory/allocation_guard.h
index 66edcd92ed618..2fc485f4ed0ed 100644
--- a/libcxx/include/__memory/allocation_guard.h
+++ b/libcxx/include/__memory/allocation_guard.h
@@ -49,24 +49,26 @@ struct __allocation_guard {
   using _Size _LIBCPP_NODEBUG    = typename allocator_traits<_Alloc>::size_type;
 
   template <class _AllocT> // we perform the allocator conversion inside the constructor
-  _LIBCPP_HIDE_FROM_ABI explicit __allocation_guard(_AllocT __alloc, _Size __n)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __allocation_guard(_AllocT __alloc, _Size __n)
       : __alloc_(std::move(__alloc)),
         __n_(__n),
         __ptr_(allocator_traits<_Alloc>::allocate(__alloc_, __n_)) // initialization order is important
   {}
 
-  _LIBCPP_HIDE_FROM_ABI ~__allocation_guard() _NOEXCEPT { __destroy(); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI ~__allocation_guard() _NOEXCEPT { __destroy(); }
 
-  _LIBCPP_HIDE_FROM_ABI __allocation_guard(const __allocation_guard&) = delete;
-  _LIBCPP_HIDE_FROM_ABI __allocation_guard(__allocation_guard&& __other) _NOEXCEPT
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __allocation_guard(const __allocation_guard&) = delete;
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __allocation_guard(__allocation_guard&& __other) _NOEXCEPT
       : __alloc_(std::move(__other.__alloc_)),
         __n_(__other.__n_),
         __ptr_(__other.__ptr_) {
     __other.__ptr_ = nullptr;
   }
 
-  _LIBCPP_HIDE_FROM_ABI __allocation_guard& operator=(const __allocation_guard& __other) = delete;
-  _LIBCPP_HIDE_FROM_ABI __allocation_guard& operator=(__allocation_guard&& __other) _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __allocation_guard&
+  operator=(const __allocation_guard& __other) = delete;
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __allocation_guard&
+  operator=(__allocation_guard&& __other) _NOEXCEPT {
     if (std::addressof(__other) != this) {
       __destroy();
 
@@ -79,17 +81,17 @@ struct __allocation_guard {
     return *this;
   }
 
-  _LIBCPP_HIDE_FROM_ABI _Pointer
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI _Pointer
   __release_ptr() _NOEXCEPT { // not called __release() because it's a keyword in objective-c++
     _Pointer __tmp = __ptr_;
     __ptr_         = nullptr;
     return __tmp;
   }
 
-  _LIBCPP_HIDE_FROM_ABI _Pointer __get() const _NOEXCEPT { return __ptr_; }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI _Pointer __get() const _NOEXCEPT { return __ptr_; }
 
 private:
-  _LIBCPP_HIDE_FROM_ABI void __destroy() _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __destroy() _NOEXCEPT {
     if (__ptr_ != nullptr) {
       allocator_traits<_Alloc>::deallocate(__alloc_, __ptr_, __n_);
     }
diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index f264f567c9bb3..ec91a7bf7441f 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -295,8 +295,8 @@ struct __forward_node_traits {
                 "the _LIBCPP_ABI_FORWARD_LIST_REMOVE_NODE_POINTER_UB macro to silence this diagnostic.");
 #  endif
 
-  _LIBCPP_HIDE_FROM_ABI static __begin_node_pointer __as_iter_node(__node_pointer __p) {
-    return static_cast<__begin_node_pointer>(static_cast<__void_pointer>(__p));
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI static __begin_node_pointer __as_iter_node(__node_pointer __p) {
+    return __p ? pointer_traits<__begin_node_pointer>::pointer_to(*__p) : static_cast<__begin_node_pointer>(nullptr);
   }
 };
 
@@ -307,11 +307,12 @@ struct __forward_begin_node {
 
   pointer __next_;
 
-  _LIBCPP_HIDE_FROM_ABI __forward_begin_node() : __next_(nullptr) {}
-  _LIBCPP_HIDE_FROM_ABI explicit __forward_begin_node(pointer __n) : __next_(__n) {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __forward_begin_node() : __next_(nullptr) {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_begin_node(pointer __n) : __next_(__n) {}
 
-  _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __next_as_begin() const {
-    return static_cast<__begin_node_pointer>(__next_);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __next_as_begin() const {
+    return __next_ ? pointer_traits<__begin_node_pointer>::pointer_to(*__next_)
+                   : static_cast<__begin_node_pointer>(nullptr);
   }
 };
 
@@ -335,18 +336,20 @@ private:
   };
 
 public:
-  _LIBCPP_HIDE_FROM_ABI _Tp& __get_value() { return __value_; }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI _Tp& __get_value() { return __value_; }
 #  else
 
 private:
   _ALIGNAS_TYPE(_Tp) char __buffer_[sizeof(_Tp)];
 
 public:
-  _LIBCPP_HIDE_FROM_ABI _Tp& __get_value() { return *std::__launder(reinterpret_cast<_Tp*>(&__buffer_)); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI _Tp& __get_value() {
+    return *std::__launder(reinterpret_cast<_Tp*>(&__buffer_));
+  }
 #  endif
 
-  _LIBCPP_HIDE_FROM_ABI explicit __forward_list_node(_NodePtr __next) : _Base(__next) {}
-  _LIBCPP_HIDE_FROM_ABI ~__forward_list_node() {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_node(_NodePtr __next) : _Base(__next) {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI ~__forward_list_node() {}
 };
 
 template <class _Tp, class _Alloc = allocator<_Tp> >
@@ -357,24 +360,27 @@ class __forward_list_const_iterator;
 template <class _NodePtr>
 class __forward_list_iterator {
   typedef __forward_node_traits<_NodePtr> __traits;
+  typedef typename __traits::__node_type __node_type;
   typedef typename __traits::__node_pointer __node_pointer;
   typedef typename __traits::__begin_node_pointer __begin_node_pointer;
   typedef typename __traits::__void_pointer __void_pointer;
 
   __begin_node_pointer __ptr_;
 
-  _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const {
-    return static_cast<__begin_node_pointer>(static_cast<__void_pointer>(__ptr_));
-  }
-  _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-    return static_cast<__node_pointer>(static_cast<__void_pointer>(__ptr_));
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
+    return __ptr_ ? pointer_traits<__node_pointer>::pointer_to(
+                        const_cast<__node_type&>(static_cast<const __node_type&>(*__ptr_)))
+                  : static_cast<__node_pointer>(nullptr);
   }
 
-  _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(nullptr_t) _NOEXCEPT : __ptr_(nullptr) {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(nullptr_t) _NOEXCEPT
+      : __ptr_(nullptr) {}
 
+  _LIBCPP_CONSTEXPR_SINCE_CXX26
   _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(__begin_node_pointer __p) _NOEXCEPT : __ptr_(__p) {}
 
-  _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(__node_pointer __p) _NOEXCEPT
       : __ptr_(__traits::__as_iter_node(__p)) {}
 
   template <class, class>
@@ -389,27 +395,31 @@ public:
   typedef typename pointer_traits<__node_pointer>::difference_type difference_type;
   typedef __rebind_pointer_t<__node_pointer, value_type> pointer;
 
-  _LIBCPP_HIDE_FROM_ABI __forward_list_iterator() _NOEXCEPT : __ptr_(nullptr) {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __forward_list_iterator() _NOEXCEPT : __ptr_(nullptr) {}
 
-  _LIBCPP_HIDE_FROM_ABI reference operator*() const { return __get_unsafe_node_pointer()->__get_value(); }
-  _LIBCPP_HIDE_FROM_ABI pointer operator->() const {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI reference operator*() const {
+    return __get_unsafe_node_pointer()->__get_value();
+  }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI pointer operator->() const {
     return pointer_traits<pointer>::pointer_to(__get_unsafe_node_pointer()->__get_value());
   }
 
-  _LIBCPP_HIDE_FROM_ABI __forward_list_iterator& operator++() {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __forward_list_iterator& operator++() {
     __ptr_ = __traits::__as_iter_node(__ptr_->__next_);
     return *this;
   }
-  _LIBCPP_HIDE_FROM_ABI __forward_list_iterator operator++(int) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __forward_list_iterator operator++(int) {
     __forward_list_iterator __t(*this);
     ++(*this);
     return __t;
   }
 
-  friend _LIBCPP_HIDE_FROM_ABI bool operator==(const __forward_list_iterator& __x, const __forward_list_iterator& __y) {
+  friend _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI bool
+  operator==(const __forward_list_iterator& __x, const __forward_list_iterator& __y) {
     return __x.__ptr_ == __y.__ptr_;
   }
-  friend _LIBCPP_HIDE_FROM_ABI bool operator!=(const __forward_list_iterator& __x, const __forward_list_iterator& __y) {
+  friend _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI bool
+  operator!=(const __forward_list_iterator& __x, const __forward_list_iterator& __y) {
     return !(__x == __y);
   }
 };
@@ -427,17 +437,20 @@ class __forward_list_const_iterator {
 
   __begin_node_pointer __ptr_;
 
-  _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const {
-    return static_cast<__begin_node_pointer>(static_cast<__void_pointer>(__ptr_));
-  }
-  _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-    return static_cast<__node_pointer>(static_cast<__void_pointer>(__ptr_));
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
+    return __ptr_ ? pointer_traits<__node_pointer>::pointer_to(
+                        const_cast<__node_type&>(static_cast<const __node_type&>(*__ptr_)))
+                  : static_cast<__node_pointer>(nullptr);
   }
 
-  _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(nullptr_t) _NOEXCEPT : __ptr_(nullptr) {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(nullptr_t) _NOEXCEPT
+      : __ptr_(nullptr) {}
 
+  _LIBCPP_CONSTEXPR_SINCE_CXX26
   _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(__begin_node_pointer __p) _NOEXCEPT : __ptr_(__p) {}
 
+  _LIBCPP_CONSTEXPR_SINCE_CXX26
   _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(__node_pointer __p) _NOEXCEPT
       : __ptr_(__traits::__as_iter_node(__p)) {}
 
@@ -451,30 +464,32 @@ public:
   typedef typename pointer_traits<__node_pointer>::difference_type difference_type;
   typedef __rebind_pointer_t<__node_pointer, const value_type> pointer;
 
-  _LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator() _NOEXCEPT : __ptr_(nullptr) {}
-  _LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator(__forward_list_iterator<__node_pointer> __p) _NOEXCEPT
-      : __ptr_(__p.__ptr_) {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator() _NOEXCEPT : __ptr_(nullptr) {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  __forward_list_const_iterator(__forward_list_iterator<__node_pointer> __p) _NOEXCEPT : __ptr_(__p.__ptr_) {}
 
-  _LIBCPP_HIDE_FROM_ABI reference operator*() const { return __get_unsafe_node_pointer()->__get_value(); }
-  _LIBCPP_HIDE_FROM_ABI pointer operator->() const {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI reference operator*() const {
+    return __get_unsafe_node_pointer()->__get_value();
+  }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI pointer operator->() const {
     return pointer_traits<pointer>::pointer_to(__get_unsafe_node_pointer()->__get_value());
   }
 
-  _LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator& operator++() {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator& operator++() {
     __ptr_ = __traits::__as_iter_node(__ptr_->__next_);
     return *this;
   }
-  _LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator operator++(int) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __forward_list_const_iterator operator++(int) {
     __forward_list_const_iterator __t(*this);
     ++(*this);
     return __t;
   }
 
-  friend _LIBCPP_HIDE_FROM_ABI bool
+  friend _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI bool
   operator==(const __forward_list_const_iterator& __x, const __forward_list_const_iterator& __y) {
     return __x.__ptr_ == __y.__ptr_;
   }
-  friend _LIBCPP_HIDE_FROM_ABI bool
+  friend _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI bool
   operator!=(const __forward_list_const_iterator& __x, const __forward_list_const_iterator& __y) {
     return !(__x == __y);
   }
@@ -498,48 +513,51 @@ protected:
 
   _LIBCPP_COMPRESSED_PAIR(__begin_node, __before_begin_, __node_allocator, __alloc_);
 
-  _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __before_begin() _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __before_begin() _NOEXCEPT {
     return pointer_traits<__begin_node_pointer>::pointer_to(__before_begin_);
   }
-  _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __before_begin() const _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __before_begin() const _NOEXCEPT {
     return pointer_traits<__begin_node_pointer>::pointer_to(const_cast<__begin_node&>(__before_begin_));
   }
 
   typedef __forward_list_iterator<__node_pointer> iterator;
   typedef __forward_list_const_iterator<__node_pointer> const_iterator;
 
-  _LIBCPP_HIDE_FROM_ABI __forward_list_base() _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __forward_list_base()
+      _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value)
       : __before_begin_(__begin_node()) {}
-  _LIBCPP_HIDE_FROM_ABI explicit __forward_list_base(const allocator_type& __a)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_base(const allocator_type& __a)
       : __before_begin_(__begin_node()), __alloc_(__node_allocator(__a)) {}
-  _LIBCPP_HIDE_FROM_ABI explicit __forward_list_base(const __node_allocator& __a)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_base(const __node_allocator& __a)
       : __before_begin_(__begin_node()), __alloc_(__a) {}
 
 public:
 #  ifndef _LIBCPP_CXX03_LANG
-  _LIBCPP_HIDE_FROM_ABI
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
   __forward_list_base(__forward_list_base&& __x) noexcept(is_nothrow_move_constructible<__node_allocator>::value);
-  _LIBCPP_HIDE_FROM_ABI __forward_list_base(__forward_list_base&& __x, const allocator_type& __a);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  __forward_list_base(__forward_list_base&& __x, const allocator_type& __a);
 #  endif // _LIBCPP_CXX03_LANG
 
   __forward_list_base(const __forward_list_base&)            = delete;
   __forward_list_base& operator=(const __forward_list_base&) = delete;
 
-  _LIBCPP_HIDE_FROM_ABI ~__forward_list_base();
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI ~__forward_list_base();
 
 protected:
-  _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __forward_list_base& __x) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __forward_list_base& __x) {
     __copy_assign_alloc(__x, integral_constant<bool, __node_traits::propagate_on_container_copy_assignment::value>());
   }
 
-  _LIBCPP_HIDE_FROM_ABI void __move_assign_alloc(__forward_list_base& __x)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __move_assign_alloc(__forward_list_base& __x)
       _NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value ||
                  is_nothrow_move_assignable<__node_allocator>::value) {
     __move_assign_alloc(__x, integral_constant<bool, __node_traits::propagate_on_container_move_assignment::value>());
   }
 
   template <class... _Args>
-  _LIBCPP_HIDE_FROM_ABI __node_pointer __create_node(__node_pointer __next, _Args&&... __args) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer
+  __create_node(__node_pointer __next, _Args&&... __args) {
     __allocation_guard<__node_allocator> __guard(__alloc_, 1);
     // Begin the lifetime of the node itself. Note that this doesn't begin the lifetime of the value
     // held inside the node, since we need to use the allocator's construct() method for that.
@@ -554,7 +572,7 @@ protected:
     return __guard.__release_ptr();
   }
 
-  _LIBCPP_HIDE_FROM_ABI void __delete_node(__node_pointer __node) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __delete_node(__node_pointer __node) {
     // For the same reason as above, we use the allocator's destroy() method for the value_type,
     // but not for the node itself.
     __node_traits::destroy(__alloc_, std::addressof(__node->__get_value()));
@@ -563,7 +581,7 @@ protected:
   }
 
 public:
-  _LIBCPP_HIDE_FROM_ABI void swap(__forward_list_base& __x)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void swap(__forward_list_base& __x)
 #  if _LIBCPP_STD_VER >= 14
       _NOEXCEPT;
 #  else
@@ -571,18 +589,21 @@ public:
 #  endif
 
 protected:
-  _LIBCPP_HIDE_FROM_ABI void clear() _NOEXCEPT;
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void clear() _NOEXCEPT;
 
 private:
-  _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __forward_list_base&, false_type) {}
-  _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __forward_list_base& __x, true_type) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __copy_assign_alloc(const __forward_list_base&, false_type) {
+  }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void
+  __copy_assign_alloc(const __forward_list_base& __x, true_type) {
     if (__alloc_ != __x.__alloc_)
       clear();
     __alloc_ = __x.__alloc_;
   }
 
-  _LIBCPP_HIDE_FROM_ABI void __move_assign_alloc(__forward_list_base&, false_type) _NOEXCEPT {}
-  _LIBCPP_HIDE_FROM_ABI void __move_assign_alloc(__forward_list_base& __x, true_type)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void
+  __move_assign_alloc(__forward_list_base&, false_type) _NOEXCEPT {}
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __move_assign_alloc(__forward_list_base& __x, true_type)
       _NOEXCEPT_(is_nothrow_move_assignable<__node_allocator>::value) {
     __alloc_ = std::move(__x.__alloc_);
   }
@@ -591,14 +612,15 @@ private:
 #  ifndef _LIBCPP_CXX03_LANG
 
 template <class _Tp, class _Alloc>
-inline __forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base&& __x) noexcept(
-    is_nothrow_move_constructible<__node_allocator>::value)
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline __forward_list_base<_Tp, _Alloc>::__forward_list_base(
+    __forward_list_base&& __x) noexcept(is_nothrow_move_constructible<__node_allocator>::value)
     : __before_begin_(std::move(__x.__before_begin_)), __alloc_(std::move(__x.__alloc_)) {
   __x.__before_begin()->__next_ = nullptr;
 }
 
 template <class _Tp, class _Alloc>
-inline __forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base&& __x, const allocator_type& __a)
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline __forward_list_base<_Tp, _Alloc>::__forward_list_base(
+    __forward_list_base&& __x, const allocator_type& __a)
     : __before_begin_(__begin_node()), __alloc_(__node_allocator(__a)) {
   if (__alloc_ == __x.__alloc_) {
     __before_begin()->__next_     = __x.__before_begin()->__next_;
@@ -609,12 +631,12 @@ inline __forward_list_base<_Tp, _Alloc>::__forward_list_base(__forward_list_base
 #  endif // _LIBCPP_CXX03_LANG
 
 template <class _Tp, class _Alloc>
-__forward_list_base<_Tp, _Alloc>::~__forward_list_base() {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 __forward_list_base<_Tp, _Alloc>::~__forward_list_base() {
   clear();
 }
 
 template <class _Tp, class _Alloc>
-inline void __forward_list_base<_Tp, _Alloc>::swap(__forward_list_base& __x)
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline void __forward_list_base<_Tp, _Alloc>::swap(__forward_list_base& __x)
 #  if _LIBCPP_STD_VER >= 14
     _NOEXCEPT
 #  else
@@ -627,7 +649,7 @@ inline void __forward_list_base<_Tp, _Alloc>::swap(__forward_list_base& __x)
 }
 
 template <class _Tp, class _Alloc>
-void __forward_list_base<_Tp, _Alloc>::clear() _NOEXCEPT {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void __forward_list_base<_Tp, _Alloc>::clear() _NOEXCEPT {
   for (__node_pointer __p = __before_begin()->__next_; __p != nullptr;) {
     __node_pointer __next = __p->__next_;
     __delete_node(__p);
@@ -672,105 +694,123 @@ public:
   typedef void __remove_return_type;
 #  endif
 
-  _LIBCPP_HIDE_FROM_ABI forward_list() _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value) {
-  } // = default;
-  _LIBCPP_HIDE_FROM_ABI explicit forward_list(const allocator_type& __a);
-  _LIBCPP_HIDE_FROM_ABI explicit forward_list(size_type __n);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI forward_list()
+      _NOEXCEPT_(is_nothrow_default_constructible<__node_allocator>::value) {} // = default;
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit forward_list(const allocator_type& __a);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit forward_list(size_type __n);
 #  if _LIBCPP_STD_VER >= 14
-  _LIBCPP_HIDE_FROM_ABI explicit forward_list(size_type __n, const allocator_type& __a);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit forward_list(size_type __n, const allocator_type& __a);
 #  endif
-  _LIBCPP_HIDE_FROM_ABI forward_list(size_type __n, const value_type& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI forward_list(size_type __n, const value_type& __v);
 
   template <__enable_if_t<__is_allocator<_Alloc>::value, int> = 0>
-  _LIBCPP_HIDE_FROM_ABI forward_list(size_type __n, const value_type& __v, const allocator_type& __a) : __base(__a) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  forward_list(size_type __n, const value_type& __v, const allocator_type& __a)
+      : __base(__a) {
     insert_after(cbefore_begin(), __n, __v);
   }
 
   template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> = 0>
-  _LIBCPP_HIDE_FROM_ABI forward_list(_InputIterator __f, _InputIterator __l);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI forward_list(_InputIterator __f, _InputIterator __l);
 
   template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> = 0>
-  _LIBCPP_HIDE_FROM_ABI forward_list(_InputIterator __f, _InputIterator __l, const allocator_type& __a);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  forward_list(_InputIterator __f, _InputIterator __l, const allocator_type& __a);
 
 #  if _LIBCPP_STD_VER >= 23
   template <_ContainerCompatibleRange<_Tp> _Range>
-  _LIBCPP_HIDE_FROM_ABI forward_list(from_range_t, _Range&& __range, const allocator_type& __a = allocator_type())
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  forward_list(from_range_t, _Range&& __range, const allocator_type& __a = allocator_type())
       : __base(__a) {
     prepend_range(std::forward<_Range>(__range));
   }
 #  endif
 
-  _LIBCPP_HIDE_FROM_ABI forward_list(const forward_list& __x);
-  _LIBCPP_HIDE_FROM_ABI forward_list(const forward_list& __x, const __type_identity_t<allocator_type>& __a);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI forward_list(const forward_list& __x);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  forward_list(const forward_list& __x, const __type_identity_t<allocator_type>& __a);
 
-  _LIBCPP_HIDE_FROM_ABI forward_list& operator=(const forward_list& __x);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI forward_list& operator=(const forward_list& __x);
 
 #  ifndef _LIBCPP_CXX03_LANG
-  _LIBCPP_HIDE_FROM_ABI forward_list(forward_list&& __x) noexcept(is_nothrow_move_constructible<__base>::value)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  forward_list(forward_list&& __x) noexcept(is_nothrow_move_constructible<__base>::value)
       : __base(std::move(__x)) {}
-  _LIBCPP_HIDE_FROM_ABI forward_list(forward_list&& __x, const __type_identity_t<allocator_type>& __a);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  forward_list(forward_list&& __x, const __type_identity_t<allocator_type>& __a);
 
-  _LIBCPP_HIDE_FROM_ABI forward_list(initializer_list<value_type> __il);
-  _LIBCPP_HIDE_FROM_ABI forward_list(initializer_list<value_type> __il, const allocator_type& __a);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI forward_list(initializer_list<value_type> __il);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI
+  forward_list(initializer_list<value_type> __il, const allocator_type& __a);
 
-  _LIBCPP_HIDE_FROM_ABI forward_list& operator=(forward_list&& __x) noexcept(
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI forward_list& operator=(forward_list&& __x) noexcept(
       (__node_traits::propagate_on_container_move_assignment::value &&
        is_nothrow_move_assignable<allocator_type>::value) ||
       allocator_traits<allocator_type>::is_always_equal::value);
 
-  _LIBCPP_HIDE_FROM_ABI forward_list& operator=(initializer_list<value_type> __il);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI forward_list& operator=(initializer_list<value_type> __il);
 
-  _LIBCPP_HIDE_FROM_ABI void assign(initializer_list<value_type> __il);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void assign(initializer_list<value_type> __il);
 #  endif // _LIBCPP_CXX03_LANG
 
   // ~forward_list() = default;
 
   template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> = 0>
-  void _LIBCPP_HIDE_FROM_ABI assign(_InputIterator __f, _InputIterator __l);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 void _LIBCPP_HIDE_FROM_ABI assign(_InputIterator __f, _InputIterator __l);
 
 #  if _LIBCPP_STD_VER >= 23
   template <_ContainerCompatibleRange<_Tp> _Range>
-  _LIBCPP_HIDE_FROM_ABI void assign_range(_Range&& __range) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void assign_range(_Range&& __range) {
     __assign_with_sentinel(ranges::begin(__range), ranges::end(__range));
   }
 #  endif
 
-  _LIBCPP_HIDE_FROM_ABI void assign(size_type __n, const value_type& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void assign(size_type __n, const value_type& __v);
 
-  _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT { return allocator_type(this->__alloc_); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI allocator_type get_allocator() const _NOEXCEPT {
+    return allocator_type(this->__alloc_);
+  }
 
-  _LIBCPP_HIDE_FROM_ABI iterator begin() _NOEXCEPT { return iterator(__base::__before_begin()->__next_); }
-  _LIBCPP_HIDE_FROM_ABI const_iterator begin() const _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator begin() _NOEXCEPT {
+    return iterator(__base::__before_begin()->__next_);
+  }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_iterator begin() const _NOEXCEPT {
     return const_iterator(__base::__before_begin()->__next_);
   }
-  _LIBCPP_HIDE_FROM_ABI iterator end() _NOEXCEPT { return iterator(nullptr); }
-  _LIBCPP_HIDE_FROM_ABI const_iterator end() const _NOEXCEPT { return const_iterator(nullptr); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator end() _NOEXCEPT { return iterator(nullptr); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_iterator end() const _NOEXCEPT {
+    return const_iterator(nullptr);
+  }
 
-  _LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_iterator cbegin() const _NOEXCEPT {
     return const_iterator(__base::__before_begin()->__next_);
   }
-  _LIBCPP_HIDE_FROM_ABI const_iterator cend() const _NOEXCEPT { return const_iterator(nullptr); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_iterator cend() const _NOEXCEPT {
+    return const_iterator(nullptr);
+  }
 
-  _LIBCPP_HIDE_FROM_ABI iterator before_begin() _NOEXCEPT { return iterator(__base::__before_begin()); }
-  _LIBCPP_HIDE_FROM_ABI const_iterator before_begin() const _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator before_begin() _NOEXCEPT {
+    return iterator(__base::__before_begin());
+  }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_iterator before_begin() const _NOEXCEPT {
     return const_iterator(__base::__before_begin());
   }
-  _LIBCPP_HIDE_FROM_ABI const_iterator cbefore_begin() const _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_iterator cbefore_begin() const _NOEXCEPT {
     return const_iterator(__base::__before_begin());
   }
 
-  [[__nodiscard__]] _LIBCPP_HIDE_FROM_ABI bool empty() const _NOEXCEPT {
+  [[__nodiscard__]] _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI bool empty() const _NOEXCEPT {
     return __base::__before_begin()->__next_ == nullptr;
   }
-  _LIBCPP_HIDE_FROM_ABI size_type max_size() const _NOEXCEPT {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI size_type max_size() const _NOEXCEPT {
     return std::min<size_type>(__node_traits::max_size(this->__alloc_), numeric_limits<difference_type>::max());
   }
 
-  _LIBCPP_HIDE_FROM_ABI reference front() {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI reference front() {
     _LIBCPP_ASSERT_NON_NULL(!empty(), "forward_list::front called on an empty list");
     return __base::__before_begin()->__next_->__get_value();
   }
-  _LIBCPP_HIDE_FROM_ABI const_reference front() const {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI const_reference front() const {
     _LIBCPP_ASSERT_NON_NULL(!empty(), "forward_list::front called on an empty list");
     return __base::__before_begin()->__next_->__get_value();
   }
@@ -778,52 +818,57 @@ public:
 #  ifndef _LIBCPP_CXX03_LANG
 #    if _LIBCPP_STD_VER >= 17
   template <class... _Args>
-  _LIBCPP_HIDE_FROM_ABI reference emplace_front(_Args&&... __args);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI reference emplace_front(_Args&&... __args);
 #    else
   template <class... _Args>
-  _LIBCPP_HIDE_FROM_ABI void emplace_front(_Args&&... __args);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void emplace_front(_Args&&... __args);
 #    endif
-  _LIBCPP_HIDE_FROM_ABI void push_front(value_type&& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void push_front(value_type&& __v);
 #  endif // _LIBCPP_CXX03_LANG
-  _LIBCPP_HIDE_FROM_ABI void push_front(const value_type& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void push_front(const value_type& __v);
 
 #  if _LIBCPP_STD_VER >= 23
   template <_ContainerCompatibleRange<_Tp> _Range>
-  _LIBCPP_HIDE_FROM_ABI void prepend_range(_Range&& __range) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void prepend_range(_Range&& __range) {
     insert_range_after(cbefore_begin(), std::forward<_Range>(__range));
   }
 #  endif
 
-  _LIBCPP_HIDE_FROM_ABI void pop_front();
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void pop_front();
 
 #  ifndef _LIBCPP_CXX03_LANG
   template <class... _Args>
-  _LIBCPP_HIDE_FROM_ABI iterator emplace_after(const_iterator __p, _Args&&... __args);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator emplace_after(const_iterator __p, _Args&&... __args);
 
-  _LIBCPP_HIDE_FROM_ABI iterator insert_after(const_iterator __p, value_type&& __v);
-  _LIBCPP_HIDE_FROM_ABI iterator insert_after(const_iterator __p, initializer_list<value_type> __il) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator insert_after(const_iterator __p, value_type&& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator
+  insert_after(const_iterator __p, initializer_list<value_type> __il) {
     return insert_after(__p, __il.begin(), __il.end());
   }
 #  endif // _LIBCPP_CXX03_LANG
-  _LIBCPP_HIDE_FROM_ABI iterator insert_after(const_iterator __p, const value_type& __v);
-  _LIBCPP_HIDE_FROM_ABI iterator insert_after(const_iterator __p, size_type __n, const value_type& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator insert_after(const_iterator __p, const value_type& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator
+  insert_after(const_iterator __p, size_type __n, const value_type& __v);
   template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> = 0>
-  _LIBCPP_HIDE_FROM_ABI iterator insert_after(const_iterator __p, _InputIterator __f, _InputIterator __l);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator
+  insert_after(const_iterator __p, _InputIterator __f, _InputIterator __l);
 
 #  if _LIBCPP_STD_VER >= 23
   template <_ContainerCompatibleRange<_Tp> _Range>
-  _LIBCPP_HIDE_FROM_ABI iterator insert_range_after(const_iterator __position, _Range&& __range) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator
+  insert_range_after(const_iterator __position, _Range&& __range) {
     return __insert_after_with_sentinel(__position, ranges::begin(__range), ranges::end(__range));
   }
 #  endif
 
   template <class _InputIterator, class _Sentinel>
-  _LIBCPP_HIDE_FROM_ABI iterator __insert_after_with_sentinel(const_iterator __p, _InputIterator __f, _Sentinel __l);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator
+  __insert_after_with_sentinel(const_iterator __p, _InputIterator __f, _Sentinel __l);
 
-  _LIBCPP_HIDE_FROM_ABI iterator erase_after(const_iterator __p);
-  _LIBCPP_HIDE_FROM_ABI iterator erase_after(const_iterator __f, const_iterator __l);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator erase_after(const_iterator __p);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI iterator erase_after(const_iterator __f, const_iterator __l);
 
-  _LIBCPP_HIDE_FROM_ABI void swap(forward_list& __x)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void swap(forward_list& __x)
 #  if _LIBCPP_STD_VER >= 14
       _NOEXCEPT
 #  else
@@ -833,55 +878,59 @@ public:
     __base::swap(__x);
   }
 
-  _LIBCPP_HIDE_FROM_ABI void resize(size_type __n);
-  _LIBCPP_HIDE_FROM_ABI void resize(size_type __n, const value_type& __v);
-  _LIBCPP_HIDE_FROM_ABI void clear() _NOEXCEPT { __base::clear(); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void resize(size_type __n);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void resize(size_type __n, const value_type& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void clear() _NOEXCEPT { __base::clear(); }
 
-  _LIBCPP_HIDE_FROM_ABI void splice_after(const_iterator __p, forward_list&& __x);
-  _LIBCPP_HIDE_FROM_ABI void splice_after(const_iterator __p, forward_list&& __x, const_iterator __i);
-  _LIBCPP_HIDE_FROM_ABI void
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void splice_after(const_iterator __p, forward_list&& __x);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void
+  splice_after(const_iterator __p, forward_list&& __x, const_iterator __i);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void
   splice_after(const_iterator __p, forward_list&& __x, const_iterator __f, const_iterator __l);
-  _LIBCPP_HIDE_FROM_ABI void splice_after(const_iterator __p, forward_list& __x);
-  _LIBCPP_HIDE_FROM_ABI void splice_after(const_iterator __p, forward_list& __x, const_iterator __i);
-  _LIBCPP_HIDE_FROM_ABI void
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void splice_after(const_iterator __p, forward_list& __x);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void
+  splice_after(const_iterator __p, forward_list& __x, const_iterator __i);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void
   splice_after(const_iterator __p, forward_list& __x, const_iterator __f, const_iterator __l);
-  _LIBCPP_HIDE_FROM_ABI __remove_return_type remove(const value_type& __v);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __remove_return_type remove(const value_type& __v);
   template <class _Predicate>
-  _LIBCPP_HIDE_FROM_ABI __remove_return_type remove_if(_Predicate __pred);
-  _LIBCPP_HIDE_FROM_ABI __remove_return_type unique() { return unique(__equal_to()); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __remove_return_type remove_if(_Predicate __pred);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __remove_return_type unique() { return unique(__equal_to()); }
   template <class _BinaryPredicate>
-  _LIBCPP_HIDE_FROM_ABI __remove_return_type unique(_BinaryPredicate __binary_pred);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __remove_return_type unique(_BinaryPredicate __binary_pred);
 #  ifndef _LIBCPP_CXX03_LANG
-  _LIBCPP_HIDE_FROM_ABI void merge(forward_list&& __x) { merge(__x, __less<>()); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void merge(forward_list&& __x) { merge(__x, __less<>()); }
   template <class _Compare>
-  _LIBCPP_HIDE_FROM_ABI void merge(forward_list&& __x, _Compare __comp) {
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void merge(forward_list&& __x, _Compare __comp) {
     merge(__x, std::move(__comp));
   }
 #  endif // _LIBCPP_CXX03_LANG
-  _LIBCPP_HIDE_FROM_ABI void merge(forward_list& __x) { merge(__x, __less<>()); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void merge(forward_list& __x) { merge(__x, __less<>()); }
   template <class _Compare>
-  _LIBCPP_HIDE_FROM_ABI void merge(forward_list& __x, _Compare __comp);
-  _LIBCPP_HIDE_FROM_ABI void sort() { sort(__less<>()); }
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void merge(forward_list& __x, _Compare __comp);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void sort() { sort(__less<>()); }
   template <class _Compare>
-  _LIBCPP_HIDE_FROM_ABI void sort(_Compare __comp);
-  _LIBCPP_HIDE_FROM_ABI void reverse() _NOEXCEPT;
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void sort(_Compare __comp);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void reverse() _NOEXCEPT;
 
 private:
 #  ifndef _LIBCPP_CXX03_LANG
-  _LIBCPP_HIDE_FROM_ABI void __move_assign(forward_list& __x, true_type)
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __move_assign(forward_list& __x, true_type)
       _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value);
-  _LIBCPP_HIDE_FROM_ABI void __move_assign(forward_list& __x, false_type);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __move_assign(forward_list& __x, false_type);
 #  endif // _LIBCPP_CXX03_LANG
 
   template <class _Iter, class _Sent>
-  _LIBCPP_HIDE_FROM_ABI void __assign_with_sentinel(_Iter __f, _Sent __l);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void __assign_with_sentinel(_Iter __f, _Sent __l);
 
   template <class _Compare>
-  static _LIBCPP_HIDE_FROM_ABI __node_pointer __merge(__node_pointer __f1, __node_pointer __f2, _Compare& __comp);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 static _LIBCPP_HIDE_FROM_ABI __node_pointer
+  __merge(__node_pointer __f1, __node_pointer __f2, _Compare& __comp);
 
   // TODO: Make this _LIBCPP_HIDE_FROM_ABI
   template <class _Compare>
-  static _LIBCPP_HIDDEN __node_pointer __sort(__node_pointer __f, difference_type __sz, _Compare& __comp);
+  _LIBCPP_CONSTEXPR_SINCE_CXX26 static _LIBCPP_HIDDEN __node_pointer
+  __sort(__node_pointer __f, difference_type __sz, _Compare& __comp);
 };
 
 #  if _LIBCPP_STD_VER >= 17
@@ -906,10 +955,10 @@ forward_list(from_range_t, _Range&&, _Alloc = _Alloc()) -> forward_list<ranges::
 #  endif
 
 template <class _Tp, class _Alloc>
-inline forward_list<_Tp, _Alloc>::forward_list(const allocator_type& __a) : __base(__a) {}
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline forward_list<_Tp, _Alloc>::forward_list(const allocator_type& __a) : __base(__a) {}
 
 template <class _Tp, class _Alloc>
-forward_list<_Tp, _Alloc>::forward_list(size_type __n) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 forward_list<_Tp, _Alloc>::forward_list(size_type __n) {
   if (__n > 0) {
     for (__begin_node_pointer __p = __base::__before_begin(); __n > 0; --__n, __p = __p->__next_as_begin()) {
       __p->__next_ = this->__create_node(/* next = */ nullptr);
@@ -919,7 +968,8 @@ forward_list<_Tp, _Alloc>::forward_list(size_type __n) {
 
 #  if _LIBCPP_STD_VER >= 14
 template <class _Tp, class _Alloc>
-forward_list<_Tp, _Alloc>::forward_list(size_type __n, const allocator_type& __base_alloc) : __base(__base_alloc) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 forward_list<_Tp, _Alloc>::forward_list(size_type __n, const allocator_type& __base_alloc)
+    : __base(__base_alloc) {
   if (__n > 0) {
     for (__begin_node_pointer __p = __base::__before_begin(); __n > 0; --__n, __p = __p->__next_as_begin()) {
       __p->__next_ = this->__create_node(/* next = */ nullptr);
@@ -929,37 +979,39 @@ forward_list<_Tp, _Alloc>::forward_list(size_type __n, const allocator_type& __b
 #  endif
 
 template <class _Tp, class _Alloc>
-forward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 forward_list<_Tp, _Alloc>::forward_list(size_type __n, const value_type& __v) {
   insert_after(cbefore_begin(), __n, __v);
 }
 
 template <class _Tp, class _Alloc>
 template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> >
-forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l) {
   insert_after(cbefore_begin(), __f, __l);
 }
 
 template <class _Tp, class _Alloc>
 template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> >
+_LIBCPP_CONSTEXPR_SINCE_CXX26
 forward_list<_Tp, _Alloc>::forward_list(_InputIterator __f, _InputIterator __l, const allocator_type& __a)
     : __base(__a) {
   insert_after(cbefore_begin(), __f, __l);
 }
 
 template <class _Tp, class _Alloc>
-forward_list<_Tp, _Alloc>::forward_list(const forward_list& __x)
+_LIBCPP_CONSTEXPR_SINCE_CXX26 forward_list<_Tp, _Alloc>::forward_list(const forward_list& __x)
     : __base(__node_traits::select_on_container_copy_construction(__x.__alloc_)) {
   insert_after(cbefore_begin(), __x.begin(), __x.end());
 }
 
 template <class _Tp, class _Alloc>
+_LIBCPP_CONSTEXPR_SINCE_CXX26
 forward_list<_Tp, _Alloc>::forward_list(const forward_list& __x, const __type_identity_t<allocator_type>& __a)
     : __base(__a) {
   insert_after(cbefore_begin(), __x.begin(), __x.end());
 }
 
 template <class _Tp, class _Alloc>
-forward_list<_Tp, _Alloc>& forward_list<_Tp, _Alloc>::operator=(const forward_list& __x) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 forward_list<_Tp, _Alloc>& forward_list<_Tp, _Alloc>::operator=(const forward_list& __x) {
   if (this != std::addressof(__x)) {
     __base::__copy_assign_alloc(__x);
     assign(__x.begin(), __x.end());
@@ -969,6 +1021,7 @@ forward_list<_Tp, _Alloc>& forward_list<_Tp, _Alloc>::operator=(const forward_li
 
 #  ifndef _LIBCPP_CXX03_LANG
 template <class _Tp, class _Alloc>
+_LIBCPP_CONSTEXPR_SINCE_CXX26
 forward_list<_Tp, _Alloc>::forward_list(forward_list&& __x, const __type_identity_t<allocator_type>& __a)
     : __base(std::move(__x), __a) {
   if (this->__alloc_ != __x.__alloc_) {
@@ -978,17 +1031,19 @@ forward_list<_Tp, _Alloc>::forward_list(forward_list&& __x, const __type_identit
 }
 
 template <class _Tp, class _Alloc>
-forward_list<_Tp, _Alloc>::forward_list(initializer_list<value_type> __il) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 forward_list<_Tp, _Alloc>::forward_list(initializer_list<value_type> __il) {
   insert_after(cbefore_begin(), __il.begin(), __il.end());
 }
 
 template <class _Tp, class _Alloc>
-forward_list<_Tp, _Alloc>::forward_list(initializer_list<value_type> __il, const allocator_type& __a) : __base(__a) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26
+forward_list<_Tp, _Alloc>::forward_list(initializer_list<value_type> __il, const allocator_type& __a)
+    : __base(__a) {
   insert_after(cbefore_begin(), __il.begin(), __il.end());
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, true_type)
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, true_type)
     _NOEXCEPT_(is_nothrow_move_assignable<allocator_type>::value) {
   clear();
   __base::__move_assign_alloc(__x);
@@ -997,7 +1052,7 @@ void forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, true_type)
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, false_type) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, false_type) {
   if (this->__alloc_ == __x.__alloc_)
     __move_assign(__x, true_type());
   else {
@@ -1007,7 +1062,8 @@ void forward_list<_Tp, _Alloc>::__move_assign(forward_list& __x, false_type) {
 }
 
 template <class _Tp, class _Alloc>
-inline forward_list<_Tp, _Alloc>& forward_list<_Tp, _Alloc>::operator=(forward_list&& __x) noexcept(
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline forward_list<_Tp, _Alloc>&
+forward_list<_Tp, _Alloc>::operator=(forward_list&& __x) noexcept(
     (__node_traits::propagate_on_container_move_assignment::value &&
      is_nothrow_move_assignable<allocator_type>::value) ||
     allocator_traits<allocator_type>::is_always_equal::value) {
@@ -1016,7 +1072,8 @@ inline forward_list<_Tp, _Alloc>& forward_list<_Tp, _Alloc>::operator=(forward_l
 }
 
 template <class _Tp, class _Alloc>
-inline forward_list<_Tp, _Alloc>& forward_list<_Tp, _Alloc>::operator=(initializer_list<value_type> __il) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline forward_list<_Tp, _Alloc>&
+forward_list<_Tp, _Alloc>::operator=(initializer_list<value_type> __il) {
   assign(__il.begin(), __il.end());
   return *this;
 }
@@ -1025,13 +1082,14 @@ inline forward_list<_Tp, _Alloc>& forward_list<_Tp, _Alloc>::operator=(initializ
 
 template <class _Tp, class _Alloc>
 template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> >
-void forward_list<_Tp, _Alloc>::assign(_InputIterator __f, _InputIterator __l) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::assign(_InputIterator __f, _InputIterator __l) {
   __assign_with_sentinel(__f, __l);
 }
 
 template <class _Tp, class _Alloc>
 template <class _Iter, class _Sent>
-_LIBCPP_HIDE_FROM_ABI void forward_list<_Tp, _Alloc>::__assign_with_sentinel(_Iter __f, _Sent __l) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI void
+forward_list<_Tp, _Alloc>::__assign_with_sentinel(_Iter __f, _Sent __l) {
   iterator __i = before_begin();
   iterator __j = std::next(__i);
   iterator __e = end();
@@ -1044,7 +1102,7 @@ _LIBCPP_HIDE_FROM_ABI void forward_list<_Tp, _Alloc>::__assign_with_sentinel(_It
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::assign(size_type __n, const value_type& __v) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::assign(size_type __n, const value_type& __v) {
   iterator __i = before_begin();
   iterator __j = std::next(__i);
   iterator __e = end();
@@ -1059,18 +1117,19 @@ void forward_list<_Tp, _Alloc>::assign(size_type __n, const value_type& __v) {
 #  ifndef _LIBCPP_CXX03_LANG
 
 template <class _Tp, class _Alloc>
-inline void forward_list<_Tp, _Alloc>::assign(initializer_list<value_type> __il) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline void forward_list<_Tp, _Alloc>::assign(initializer_list<value_type> __il) {
   assign(__il.begin(), __il.end());
 }
 
 template <class _Tp, class _Alloc>
 template <class... _Args>
+_LIBCPP_CONSTEXPR_SINCE_CXX26
 #    if _LIBCPP_STD_VER >= 17
-typename forward_list<_Tp, _Alloc>::reference
+    typename forward_list<_Tp, _Alloc>::reference
 #    else
-void
+    void
 #    endif
-forward_list<_Tp, _Alloc>::emplace_front(_Args&&... __args) {
+    forward_list<_Tp, _Alloc>::emplace_front(_Args&&... __args) {
   __base::__before_begin()->__next_ =
       this->__create_node(/* next = */ __base::__before_begin()->__next_, std::forward<_Args>(__args)...);
 #    if _LIBCPP_STD_VER >= 17
@@ -1079,7 +1138,7 @@ forward_list<_Tp, _Alloc>::emplace_front(_Args&&... __args) {
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::push_front(value_type&& __v) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::push_front(value_type&& __v) {
   __base::__before_begin()->__next_ =
       this->__create_node(/* next = */ __base::__before_begin()->__next_, std::move(__v));
 }
@@ -1087,12 +1146,12 @@ void forward_list<_Tp, _Alloc>::push_front(value_type&& __v) {
 #  endif // _LIBCPP_CXX03_LANG
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::push_front(const value_type& __v) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::push_front(const value_type& __v) {
   __base::__before_begin()->__next_ = this->__create_node(/* next = */ __base::__before_begin()->__next_, __v);
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::pop_front() {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::pop_front() {
   _LIBCPP_ASSERT_NON_NULL(!empty(), "forward_list::pop_front called on an empty list");
   __node_pointer __p                = __base::__before_begin()->__next_;
   __base::__before_begin()->__next_ = __p->__next_;
@@ -1103,7 +1162,7 @@ void forward_list<_Tp, _Alloc>::pop_front() {
 
 template <class _Tp, class _Alloc>
 template <class... _Args>
-typename forward_list<_Tp, _Alloc>::iterator
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::iterator
 forward_list<_Tp, _Alloc>::emplace_after(const_iterator __p, _Args&&... __args) {
   __begin_node_pointer const __r = __p.__get_begin();
   __r->__next_                   = this->__create_node(/* next = */ __r->__next_, std::forward<_Args>(__args)...);
@@ -1111,7 +1170,7 @@ forward_list<_Tp, _Alloc>::emplace_after(const_iterator __p, _Args&&... __args)
 }
 
 template <class _Tp, class _Alloc>
-typename forward_list<_Tp, _Alloc>::iterator
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::iterator
 forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, value_type&& __v) {
   __begin_node_pointer const __r = __p.__get_begin();
   __r->__next_                   = this->__create_node(/* next = */ __r->__next_, std::move(__v));
@@ -1121,7 +1180,7 @@ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, value_type&& __v) {
 #  endif // _LIBCPP_CXX03_LANG
 
 template <class _Tp, class _Alloc>
-typename forward_list<_Tp, _Alloc>::iterator
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::iterator
 forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, const value_type& __v) {
   __begin_node_pointer const __r = __p.__get_begin();
   __r->__next_                   = this->__create_node(/* next = */ __r->__next_, __v);
@@ -1129,7 +1188,7 @@ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, const value_type& __
 }
 
 template <class _Tp, class _Alloc>
-typename forward_list<_Tp, _Alloc>::iterator
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::iterator
 forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, size_type __n, const value_type& __v) {
   __begin_node_pointer __r = __p.__get_begin();
   if (__n > 0) {
@@ -1153,21 +1212,22 @@ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, size_type __n, const
 #  endif // _LIBCPP_HAS_EXCEPTIONS
     __last->__next_ = __r->__next_;
     __r->__next_    = __first;
-    __r             = static_cast<__begin_node_pointer>(__last);
+    __r             = __forward_node_traits<__node_pointer>::__as_iter_node(__last);
+    // __r             = static_cast<__begin_node_pointer>(__last);
   }
   return iterator(__r);
 }
 
 template <class _Tp, class _Alloc>
 template <class _InputIterator, __enable_if_t<__has_input_iterator_category<_InputIterator>::value, int> >
-typename forward_list<_Tp, _Alloc>::iterator
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::iterator
 forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, _InputIterator __f, _InputIterator __l) {
   return __insert_after_with_sentinel(__p, std::move(__f), std::move(__l));
 }
 
 template <class _Tp, class _Alloc>
 template <class _InputIterator, class _Sentinel>
-_LIBCPP_HIDE_FROM_ABI typename forward_list<_Tp, _Alloc>::iterator
+_LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI typename forward_list<_Tp, _Alloc>::iterator
 forward_list<_Tp, _Alloc>::__insert_after_with_sentinel(const_iterator __p, _InputIterator __f, _Sentinel __l) {
   __begin_node_pointer __r = __p.__get_begin();
 
@@ -1194,14 +1254,16 @@ forward_list<_Tp, _Alloc>::__insert_after_with_sentinel(const_iterator __p, _Inp
 
     __last->__next_ = __r->__next_;
     __r->__next_    = __first;
-    __r             = static_cast<__begin_node_pointer>(__last);
+    __r             = __forward_node_traits<__node_pointer>::__as_iter_node(__last);
+    // __r             = static_cast<__begin_node_pointer>(__last);
   }
 
   return iterator(__r);
 }
 
 template <class _Tp, class _Alloc>
-typename forward_list<_Tp, _Alloc>::iterator forward_list<_Tp, _Alloc>::erase_after(const_iterator __f) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::iterator
+forward_list<_Tp, _Alloc>::erase_after(const_iterator __f) {
   __begin_node_pointer __p = __f.__get_begin();
   __node_pointer __n       = __p->__next_;
   __p->__next_             = __n->__next_;
@@ -1210,7 +1272,7 @@ typename forward_list<_Tp, _Alloc>::iterator forward_list<_Tp, _Alloc>::erase_af
 }
 
 template <class _Tp, class _Alloc>
-typename forward_list<_Tp, _Alloc>::iterator
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::iterator
 forward_list<_Tp, _Alloc>::erase_after(const_iterator __f, const_iterator __l) {
   __node_pointer __e = __l.__get_unsafe_node_pointer();
   if (__f != __l) {
@@ -1230,7 +1292,7 @@ forward_list<_Tp, _Alloc>::erase_after(const_iterator __f, const_iterator __l) {
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::resize(size_type __n) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::resize(size_type __n) {
   size_type __sz = 0;
   iterator __p   = before_begin();
   iterator __i   = begin();
@@ -1250,7 +1312,7 @@ void forward_list<_Tp, _Alloc>::resize(size_type __n) {
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::resize(size_type __n, const value_type& __v) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::resize(size_type __n, const value_type& __v) {
   size_type __sz = 0;
   iterator __p   = before_begin();
   iterator __i   = begin();
@@ -1270,7 +1332,7 @@ void forward_list<_Tp, _Alloc>::resize(size_type __n, const value_type& __v) {
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list& __x) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list& __x) {
   if (!__x.empty()) {
     if (__p.__get_begin()->__next_ != nullptr) {
       const_iterator __lm1 = __x.before_begin();
@@ -1284,7 +1346,8 @@ void forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list& _
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list& /*__other*/, const_iterator __i) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void
+forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list& /*__other*/, const_iterator __i) {
   const_iterator __lm1 = std::next(__i);
   if (__p != __i && __p != __lm1) {
     __i.__get_begin()->__next_   = __lm1.__get_begin()->__next_;
@@ -1294,7 +1357,7 @@ void forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list& /
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::splice_after(
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::splice_after(
     const_iterator __p, forward_list& /*__other*/, const_iterator __f, const_iterator __l) {
   if (__f != __l && __p != __f) {
     const_iterator __lm1 = __f;
@@ -1309,24 +1372,26 @@ void forward_list<_Tp, _Alloc>::splice_after(
 }
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI void forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list&& __x) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI void
+forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list&& __x) {
   splice_after(__p, __x);
 }
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI void
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI void
 forward_list<_Tp, _Alloc>::splice_after(const_iterator __p, forward_list&& __x, const_iterator __i) {
   splice_after(__p, __x, __i);
 }
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI void forward_list<_Tp, _Alloc>::splice_after(
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI void forward_list<_Tp, _Alloc>::splice_after(
     const_iterator __p, forward_list&& __x, const_iterator __f, const_iterator __l) {
   splice_after(__p, __x, __f, __l);
 }
 
 template <class _Tp, class _Alloc>
-typename forward_list<_Tp, _Alloc>::__remove_return_type forward_list<_Tp, _Alloc>::remove(const value_type& __v) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::__remove_return_type
+forward_list<_Tp, _Alloc>::remove(const value_type& __v) {
   forward_list<_Tp, _Alloc> __deleted_nodes(get_allocator()); // collect the nodes we're removing
   typename forward_list<_Tp, _Alloc>::size_type __count_removed = 0;
   const iterator __e                                            = end();
@@ -1349,7 +1414,8 @@ typename forward_list<_Tp, _Alloc>::__remove_return_type forward_list<_Tp, _Allo
 
 template <class _Tp, class _Alloc>
 template <class _Predicate>
-typename forward_list<_Tp, _Alloc>::__remove_return_type forward_list<_Tp, _Alloc>::remove_if(_Predicate __pred) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::__remove_return_type
+forward_list<_Tp, _Alloc>::remove_if(_Predicate __pred) {
   forward_list<_Tp, _Alloc> __deleted_nodes(get_allocator()); // collect the nodes we're removing
   typename forward_list<_Tp, _Alloc>::size_type __count_removed = 0;
   const iterator __e                                            = end();
@@ -1372,7 +1438,7 @@ typename forward_list<_Tp, _Alloc>::__remove_return_type forward_list<_Tp, _Allo
 
 template <class _Tp, class _Alloc>
 template <class _BinaryPredicate>
-typename forward_list<_Tp, _Alloc>::__remove_return_type
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::__remove_return_type
 forward_list<_Tp, _Alloc>::unique(_BinaryPredicate __binary_pred) {
   forward_list<_Tp, _Alloc> __deleted_nodes(get_allocator()); // collect the nodes we're removing
   typename forward_list<_Tp, _Alloc>::size_type __count_removed = 0;
@@ -1390,7 +1456,7 @@ forward_list<_Tp, _Alloc>::unique(_BinaryPredicate __binary_pred) {
 
 template <class _Tp, class _Alloc>
 template <class _Compare>
-void forward_list<_Tp, _Alloc>::merge(forward_list& __x, _Compare __comp) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::merge(forward_list& __x, _Compare __comp) {
   if (this != std::addressof(__x)) {
     __base::__before_begin()->__next_ =
         __merge(__base::__before_begin()->__next_, __x.__before_begin()->__next_, __comp);
@@ -1400,7 +1466,7 @@ void forward_list<_Tp, _Alloc>::merge(forward_list& __x, _Compare __comp) {
 
 template <class _Tp, class _Alloc>
 template <class _Compare>
-typename forward_list<_Tp, _Alloc>::__node_pointer
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::__node_pointer
 forward_list<_Tp, _Alloc>::__merge(__node_pointer __f1, __node_pointer __f2, _Compare& __comp) {
   if (__f1 == nullptr)
     return __f2;
@@ -1437,13 +1503,13 @@ forward_list<_Tp, _Alloc>::__merge(__node_pointer __f1, __node_pointer __f2, _Co
 
 template <class _Tp, class _Alloc>
 template <class _Compare>
-inline void forward_list<_Tp, _Alloc>::sort(_Compare __comp) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline void forward_list<_Tp, _Alloc>::sort(_Compare __comp) {
   __base::__before_begin()->__next_ = __sort(__base::__before_begin()->__next_, std::distance(begin(), end()), __comp);
 }
 
 template <class _Tp, class _Alloc>
 template <class _Compare>
-typename forward_list<_Tp, _Alloc>::__node_pointer
+_LIBCPP_CONSTEXPR_SINCE_CXX26 typename forward_list<_Tp, _Alloc>::__node_pointer
 forward_list<_Tp, _Alloc>::__sort(__node_pointer __f1, difference_type __sz, _Compare& __comp) {
   switch (__sz) {
   case 0:
@@ -1467,7 +1533,7 @@ forward_list<_Tp, _Alloc>::__sort(__node_pointer __f1, difference_type __sz, _Co
 }
 
 template <class _Tp, class _Alloc>
-void forward_list<_Tp, _Alloc>::reverse() _NOEXCEPT {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 void forward_list<_Tp, _Alloc>::reverse() _NOEXCEPT {
   __node_pointer __p = __base::__before_begin()->__next_;
   if (__p != nullptr) {
     __node_pointer __f = __p->__next_;
@@ -1483,7 +1549,8 @@ void forward_list<_Tp, _Alloc>::reverse() _NOEXCEPT {
 }
 
 template <class _Tp, class _Alloc>
-_LIBCPP_HIDE_FROM_ABI bool operator==(const forward_list<_Tp, _Alloc>& __x, const forward_list<_Tp, _Alloc>& __y) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI bool
+operator==(const forward_list<_Tp, _Alloc>& __x, const forward_list<_Tp, _Alloc>& __y) {
   typedef forward_list<_Tp, _Alloc> _Cp;
   typedef typename _Cp::const_iterator _Ip;
   _Ip __ix = __x.begin();
@@ -1499,31 +1566,31 @@ _LIBCPP_HIDE_FROM_ABI bool operator==(const forward_list<_Tp, _Alloc>& __x, cons
 #  if _LIBCPP_STD_VER <= 17
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI bool
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI bool
 operator!=(const forward_list<_Tp, _Alloc>& __x, const forward_list<_Tp, _Alloc>& __y) {
   return !(__x == __y);
 }
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI bool
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI bool
 operator<(const forward_list<_Tp, _Alloc>& __x, const forward_list<_Tp, _Alloc>& __y) {
   return std::lexicographical_compare(__x.begin(), __x.end(), __y.begin(), __y.end());
 }
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI bool
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI bool
 operator>(const forward_list<_Tp, _Alloc>& __x, const forward_list<_Tp, _Alloc>& __y) {
   return __y < __x;
 }
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI bool
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI bool
 operator>=(const forward_list<_Tp, _Alloc>& __x, const forward_list<_Tp, _Alloc>& __y) {
   return !(__x < __y);
 }
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI bool
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI bool
 operator<=(const forward_list<_Tp, _Alloc>& __x, const forward_list<_Tp, _Alloc>& __y) {
   return !(__y < __x);
 }
@@ -1531,7 +1598,7 @@ operator<=(const forward_list<_Tp, _Alloc>& __x, const forward_list<_Tp, _Alloc>
 #  else // #if _LIBCPP_STD_VER <= 17
 
 template <class _Tp, class _Allocator>
-_LIBCPP_HIDE_FROM_ABI __synth_three_way_result<_Tp>
+_LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __synth_three_way_result<_Tp>
 operator<=>(const forward_list<_Tp, _Allocator>& __x, const forward_list<_Tp, _Allocator>& __y) {
   return std::lexicographical_compare_three_way(__x.begin(), __x.end(), __y.begin(), __y.end(), std::__synth_three_way);
 }
@@ -1539,20 +1606,20 @@ operator<=>(const forward_list<_Tp, _Allocator>& __x, const forward_list<_Tp, _A
 #  endif // #if _LIBCPP_STD_VER <= 17
 
 template <class _Tp, class _Alloc>
-inline _LIBCPP_HIDE_FROM_ABI void swap(forward_list<_Tp, _Alloc>& __x, forward_list<_Tp, _Alloc>& __y)
-    _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) {
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI void
+swap(forward_list<_Tp, _Alloc>& __x, forward_list<_Tp, _Alloc>& __y) _NOEXCEPT_(_NOEXCEPT_(__x.swap(__y))) {
   __x.swap(__y);
 }
 
 #  if _LIBCPP_STD_VER >= 20
 template <class _Tp, class _Allocator, class _Predicate>
-inline _LIBCPP_HIDE_FROM_ABI typename forward_list<_Tp, _Allocator>::size_type
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI typename forward_list<_Tp, _Allocator>::size_type
 erase_if(forward_list<_Tp, _Allocator>& __c, _Predicate __pred) {
   return __c.remove_if(__pred);
 }
 
 template <class _Tp, class _Allocator, class _Up>
-inline _LIBCPP_HIDE_FROM_ABI typename forward_list<_Tp, _Allocator>::size_type
+_LIBCPP_CONSTEXPR_SINCE_CXX26 inline _LIBCPP_HIDE_FROM_ABI typename forward_list<_Tp, _Allocator>::size_type
 erase(forward_list<_Tp, _Allocator>& __c, const _Up& __v) {
   return std::erase_if(__c, [&](const auto& __elem) -> bool { return __elem == __v; });
 }
diff --git a/libcxx/include/version b/libcxx/include/version
index 65fae111dc8ed..87c4ede9a7e59 100644
--- a/libcxx/include/version
+++ b/libcxx/include/version
@@ -68,6 +68,7 @@ __cpp_lib_constexpr_charconv                            202207L <charconv>
 __cpp_lib_constexpr_cmath                               202202L <cmath> <cstdlib>
 __cpp_lib_constexpr_complex                             201711L <complex>
 __cpp_lib_constexpr_dynamic_alloc                       201907L <memory>
+__cpp_lib_constexpr_forward_list                        202502L <forward_list>
 __cpp_lib_constexpr_functional                          201907L <functional>
 __cpp_lib_constexpr_iterator                            201811L <iterator>
 __cpp_lib_constexpr_memory                              202202L <memory>
@@ -543,6 +544,7 @@ __cpp_lib_void_t                                        201411L <type_traits>
 # define __cpp_lib_bitset                               202306L
 # undef  __cpp_lib_constexpr_algorithms
 # define __cpp_lib_constexpr_algorithms                 202306L
+# define __cpp_lib_constexpr_forward_list               202502L
 # if !defined(_LIBCPP_ABI_VCRUNTIME)
 #   define __cpp_lib_constexpr_new                      202406L
 # endif
diff --git a/libcxx/test/std/containers/sequences/forwardlist/compare.three_way.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/compare.three_way.pass.cpp
index 52adfc4d85985..a9ef855e9a73e 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/compare.three_way.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/compare.three_way.pass.cpp
@@ -11,7 +11,7 @@
 
 // template<class T, class Allocator>
 //   synth-three-way-result<T> operator<=>(const forward_list<T, Allocator>& x,
-//                                         const forward_list<T, Allocator>& y);
+//                                         const forward_list<T, Allocator>& y); // constexpr since C++26
 
 #include <cassert>
 #include <forward_list>
@@ -20,6 +20,9 @@
 
 int main(int, char**) {
   assert(test_sequence_container_spaceship<std::forward_list>());
-  // `std::forward_list` is not constexpr, so no `static_assert` test here.
+#if TEST_STD_VER >= 26
+  static_assert(test_sequence_container_spaceship<std::forward_list>());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/empty.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/empty.pass.cpp
index dbc0631d11930..4482d26f308a6 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/empty.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/empty.pass.cpp
@@ -10,7 +10,7 @@
 
 // class forward_list
 
-// bool empty() const noexcept;
+// bool empty() const noexcept; // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef std::forward_list<int> C;
     C c;
@@ -42,5 +42,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp
index 757db7d957f5f..50b549f17d561 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.access/front.pass.cpp
@@ -8,17 +8,18 @@
 
 // <forward_list>
 
-// reference       front();
-// const_reference front() const;
+// reference       front();       // constexpr since C++26
+// const_reference front() const; // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
 #include <iterator>
 
+#include "test_allocator.h"
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -58,5 +59,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.compile.fail.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.compile.fail.cpp
index 31893a1b95994..4645560048cf6 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.compile.fail.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.compile.fail.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// explicit forward_list(const allocator_type& a);
+// explicit forward_list(const allocator_type& a); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -16,7 +16,7 @@
 #include "test_allocator.h"
 #include "../../../NotConstructible.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef test_allocator<NotConstructible> A;
     typedef A::value_type T;
@@ -26,5 +26,14 @@ int main(int, char**) {
     assert(c.empty());
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  test();
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp
index bfb330fdaf9fc..ffc6d37f28160 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/alloc.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// explicit forward_list(const allocator_type& a);
+// explicit forward_list(const allocator_type& a); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "../../../NotConstructible.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef test_allocator<NotConstructible> A;
     typedef A::value_type T;
@@ -46,5 +46,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp
index 27d450c63dcae..b99af4ccb79ec 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_copy.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// forward_list& operator=(const forward_list& x);
+// forward_list& operator=(const forward_list& x); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "test_allocator.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef test_allocator<int> A;
@@ -143,5 +143,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp
index 1cdcca82d3352..ea2802b323a91 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_init.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// void assign(initializer_list<value_type> il);
+// void assign(initializer_list<value_type> il); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -65,5 +65,14 @@ int main(int, char**) {
     assert(n == 4);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp
index 998a7e11ef343..9c88db6166ba7 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_move.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// forward_list& operator=(forward_list&& x);
+// forward_list& operator=(forward_list&& x); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -21,7 +21,7 @@
 #include "MoveOnly.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef MoveOnly T;
     typedef test_allocator<T> A;
@@ -194,5 +194,14 @@ int main(int, char**) {
     assert(c0.empty());
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp
index a22d6c4985bc5..d21898dc4663a 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_op_init.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// forward_list& operator=(initializer_list<value_type> il);
+// forward_list& operator=(initializer_list<value_type> il); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -65,5 +65,14 @@ int main(int, char**) {
     assert(n == 4);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
index 9a35328740790..1601b4b47acd1 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_range.pass.cpp
@@ -9,7 +9,7 @@
 // <forward_list>
 
 // template <class InputIterator>
-//     void assign(InputIterator first, InputIterator last);
+//     void assign(InputIterator first, InputIterator last); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "test_iterators.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -75,5 +75,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp
index b0fbfa3249e5e..75626b47c5273 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/assign_size_value.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void assign(size_type n, const value_type& v);
+// void assign(size_type n, const value_type& v); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -17,7 +17,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -65,5 +65,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp
index 22d5054b9ae18..12d701bff4b68 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/copy.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// forward_list(const forward_list& x);
+// forward_list(const forward_list& x); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "test_allocator.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef test_allocator<int> A;
@@ -64,5 +64,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp
index a61233e4b5d22..fc3ff485b0667 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/copy_alloc.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// forward_list(const forward_list& x, const allocator_type& a);
+// forward_list(const forward_list& x, const allocator_type& a); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "test_allocator.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef test_allocator<int> A;
@@ -64,5 +64,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
index b493a89b78003..e0ea8bf66cb3b 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/default.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// forward_list();
+// forward_list(); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -16,7 +16,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -38,5 +38,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/from_range.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/from_range.pass.cpp
index 312f6dbad3550..d1e1734e86f9f 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/from_range.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/from_range.pass.cpp
@@ -9,14 +9,14 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
 
 // template<container-compatible-range<T> R>
-//   forward_list(from_range_t, R&& rg, const Allocator& = Allocator()); // C++23
+//   forward_list(from_range_t, R&& rg, const Allocator& = Allocator()); // C++23; constexpr since C++26
 
 #include <forward_list>
 
 #include "../../from_range_sequence_containers.h"
 #include "test_macros.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   for_all_iterators_and_allocators<int>([]<class Iter, class Sent, class Alloc>() {
     test_sequence_container<std::forward_list, int, Iter, Sent, Alloc>([](const auto&) {
       // No additional validation to do.
@@ -26,8 +26,19 @@ int main(int, char**) {
 
   static_assert(test_constraints<std::forward_list, int, double>());
 
-  test_exception_safety_throwing_copy<std::forward_list>();
-  test_exception_safety_throwing_allocator<std::forward_list, int>();
+  if (!TEST_IS_CONSTANT_EVALUATED) {
+    test_exception_safety_throwing_copy<std::forward_list>();
+    test_exception_safety_throwing_allocator<std::forward_list, int>();
+  }
+
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
 
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp
index b42242b0a83d4..b7acf60aa70cc 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/init.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// forward_list(initializer_list<value_type> il);
+// forward_list(initializer_list<value_type> il); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -38,5 +38,14 @@ int main(int, char**) {
     assert(n == 10);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp
index 0b29cbfa9254d..33d569c921a94 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/init_alloc.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// forward_list(initializer_list<value_type> il, const allocator_type& a);
+// forward_list(initializer_list<value_type> il, const allocator_type& a); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "test_allocator.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef test_allocator<T> A;
@@ -43,5 +43,14 @@ int main(int, char**) {
     assert(c.get_allocator() == A());
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp
index 762e252ca76fe..20575479f7357 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// forward_list(forward_list&& x);
+// forward_list(forward_list&& x); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -21,7 +21,7 @@
 #include "MoveOnly.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef MoveOnly T;
     typedef test_allocator<T> A;
@@ -68,5 +68,14 @@ int main(int, char**) {
     assert(c.get_allocator() == A());
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp
index a9bc2cb12f288..219505bf4fd17 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/move_alloc.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// forward_list(forward_list&& x, const allocator_type& a);
+// forward_list(forward_list&& x, const allocator_type& a); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -21,7 +21,7 @@
 #include "MoveOnly.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef MoveOnly T;
     typedef test_allocator<T> A;
@@ -68,5 +68,14 @@ int main(int, char**) {
     assert(c.get_allocator() == A());
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp
index ebd0e6a5bd1e0..61393eb28938e 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range.pass.cpp
@@ -9,7 +9,7 @@
 // <forward_list>
 
 // template <class InputIterator>
-//     forward_list(InputIterator first, InputIterator last);
+//     forward_list(InputIterator first, InputIterator last); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "test_iterators.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -45,5 +45,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
index 4a28041ad2cbc..c0637420e328a 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/range_alloc.pass.cpp
@@ -10,7 +10,7 @@
 
 // template <class InputIterator>
 //     forward_list(InputIterator first, InputIterator last,
-//                  const allocator_type& a);
+//                  const allocator_type& a);                 // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -21,7 +21,7 @@
 #include "test_iterators.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef test_allocator<T> A;
@@ -51,5 +51,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp
index 81b128d2149e3..206854560c19f 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size.pass.cpp
@@ -8,8 +8,8 @@
 
 // <forward_list>
 
-// explicit forward_list(size_type n);
-// explicit forward_list(size_type n, const Alloc& a);
+// explicit forward_list(size_type n);                 // constexpr since C++26
+// explicit forward_list(size_type n, const Alloc& a); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp
index 663422d1c3c30..85d11e3f40a2f 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// forward_list(size_type n, const value_type& v);
+// forward_list(size_type n, const value_type& v); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -16,7 +16,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -42,5 +42,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp
index af7f7471d4c98..abcdf62452b89 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/size_value_alloc.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// forward_list(size_type n, const value_type& v, const allocator_type& a);
+// forward_list(size_type n, const value_type& v, const allocator_type& a); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -17,7 +17,7 @@
 #include "test_allocator.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef test_allocator<int> A;
     typedef A::value_type T;
@@ -47,5 +47,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase.pass.cpp
index 1044d779220ee..86d7769fe16ee 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase.pass.cpp
@@ -11,7 +11,7 @@
 
 // template <class T, class Allocator, class U>
 //   typename forward_list<T, Allocator>::size_type
-//   erase(forward_list<T, Allocator>& c, const U& value);
+//   erase(forward_list<T, Allocator>& c, const U& value); // constexpr since C++26
 
 #include <forward_list>
 #include <optional>
@@ -21,14 +21,14 @@
 #include "min_allocator.h"
 
 template <class S, class U>
-void test0(S s, U val, S expected, std::size_t expected_erased_count) {
+TEST_CONSTEXPR_CXX26 void test0(S s, U val, S expected, std::size_t expected_erased_count) {
   ASSERT_SAME_TYPE(typename S::size_type, decltype(std::erase(s, val)));
   assert(expected_erased_count == std::erase(s, val));
   assert(s == expected);
 }
 
 template <class S>
-void test() {
+TEST_CONSTEXPR_CXX26 void test() {
   test0(S(), 1, S(), 0);
 
   test0(S({1}), 1, S(), 1);
@@ -62,13 +62,21 @@ void test() {
   test0(S({1, 2, 1}), opt(3), S({1, 2, 1}), 0);
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   test<std::forward_list<int>>();
   test<std::forward_list<int, min_allocator<int>>>();
   test<std::forward_list<int, test_allocator<int>>>();
-
   test<std::forward_list<long>>();
   test<std::forward_list<double>>();
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase_if.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase_if.pass.cpp
index c4f45a1069a2b..c665f9cccbf0a 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase_if.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.erasure/erase_if.pass.cpp
@@ -11,7 +11,7 @@
 
 // template <class T, class Allocator, class Predicate>
 //   typename forward_list<T, Allocator>::size_type
-//   erase_if(forward_list<T, Allocator>& c, Predicate pred);
+//   erase_if(forward_list<T, Allocator>& c, Predicate pred); // constexpr since C++26
 
 #include <forward_list>
 
@@ -20,14 +20,14 @@
 #include "min_allocator.h"
 
 template <class S, class Pred>
-void test0(S s, Pred p, S expected, std::size_t expected_erased_count) {
+TEST_CONSTEXPR_CXX26 void test0(S s, Pred p, S expected, std::size_t expected_erased_count) {
   ASSERT_SAME_TYPE(typename S::size_type, decltype(std::erase_if(s, p)));
   assert(expected_erased_count == std::erase_if(s, p));
   assert(s == expected);
 }
 
 template <typename S>
-void test() {
+TEST_CONSTEXPR_CXX26 void test() {
   auto is1   = [](auto v) { return v == 1; };
   auto is2   = [](auto v) { return v == 2; };
   auto is3   = [](auto v) { return v == 3; };
@@ -64,13 +64,21 @@ void test() {
   test0(S({1, 2, 3}), False, S({1, 2, 3}), 0);
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   test<std::forward_list<int>>();
   test<std::forward_list<int, min_allocator<int>>>();
   test<std::forward_list<int, test_allocator<int>>>();
-
   test<std::forward_list<long>>();
   test<std::forward_list<double>>();
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp
index d66d2cd879515..52b5d87860aab 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/before_begin.pass.cpp
@@ -8,9 +8,9 @@
 
 // <forward_list>
 
-// iterator       before_begin();
-// const_iterator before_begin() const;
-// const_iterator cbefore_begin() const;
+// iterator       before_begin();        // constexpr since C++26
+// const_iterator before_begin() const;  // constexpr since C++26
+// const_iterator cbefore_begin() const; // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -101,5 +101,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
index 135689b2321c3..560c47b17958f 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterators.pass.cpp
@@ -8,12 +8,12 @@
 
 // <forward_list>
 
-// iterator       begin();
-// iterator       end();
-// const_iterator begin()  const;
-// const_iterator end()    const;
-// const_iterator cbegin() const;
-// const_iterator cend()   const;
+// iterator       begin();        // constexpr since C++26
+// iterator       end();          // constexpr since C++26
+// const_iterator begin()  const; // constexpr since C++26
+// const_iterator end()    const; // constexpr since C++26
+// const_iterator cbegin() const; // constexpr since C++26
+// const_iterator cend()   const; // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -22,7 +22,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -69,6 +69,8 @@ int main(int, char**) {
     typedef std::forward_list<T> C;
     C::iterator i;
     C::const_iterator j;
+    (void)i;
+    (void)j;
   }
 #if TEST_STD_VER >= 11
   {
@@ -117,6 +119,8 @@ int main(int, char**) {
     typedef std::forward_list<T, min_allocator<T>> C;
     C::iterator i;
     C::const_iterator j;
+    (void)i;
+    (void)j;
   }
 #endif
 #if TEST_STD_VER > 11
@@ -142,5 +146,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/assign_range.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/assign_range.pass.cpp
index a27cc757025b5..9a3adec1d9756 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/assign_range.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/assign_range.pass.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
 
 // template<container-compatible-range<T> R>
-//   constexpr void prepend_range(R&& rg); // C++23
+//   constexpr void prepend_range(R&& rg); // C++23; constexpr since C++26
 
 #include <forward_list>
 
@@ -21,7 +21,7 @@
 //   {empty/one-element/full} container);
 // - prepending move-only elements;
 // - an exception is thrown when copying the elements or when allocating new elements.
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   static_assert(test_constraints_assign_range<std::forward_list, int, double>());
 
   for_all_iterators_and_allocators<int, const int*>([]<class Iter, class Sent, class Alloc>() {
@@ -31,8 +31,19 @@ int main(int, char**) {
   });
   test_sequence_prepend_range_move_only<std::forward_list>();
 
-  test_prepend_range_exception_safety_throwing_copy<std::forward_list>();
-  test_prepend_range_exception_safety_throwing_allocator<std::forward_list, int>();
+  if (!TEST_IS_CONSTANT_EVALUATED) {
+    test_prepend_range_exception_safety_throwing_copy<std::forward_list>();
+    test_prepend_range_exception_safety_throwing_allocator<std::forward_list, int>();
+  }
+
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
 
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp
index 9f6d34b701df7..2e1768cf8bad9 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/clear.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void clear() noexcept;
+// void clear() noexcept; // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "../../../NotConstructible.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef NotConstructible T;
     typedef std::forward_list<T> C;
@@ -64,5 +64,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp
index f77d47ee7c74f..6433607af9b39 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_after.pass.cpp
@@ -11,7 +11,7 @@
 // <forward_list>
 
 // template <class... Args>
-//     iterator emplace_after(const_iterator p, Args&&... args);
+//     iterator emplace_after(const_iterator p, Args&&... args); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -20,7 +20,7 @@
 #include "../../../Emplaceable.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef Emplaceable T;
     typedef std::forward_list<T> C;
@@ -84,5 +84,14 @@ int main(int, char**) {
     assert(std::distance(c.begin(), c.end()) == 4);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp
index cd3bb20c52ae5..46ae27b43622e 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/emplace_front.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// template <class... Args> reference emplace_front(Args&&... args);
+// template <class... Args> reference emplace_front(Args&&... args); // constexpr since C++26
 // return type is 'reference' in C++17; 'void' before
 
 #include <forward_list>
@@ -21,7 +21,7 @@
 #include "../../../Emplaceable.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef Emplaceable T;
     typedef std::forward_list<T> C;
@@ -67,5 +67,14 @@ int main(int, char**) {
     assert(std::distance(c.begin(), c.end()) == 2);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp
index e85951798526d..73cb03c2cb7d2 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_many.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// iterator erase_after(const_iterator first, const_iterator last);
+// iterator erase_after(const_iterator first, const_iterator last); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -17,7 +17,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -153,5 +153,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp
index 892228e76def7..12997f1dad3b9 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/erase_after_one.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// iterator erase_after(const_iterator p);
+// iterator erase_after(const_iterator p); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -17,7 +17,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -95,5 +95,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp
index 8443158413e7f..d93789dd6bb5c 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_const.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// iterator insert_after(const_iterator p, const value_type& v);
+// iterator insert_after(const_iterator p, const value_type& v); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -16,7 +16,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -84,5 +84,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp
index de924a10c18f0..54be47f4264ff 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_init.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// iterator insert_after(const_iterator p, initializer_list<value_type> il);
+// iterator insert_after(const_iterator p, initializer_list<value_type> il); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -70,5 +70,14 @@ int main(int, char**) {
     assert(*std::next(c.begin(), 4) == 2);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
index af810d0f6961c..f89fbd7619da2 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_range.pass.cpp
@@ -10,7 +10,7 @@
 
 // template <class InputIterator>
 //     iterator insert_after(const_iterator p,
-//                           InputIterator first, InputIterator last);
+//                           InputIterator first, InputIterator last); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "test_iterators.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -77,5 +77,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp
index acd4bc73f724e..01b76f5cd64f1 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_rv.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// iterator insert_after(const_iterator p, value_type&& v);
+// iterator insert_after(const_iterator p, value_type&& v); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "MoveOnly.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef MoveOnly T;
     typedef std::forward_list<T> C;
@@ -85,5 +85,14 @@ int main(int, char**) {
     assert(std::distance(c.begin(), c.end()) == 4);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp
index 2506f04311e0e..f4f0521ad2371 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_after_size_value.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// iterator insert_after(const_iterator p, size_type n, const value_type& v);
+// iterator insert_after(const_iterator p, size_type n, const value_type& v); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -16,7 +16,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -70,5 +70,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_range_after.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_range_after.pass.cpp
index 25f4c43f38486..71a291430b435 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_range_after.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/insert_range_after.pass.cpp
@@ -8,8 +8,10 @@
 
 // UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
 
+// ADDITIONAL_COMPILE_FLAGS(has-fconstexpr-steps): -fconstexpr-steps=20000000
+
 // template<container-compatible-range<T> R>
-//   constexpr iterator insert_range_after(const_iterator position, R&& rg); // C++23
+//   constexpr iterator insert_range_after(const_iterator position, R&& rg); // C++23; constexpr since C++26
 
 #include <forward_list>
 
@@ -321,7 +323,7 @@ constexpr void test_sequence_insert_range_after() {
   }
 }
 
-void test_sequence_insert_range_after_move_only() {
+TEST_CONSTEXPR_CXX26 void test_sequence_insert_range_after_move_only() {
   MoveOnly input[5];
   std::ranges::subrange in(std::move_iterator{input}, std::move_iterator{input + 5});
 
@@ -366,7 +368,7 @@ void test_insert_range_after_exception_safety_throwing_allocator() {
 #endif
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   static_assert(test_constraints_insert_range_after<std::forward_list, int, double>());
 
   for_all_iterators_and_allocators<int, const int*>([]<class Iter, class Sent, class Alloc>() {
@@ -374,8 +376,19 @@ int main(int, char**) {
   });
   test_sequence_insert_range_after_move_only();
 
-  test_insert_range_after_exception_safety_throwing_copy();
-  test_insert_range_after_exception_safety_throwing_allocator<int>();
+  if (!TEST_IS_CONSTANT_EVALUATED) {
+    test_insert_range_after_exception_safety_throwing_copy();
+    test_insert_range_after_exception_safety_throwing_allocator<int>();
+  }
+
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
 
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp
index 98c7a26341179..9fcade7ff6bba 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/pop_front.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void pop_front();
+// void pop_front(); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -17,7 +17,7 @@
 #include "MoveOnly.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -71,5 +71,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/prepend_range.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/prepend_range.pass.cpp
index 418aa72052ba9..c4b9cd9bdfc41 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/prepend_range.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/prepend_range.pass.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
 
 // template<container-compatible-range<T> R>
-//   constexpr void prepend_range(R&& rg); // C++23
+//   constexpr void prepend_range(R&& rg); // C++23; constexpr since C++26
 
 #include <forward_list>
 
@@ -21,7 +21,7 @@
 //   {empty/one-element/full} container);
 // - prepending move-only elements;
 // - an exception is thrown when copying the elements or when allocating new elements.
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   static_assert(test_constraints_prepend_range<std::forward_list, int, double>());
 
   for_all_iterators_and_allocators<int, const int*>([]<class Iter, class Sent, class Alloc>() {
@@ -31,8 +31,19 @@ int main(int, char**) {
   });
   test_sequence_prepend_range_move_only<std::forward_list>();
 
-  test_prepend_range_exception_safety_throwing_copy<std::forward_list>();
-  test_prepend_range_exception_safety_throwing_allocator<std::forward_list, int>();
+  if (!TEST_IS_CONSTANT_EVALUATED) {
+    test_prepend_range_exception_safety_throwing_copy<std::forward_list>();
+    test_prepend_range_exception_safety_throwing_allocator<std::forward_list, int>();
+  }
+
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
 
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp
index f99c40fa0c1a0..61c5dcac0545e 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_const.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void push_front(const value_type& v);
+// void push_front(const value_type& v); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -16,7 +16,7 @@
 #include "test_macros.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -44,5 +44,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp
index 467037465eedd..cd24d6ff6af06 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_exception_safety.pass.cpp
@@ -9,7 +9,7 @@
 // UNSUPPORTED: no-exceptions
 // <forward_list>
 
-// void push_front(const value_type& x);
+// void push_front(const value_type& x); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp
index d3156c5fdd38a..b30ff7a0189e2 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/push_front_rv.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// void push_front(value_type&& v);
+// void push_front(value_type&& v); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "MoveOnly.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef MoveOnly T;
     typedef std::forward_list<T> C;
@@ -45,5 +45,14 @@ int main(int, char**) {
     assert(std::distance(c.begin(), c.end()) == 2);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp
index 2dacf458d7d9d..f80886113bf25 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void resize(size_type n);
+// void resize(size_type n); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,8 +18,8 @@
 #include "DefaultOnly.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
-  {
+TEST_CONSTEXPR_CXX26 bool test() {
+  if (!TEST_IS_CONSTANT_EVALUATED) {
     typedef DefaultOnly T;
     typedef std::forward_list<T> C;
     C c;
@@ -65,7 +65,7 @@ int main(int, char**) {
     assert(*std::next(c.begin(), 5) == 0);
   }
 #if TEST_STD_VER >= 11
-  {
+  if (!TEST_IS_CONSTANT_EVALUATED) {
     typedef DefaultOnly T;
     typedef std::forward_list<T, min_allocator<T>> C;
     C c;
@@ -112,5 +112,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp
index a6af763e6937f..4ec859b36336d 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.modifiers/resize_size_value.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void resize(size_type n, const value_type& v);
+// void resize(size_type n, const value_type& v); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -22,7 +22,7 @@
 #  include "container_test_types.h"
 #endif
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -84,7 +84,7 @@ int main(int, char**) {
     assert(*std::next(c.begin(), 4) == 10);
     assert(*std::next(c.begin(), 5) == 10);
   }
-  {
+  if (!TEST_IS_CONSTANT_EVALUATED) {
     // Test that the allocator's construct method is being used to
     // construct the new elements and that it's called exactly N times.
     typedef std::forward_list<int, ContainerTestAllocator<int, int>> Container;
@@ -99,5 +99,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_lvalue.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_lvalue.pass.cpp
index 9a162789569d3..d8e80c56bf392 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_lvalue.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_lvalue.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void merge(forward_list& x);
+// void merge(forward_list& x); // constexpr since C++26
 
 #include <forward_list>
 #include <iterator>
@@ -30,11 +30,11 @@ struct value {
   int a;
   int b;
 
-  friend bool operator<(const value& lhs, const value& rhs) { return lhs.a < rhs.a; }
-  friend bool operator==(const value& lhs, const value& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; }
+  friend TEST_CONSTEXPR bool operator<(const value& lhs, const value& rhs) { return lhs.a < rhs.a; }
+  friend TEST_CONSTEXPR bool operator==(const value& lhs, const value& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; }
 };
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   { // Basic merge operation.
     typedef int T;
     typedef std::forward_list<T> C;
@@ -116,5 +116,14 @@ int main(int, char**) {
     assert(c == std::forward_list<int>(std::begin(a), std::end(a)));
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_lvalue_pred.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_lvalue_pred.pass.cpp
index 4e1814044808c..0adadb2dd092f 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_lvalue_pred.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_lvalue_pred.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// template <class Compare> void merge(forward_list& x, Compare comp);
+// template <class Compare> void merge(forward_list& x, Compare comp); // constexpr since C++26
 
 #include <forward_list>
 #include <iterator>
@@ -30,11 +30,11 @@ struct value {
   int a;
   int b;
 
-  friend bool operator>(const value& lhs, const value& rhs) { return lhs.a > rhs.a; }
-  friend bool operator==(const value& lhs, const value& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; }
+  friend TEST_CONSTEXPR bool operator>(const value& lhs, const value& rhs) { return lhs.a > rhs.a; }
+  friend TEST_CONSTEXPR bool operator==(const value& lhs, const value& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; }
 };
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   { // Basic merge operation.
     typedef int T;
     typedef std::forward_list<T> C;
@@ -117,5 +117,14 @@ int main(int, char**) {
     assert(c == std::forward_list<int>(std::begin(a), std::end(a)));
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_rvalue.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_rvalue.pass.cpp
index acfa014fe2546..906748ec2702b 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_rvalue.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_rvalue.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// void merge(forward_list&& x);
+// void merge(forward_list&& x); // constexpr since C++26
 
 #include <forward_list>
 #include <functional>
@@ -29,11 +29,11 @@ struct value {
   int a;
   int b;
 
-  friend bool operator<(const value& lhs, const value& rhs) { return lhs.a < rhs.a; }
-  friend bool operator==(const value& lhs, const value& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; }
+  friend TEST_CONSTEXPR bool operator<(const value& lhs, const value& rhs) { return lhs.a < rhs.a; }
+  friend TEST_CONSTEXPR bool operator==(const value& lhs, const value& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; }
 };
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   { // Basic merge operation.
     typedef int T;
     typedef std::forward_list<T> C;
@@ -109,5 +109,14 @@ int main(int, char**) {
     assert(c == std::forward_list<int>(std::begin(a), std::end(a)));
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_rvalue_pred.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_rvalue_pred.pass.cpp
index 41b56ce7a2884..2ced0b1596e4d 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_rvalue_pred.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/merge_rvalue_pred.pass.cpp
@@ -10,7 +10,7 @@
 
 // <forward_list>
 
-// template <class Compare> void merge(forward_list&& x, Compare comp);
+// template <class Compare> void merge(forward_list&& x, Compare comp); // constexpr since C++26
 
 #include <forward_list>
 #include <functional>
@@ -29,11 +29,11 @@ struct value {
   int a;
   int b;
 
-  friend bool operator>(const value& lhs, const value& rhs) { return lhs.a > rhs.a; }
-  friend bool operator==(const value& lhs, const value& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; }
+  friend TEST_CONSTEXPR bool operator>(const value& lhs, const value& rhs) { return lhs.a > rhs.a; }
+  friend TEST_CONSTEXPR bool operator==(const value& lhs, const value& rhs) { return lhs.a == rhs.a && lhs.b == rhs.b; }
 };
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   { // Basic merge operation.
     typedef int T;
     typedef std::forward_list<T> C;
@@ -110,5 +110,14 @@ int main(int, char**) {
     assert(c == std::forward_list<int>(std::begin(a), std::end(a)));
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp
index ec3bf845dcc5a..b17708ba60ee6 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove.pass.cpp
@@ -9,7 +9,7 @@
 // <forward_list>
 
 // void remove(const value_type& v);      // C++17 and before
-// size_type remove(const value_type& v); // C++20 and after
+// size_type remove(const value_type& v); // C++20 and after; // constexpr since C++26
 
 #include <forward_list>
 #include <iterator>
@@ -19,7 +19,7 @@
 #include "min_allocator.h"
 
 template <class L>
-void do_remove(L& l, const typename L::value_type& value, typename L::size_type expected) {
+TEST_CONSTEXPR_CXX26 void do_remove(L& l, const typename L::value_type& value, typename L::size_type expected) {
   typename L::size_type old_size = std::distance(l.begin(), l.end());
 #if TEST_STD_VER > 17
   ASSERT_SAME_TYPE(decltype(l.remove(value)), typename L::size_type);
@@ -32,22 +32,22 @@ void do_remove(L& l, const typename L::value_type& value, typename L::size_type
 }
 
 struct S {
-  S(int i) : i_(new int(i)) {}
-  S(const S& rhs) : i_(new int(*rhs.i_)) {}
-  S& operator=(const S& rhs) {
+  TEST_CONSTEXPR_CXX20 S(int i) : i_(new int(i)) {}
+  TEST_CONSTEXPR_CXX20 S(const S& rhs) : i_(new int(*rhs.i_)) {}
+  TEST_CONSTEXPR_CXX20 S& operator=(const S& rhs) {
     *i_ = *rhs.i_;
     return *this;
   }
-  ~S() {
+  TEST_CONSTEXPR_CXX20 ~S() {
     delete i_;
     i_ = NULL;
   }
-  bool operator==(const S& rhs) const { return *i_ == *rhs.i_; }
-  int get() const { return *i_; }
+  TEST_CONSTEXPR bool operator==(const S& rhs) const { return *i_ == *rhs.i_; }
+  TEST_CONSTEXPR int get() const { return *i_; }
   int* i_;
 };
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -171,5 +171,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
index c6325baea2590..f26205d03f645 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/remove_if.pass.cpp
@@ -9,7 +9,7 @@
 // <forward_list>
 
 // template <class Predicate> void      remove_if(Predicate pred); // C++17 and before
-// template <class Predicate> size_type remove_if(Predicate pred); // C++20 and after
+// template <class Predicate> size_type remove_if(Predicate pred); // C++20 and after; constexpr since C++26
 
 #include <forward_list>
 #include <iterator>
@@ -22,7 +22,7 @@
 #include "counting_predicates.h"
 
 template <class L, class Predicate>
-void do_remove_if(L& l, Predicate pred, typename L::size_type expected) {
+TEST_CONSTEXPR_CXX26 void do_remove_if(L& l, Predicate pred, typename L::size_type expected) {
   typename L::size_type old_size = std::distance(l.begin(), l.end());
 #if TEST_STD_VER > 17
   ASSERT_SAME_TYPE(decltype(l.remove_if(pred)), typename L::size_type);
@@ -34,18 +34,18 @@ void do_remove_if(L& l, Predicate pred, typename L::size_type expected) {
   assert(old_size - std::distance(l.begin(), l.end()) == expected);
 }
 
-bool g(int i) { return i < 3; }
+TEST_CONSTEXPR bool g(int i) { return i < 3; }
 
 struct PredLWG526 {
-  PredLWG526(int i) : i_(i) {}
-  ~PredLWG526() { i_ = -32767; }
-  bool operator()(const PredLWG526& p) const { return p.i_ == i_; }
+  TEST_CONSTEXPR_CXX20 PredLWG526(int i) : i_(i) {}
+  TEST_CONSTEXPR_CXX20 ~PredLWG526() { i_ = -32767; }
+  TEST_CONSTEXPR bool operator()(const PredLWG526& p) const { return p.i_ == i_; }
 
-  bool operator==(int i) const { return i == i_; }
+  TEST_CONSTEXPR bool operator==(int i) const { return i == i_; }
   int i_;
 };
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef unary_counting_predicate<bool (*)(T), T> Predicate;
@@ -187,5 +187,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp
index 0d0656897f34e..38f0e74f66323 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/reverse.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void reverse();
+// void reverse(); // constexpr since C++26
 
 #include <forward_list>
 #include <iterator>
@@ -19,7 +19,7 @@
 #include "min_allocator.h"
 
 template <class C>
-void test(int N) {
+TEST_CONSTEXPR_CXX26 void test1(int N) {
   C c;
   for (int i = 0; i < N; ++i)
     c.push_front(i);
@@ -30,12 +30,21 @@ void test(int N) {
     assert(*j == i);
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   for (int i = 0; i < 10; ++i)
-    test<std::forward_list<int> >(i);
+    test1<std::forward_list<int> >(i);
 #if TEST_STD_VER >= 11
   for (int i = 0; i < 10; ++i)
-    test<std::forward_list<int, min_allocator<int>> >(i);
+    test1<std::forward_list<int, min_allocator<int>> >(i);
+#endif
+
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
 #endif
 
   return 0;
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp
index 4c91d7397adf0..f8787d70784d1 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_flist.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void splice_after(const_iterator p, forward_list&& x);
+// void splice_after(const_iterator p, forward_list&& x); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,13 +19,13 @@
 #include "min_allocator.h"
 
 typedef int T;
-const T t1[]                 = {0, 1, 2, 3, 4, 5, 6, 7};
-const T t2[]                 = {10, 11, 12, 13, 14, 15};
-const std::ptrdiff_t size_t1 = std::end(t1) - std::begin(t1);
-const std::ptrdiff_t size_t2 = std::end(t2) - std::begin(t2);
+TEST_CONSTEXPR const T t1[]                 = {0, 1, 2, 3, 4, 5, 6, 7};
+TEST_CONSTEXPR const T t2[]                 = {10, 11, 12, 13, 14, 15};
+TEST_CONSTEXPR const std::ptrdiff_t size_t1 = std::end(t1) - std::begin(t1);
+TEST_CONSTEXPR const std::ptrdiff_t size_t2 = std::end(t2) - std::begin(t2);
 
 template <class C>
-void testd(const C& c, int p, int l) {
+TEST_CONSTEXPR_CXX26 void testd(const C& c, int p, int l) {
   typename C::const_iterator i = c.begin();
   int n1                       = 0;
   for (; n1 < p; ++n1, ++i)
@@ -37,7 +37,7 @@ void testd(const C& c, int p, int l) {
   assert(std::distance(c.begin(), c.end()) == size_t1 + l);
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     // splicing different containers
     typedef std::forward_list<T> C;
@@ -67,5 +67,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp
index bb8bdea632547..7202b0e153627 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_one.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void splice_after(const_iterator p, forward_list&& x, const_iterator i);
+// void splice_after(const_iterator p, forward_list&& x, const_iterator i); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,13 +19,13 @@
 #include "min_allocator.h"
 
 typedef int T;
-const T t1[]                 = {0, 1, 2, 3, 4, 5, 6, 7};
-const T t2[]                 = {10, 11, 12};
-const std::ptrdiff_t size_t1 = std::end(t1) - std::begin(t1);
-const std::ptrdiff_t size_t2 = std::end(t2) - std::begin(t2);
+TEST_CONSTEXPR const T t1[]                 = {0, 1, 2, 3, 4, 5, 6, 7};
+TEST_CONSTEXPR const T t2[]                 = {10, 11, 12};
+TEST_CONSTEXPR const std::ptrdiff_t size_t1 = std::end(t1) - std::begin(t1);
+TEST_CONSTEXPR const std::ptrdiff_t size_t2 = std::end(t2) - std::begin(t2);
 
 template <class C>
-void testd(const C& c, int p, int f) {
+TEST_CONSTEXPR_CXX26 void testd(const C& c, int p, int f) {
   typename C::const_iterator i = c.begin();
   int n1                       = 0;
   for (; n1 < p; ++n1, ++i)
@@ -38,7 +38,7 @@ void testd(const C& c, int p, int f) {
 }
 
 template <class C>
-void tests(const C& c, int p, int f) {
+TEST_CONSTEXPR_CXX26 void tests(const C& c, int p, int f) {
   typename C::const_iterator i = c.begin();
   int n                        = 0;
   if (p == f || p == f + 1) {
@@ -67,7 +67,7 @@ void tests(const C& c, int p, int f) {
   assert(std::distance(c.begin(), c.end()) == size_t1);
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     // splicing different containers
     typedef std::forward_list<T> C;
@@ -117,5 +117,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp
index 99b3ed1c7836b..18da6f12b28da 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/splice_after_range.pass.cpp
@@ -8,8 +8,10 @@
 
 // <forward_list>
 
+// ADDITIONAL_COMPILE_FLAGS(has-fconstexpr-steps): -fconstexpr-steps=3000000
+
 // void splice_after(const_iterator p, forward_list&& x,
-//                   const_iterator first, const_iterator last);
+//                   const_iterator first, const_iterator last); // constexpr since C++26
 
 #include <stddef.h>
 #include <forward_list>
@@ -20,13 +22,13 @@
 #include "min_allocator.h"
 
 typedef std::ptrdiff_t T;
-const T t1[]                 = {0, 1, 2, 3, 4, 5, 6, 7};
-const T t2[]                 = {10, 11, 12, 13, 14, 15};
-const std::ptrdiff_t size_t1 = std::end(t1) - std::begin(t1);
-const std::ptrdiff_t size_t2 = std::end(t2) - std::begin(t2);
+TEST_CONSTEXPR const T t1[]                 = {0, 1, 2, 3, 4, 5, 6, 7};
+TEST_CONSTEXPR const T t2[]                 = {10, 11, 12, 13, 14, 15};
+TEST_CONSTEXPR const std::ptrdiff_t size_t1 = std::end(t1) - std::begin(t1);
+TEST_CONSTEXPR const std::ptrdiff_t size_t2 = std::end(t2) - std::begin(t2);
 
 template <class C>
-void testd(const C& c, std::ptrdiff_t p, ptrdiff_t f, ptrdiff_t l) {
+TEST_CONSTEXPR_CXX26 void testd(const C& c, std::ptrdiff_t p, ptrdiff_t f, ptrdiff_t l) {
   typename C::const_iterator i = c.begin();
   std::ptrdiff_t n1            = 0;
   for (; n1 < p; ++n1, ++i)
@@ -39,7 +41,7 @@ void testd(const C& c, std::ptrdiff_t p, ptrdiff_t f, ptrdiff_t l) {
 }
 
 template <class C>
-void tests(const C& c, std::ptrdiff_t p, ptrdiff_t f, ptrdiff_t l) {
+TEST_CONSTEXPR_CXX26 void tests(const C& c, std::ptrdiff_t p, ptrdiff_t f, ptrdiff_t l) {
   typename C::const_iterator i = c.begin();
   std::ptrdiff_t n             = 0;
   std::ptrdiff_t d             = l > f + 1 ? l - 1 - f : 0;
@@ -69,7 +71,7 @@ void tests(const C& c, std::ptrdiff_t p, ptrdiff_t f, ptrdiff_t l) {
   assert(std::distance(c.begin(), c.end()) == size_t1);
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     // splicing different containers
     typedef std::forward_list<T> C;
@@ -157,5 +159,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp
index ebd1a79cdb4bc..28efff3849e68 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique.pass.cpp
@@ -9,7 +9,7 @@
 // <forward_list>
 
 // void unique();      // C++17 and before
-// size_type unique(); // C++20 and after
+// size_type unique(); // C++20 and after; constexpr since C++26
 
 #include <forward_list>
 #include <iterator>
@@ -19,7 +19,7 @@
 #include "min_allocator.h"
 
 template <class L>
-void do_unique(L& l, typename L::size_type expected) {
+TEST_CONSTEXPR_CXX26 void do_unique(L& l, typename L::size_type expected) {
   typename L::size_type old_size = std::distance(l.begin(), l.end());
 #if TEST_STD_VER > 17
   ASSERT_SAME_TYPE(decltype(l.unique()), typename L::size_type);
@@ -31,7 +31,7 @@ void do_unique(L& l, typename L::size_type expected) {
   assert(old_size - std::distance(l.begin(), l.end()) == expected);
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -131,5 +131,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
index 408cbf6ae9c20..f07142dffe9d9 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.ops/unique_pred.pass.cpp
@@ -9,7 +9,7 @@
 // <forward_list>
 
 // template <class BinaryPredicate> void unique(BinaryPredicate binary_pred);      // C++17 and before
-// template <class BinaryPredicate> size_type unique(BinaryPredicate binary_pred); // C++20 and after
+// template <class BinaryPredicate> size_type unique(BinaryPredicate binary_pred); // C++20 and after; constexpr since C++26
 
 #include <cassert>
 #include <forward_list>
@@ -20,7 +20,7 @@
 #include "min_allocator.h"
 
 template <class L, class Predicate>
-void do_unique(L& l, Predicate pred, typename L::size_type expected) {
+TEST_CONSTEXPR_CXX26 void do_unique(L& l, Predicate pred, typename L::size_type expected) {
   typename L::size_type old_size = std::distance(l.begin(), l.end());
 #if TEST_STD_VER > 17
   ASSERT_SAME_TYPE(decltype(l.unique(pred)), typename L::size_type);
@@ -33,17 +33,17 @@ void do_unique(L& l, Predicate pred, typename L::size_type expected) {
 }
 
 struct PredLWG526 {
-  PredLWG526(int i) : i_(i) {}
-  ~PredLWG526() { i_ = -32767; }
-  bool operator()(const PredLWG526& lhs, const PredLWG526& rhs) const { return lhs.i_ == rhs.i_; }
+  TEST_CONSTEXPR_CXX20 PredLWG526(int i) : i_(i) {}
+  TEST_CONSTEXPR_CXX20 ~PredLWG526() { i_ = -32767; }
+  TEST_CONSTEXPR bool operator()(const PredLWG526& lhs, const PredLWG526& rhs) const { return lhs.i_ == rhs.i_; }
 
-  bool operator==(int i) const { return i == i_; }
+  TEST_CONSTEXPR bool operator==(int i) const { return i == i_; }
   int i_;
 };
 
-bool g(int x, int y) { return x == y; }
+TEST_CONSTEXPR bool g(int x, int y) { return x == y; }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef std::forward_list<T> C;
@@ -157,5 +157,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp
index ef6b72ee360a9..cb57b094a077d 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/equal.pass.cpp
@@ -10,11 +10,11 @@
 
 // template <class T, class Allocator>
 //     bool operator==(const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
+//                     const forward_list<T, Allocator>& y); // constexpr since C++26
 //
 // template <class T, class Allocator>
 //     bool operator!=(const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
+//                     const forward_list<T, Allocator>& y); // constexpr since C++26
 
 #include <forward_list>
 #include <iterator>
@@ -25,7 +25,7 @@
 #include "min_allocator.h"
 
 template <class C>
-void test(int N, int M) {
+TEST_CONSTEXPR_CXX26 void test(int N, int M) {
   C c1;
   for (int i = 0; i < N; ++i)
     c1.push_front(i);
@@ -44,7 +44,7 @@ void test(int N, int M) {
   }
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   for (int i = 0; i < 10; ++i)
     for (int j = 0; j < 10; ++j)
       test<std::forward_list<int> >(i, j);
@@ -54,5 +54,14 @@ int main(int, char**) {
       test<std::forward_list<int, min_allocator<int>> >(i, j);
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp
index e50f9e6e9e473..f4f7c6d1f7e53 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/member_swap.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// void swap(forward_list& x);
+// void swap(forward_list& x); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "test_allocator.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef test_allocator<T> A;
@@ -257,5 +257,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp
index cae6950436dee..ce25479781547 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/non_member_swap.pass.cpp
@@ -9,7 +9,7 @@
 // <forward_list>
 
 // template <class T, class Allocator>
-//     void swap(forward_list<T, Allocator>& x, forward_list<T, Allocator>& y);
+//     void swap(forward_list<T, Allocator>& x, forward_list<T, Allocator>& y); // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -19,7 +19,7 @@
 #include "test_allocator.h"
 #include "min_allocator.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef int T;
     typedef test_allocator<T> A;
@@ -258,5 +258,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp
index d16acadaeb893..7bf80ca026e8e 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/relational.pass.cpp
@@ -10,19 +10,19 @@
 
 // template <class T, class Allocator>
 //     bool operator< (const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
+//                     const forward_list<T, Allocator>& y); // constexpr since C++26
 //
 // template <class T, class Allocator>
 //     bool operator> (const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
+//                     const forward_list<T, Allocator>& y); // constexpr since C++26
 //
 // template <class T, class Allocator>
 //     bool operator>=(const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
+//                     const forward_list<T, Allocator>& y); // constexpr since C++26
 //
 // template <class T, class Allocator>
 //     bool operator<=(const forward_list<T, Allocator>& x,
-//                     const forward_list<T, Allocator>& y);
+//                     const forward_list<T, Allocator>& y); // constexpr since C++26
 
 #include <forward_list>
 #include <iterator>
@@ -33,7 +33,7 @@
 #include "min_allocator.h"
 
 template <class C>
-void test(int N, int M) {
+TEST_CONSTEXPR_CXX26 void test(int N, int M) {
   C c1;
   for (int i = 0; i < N; ++i)
     c1.push_front(i);
@@ -50,7 +50,7 @@ void test(int N, int M) {
     assert(c1 > c2);
 }
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   for (int i = 0; i < 10; ++i)
     for (int j = 0; j < 10; ++j)
       test<std::forward_list<int> >(i, j);
@@ -60,5 +60,14 @@ int main(int, char**) {
       test<std::forward_list<int, min_allocator<int>> >(i, j);
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
index b83ec3c3c1210..1fea0a2ab8eb3 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.spec/swap_noexcept.pass.cpp
@@ -12,10 +12,10 @@
 
 // void swap(forward_list& c)
 //     noexcept(!allocator_type::propagate_on_container_swap::value ||
-//              __is_nothrow_swappable<allocator_type>::value);
+//              __is_nothrow_swappable<allocator_type>::value);          // constexpr since C++26
 //
 //  In C++17, the standard says that swap shall have:
-//     noexcept(is_always_equal<allocator_type>::value);
+//     noexcept(is_always_equal<allocator_type>::value);                 // constexpr since C++26
 
 // This tests a conforming extension
 
diff --git a/libcxx/test/std/containers/sequences/forwardlist/get_allocator.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/get_allocator.pass.cpp
index f37f5c2f513bd..624eeb17799c0 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/get_allocator.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/get_allocator.pass.cpp
@@ -10,7 +10,7 @@
 
 // class forward_list
 
-// allocator_type get_allocator() const
+// allocator_type get_allocator() const // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -18,7 +18,7 @@
 #include "test_allocator.h"
 #include "test_macros.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     std::allocator<int> alloc;
     const std::forward_list<int> fl(alloc);
@@ -30,5 +30,14 @@ int main(int, char**) {
     assert(fl.get_allocator() == alloc);
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/incomplete.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/incomplete.pass.cpp
index b7be03f1062dc..16c6f0b90f96d 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/incomplete.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/incomplete.pass.cpp
@@ -8,9 +8,9 @@
 
 // <forward_list>
 
-// forward_list()
-// forward_list::iterator()
-// forward_list::const_iterator()
+// forward_list()                 // constexpr since C++26
+// forward_list::iterator()       // constexpr since C++26
+// forward_list::const_iterator() // constexpr since C++26
 
 #include <forward_list>
 #include <cassert>
@@ -33,7 +33,7 @@ struct B {
 };
 #endif
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     A a;
     assert(a.d.empty());
@@ -49,5 +49,14 @@ int main(int, char**) {
   }
 #endif
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
diff --git a/libcxx/test/std/containers/sequences/forwardlist/max_size.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/max_size.pass.cpp
index 5ba0d61f104e0..aab53351f00e2 100644
--- a/libcxx/test/std/containers/sequences/forwardlist/max_size.pass.cpp
+++ b/libcxx/test/std/containers/sequences/forwardlist/max_size.pass.cpp
@@ -8,7 +8,7 @@
 
 // <forward_list>
 
-// size_type max_size() const;
+// size_type max_size() const; // constexpr since C++26
 
 #include <cassert>
 #include <forward_list>
@@ -18,7 +18,7 @@
 #include "test_allocator.h"
 #include "test_macros.h"
 
-int main(int, char**) {
+TEST_CONSTEXPR_CXX26 bool test() {
   {
     typedef limited_allocator<int, 10> A;
     typedef std::forward_list<int, A> C;
@@ -42,5 +42,14 @@ int main(int, char**) {
     assert(c.max_size() <= alloc_max_size(c.get_allocator()));
   }
 
+  return true;
+}
+
+int main(int, char**) {
+  assert(test());
+#if TEST_STD_VER >= 26
+  static_assert(test());
+#endif
+
   return 0;
 }
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 b1cc4afd30696..a8774e6ac76e1 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
@@ -13,7 +13,248 @@
 
 // Test the feature test macros defined by <version>
 
+<<<<<<< HEAD
 // clang-format off
+=======
+/*  Constant                                                Value
+    __cpp_lib_adaptor_iterator_pair_constructor             202106L [C++23]
+    __cpp_lib_addressof_constexpr                           201603L [C++17]
+    __cpp_lib_allocate_at_least                             202302L [C++23]
+    __cpp_lib_allocator_traits_is_always_equal              201411L [C++17]
+    __cpp_lib_any                                           201606L [C++17]
+    __cpp_lib_apply                                         201603L [C++17]
+    __cpp_lib_array_constexpr                               201603L [C++17]
+                                                            201811L [C++20]
+    __cpp_lib_as_const                                      201510L [C++17]
+    __cpp_lib_associative_heterogeneous_erasure             202110L [C++23]
+    __cpp_lib_associative_heterogeneous_insertion           202306L [C++26]
+    __cpp_lib_assume_aligned                                201811L [C++20]
+    __cpp_lib_atomic_flag_test                              201907L [C++20]
+    __cpp_lib_atomic_float                                  201711L [C++20]
+    __cpp_lib_atomic_is_always_lock_free                    201603L [C++17]
+    __cpp_lib_atomic_lock_free_type_aliases                 201907L [C++20]
+    __cpp_lib_atomic_min_max                                202403L [C++26]
+    __cpp_lib_atomic_ref                                    201806L [C++20]
+    __cpp_lib_atomic_shared_ptr                             201711L [C++20]
+    __cpp_lib_atomic_value_initialization                   201911L [C++20]
+    __cpp_lib_atomic_wait                                   201907L [C++20]
+    __cpp_lib_barrier                                       201907L [C++20]
+    __cpp_lib_bind_back                                     202202L [C++23]
+    __cpp_lib_bind_front                                    201907L [C++20]
+                                                            202306L [C++26]
+    __cpp_lib_bit_cast                                      201806L [C++20]
+    __cpp_lib_bitops                                        201907L [C++20]
+    __cpp_lib_bitset                                        202306L [C++26]
+    __cpp_lib_bool_constant                                 201505L [C++17]
+    __cpp_lib_bounded_array_traits                          201902L [C++20]
+    __cpp_lib_boyer_moore_searcher                          201603L [C++17]
+    __cpp_lib_byte                                          201603L [C++17]
+    __cpp_lib_byteswap                                      202110L [C++23]
+    __cpp_lib_char8_t                                       201907L [C++20]
+    __cpp_lib_chrono                                        201611L [C++17]
+    __cpp_lib_chrono_udls                                   201304L [C++14]
+    __cpp_lib_clamp                                         201603L [C++17]
+    __cpp_lib_complex_udls                                  201309L [C++14]
+    __cpp_lib_concepts                                      202002L [C++20]
+    __cpp_lib_constexpr_algorithms                          201806L [C++20]
+    __cpp_lib_constexpr_bitset                              202207L [C++23]
+    __cpp_lib_constexpr_charconv                            202207L [C++23]
+    __cpp_lib_constexpr_cmath                               202202L [C++23]
+    __cpp_lib_constexpr_complex                             201711L [C++20]
+    __cpp_lib_constexpr_dynamic_alloc                       201907L [C++20]
+    __cpp_lib_constexpr_forward_list                        202502L [C++26]
+    __cpp_lib_constexpr_functional                          201907L [C++20]
+    __cpp_lib_constexpr_iterator                            201811L [C++20]
+    __cpp_lib_constexpr_memory                              201811L [C++20]
+                                                            202202L [C++23]
+    __cpp_lib_constexpr_new                                 202406L [C++26]
+    __cpp_lib_constexpr_numeric                             201911L [C++20]
+    __cpp_lib_constexpr_string                              201907L [C++20]
+    __cpp_lib_constexpr_string_view                         201811L [C++20]
+    __cpp_lib_constexpr_tuple                               201811L [C++20]
+    __cpp_lib_constexpr_typeinfo                            202106L [C++23]
+    __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]
+    __cpp_lib_default_template_type_for_algorithm_values    202403L [C++26]
+    __cpp_lib_destroying_delete                             201806L [C++20]
+    __cpp_lib_enable_shared_from_this                       201603L [C++17]
+    __cpp_lib_endian                                        201907L [C++20]
+    __cpp_lib_erase_if                                      202002L [C++20]
+    __cpp_lib_exchange_function                             201304L [C++14]
+    __cpp_lib_execution                                     201603L [C++17]
+                                                            201902L [C++20]
+    __cpp_lib_expected                                      202211L [C++23]
+    __cpp_lib_filesystem                                    201703L [C++17]
+    __cpp_lib_flat_map                                      202207L [C++23]
+    __cpp_lib_flat_set                                      202207L [C++23]
+    __cpp_lib_format                                        202110L [C++20]
+    __cpp_lib_format_path                                   202403L [C++26]
+    __cpp_lib_format_ranges                                 202207L [C++23]
+    __cpp_lib_format_uchar                                  202311L [C++20]
+    __cpp_lib_formatters                                    202302L [C++23]
+    __cpp_lib_forward_like                                  202207L [C++23]
+    __cpp_lib_freestanding_algorithm                        202311L [C++26]
+    __cpp_lib_freestanding_array                            202311L [C++26]
+    __cpp_lib_freestanding_cstring                          202306L [C++26]
+    __cpp_lib_freestanding_expected                         202311L [C++26]
+    __cpp_lib_freestanding_mdspan                           202311L [C++26]
+    __cpp_lib_freestanding_optional                         202311L [C++26]
+    __cpp_lib_freestanding_string_view                      202311L [C++26]
+    __cpp_lib_freestanding_variant                          202311L [C++26]
+    __cpp_lib_fstream_native_handle                         202306L [C++26]
+    __cpp_lib_function_ref                                  202306L [C++26]
+    __cpp_lib_gcd_lcm                                       201606L [C++17]
+    __cpp_lib_generate_random                               202403L [C++26]
+    __cpp_lib_generic_associative_lookup                    201304L [C++14]
+    __cpp_lib_generic_unordered_lookup                      201811L [C++20]
+    __cpp_lib_hardware_interference_size                    201703L [C++17]
+    __cpp_lib_has_unique_object_representations             201606L [C++17]
+    __cpp_lib_hazard_pointer                                202306L [C++26]
+    __cpp_lib_hypot                                         201603L [C++17]
+    __cpp_lib_incomplete_container_elements                 201505L [C++17]
+    __cpp_lib_inplace_vector                                202406L [C++26]
+    __cpp_lib_int_pow2                                      202002L [C++20]
+    __cpp_lib_integer_comparison_functions                  202002L [C++20]
+    __cpp_lib_integer_sequence                              201304L [C++14]
+    __cpp_lib_integral_constant_callable                    201304L [C++14]
+    __cpp_lib_interpolate                                   201902L [C++20]
+    __cpp_lib_invoke                                        201411L [C++17]
+    __cpp_lib_invoke_r                                      202106L [C++23]
+    __cpp_lib_ios_noreplace                                 202207L [C++23]
+    __cpp_lib_is_aggregate                                  201703L [C++17]
+    __cpp_lib_is_constant_evaluated                         201811L [C++20]
+    __cpp_lib_is_final                                      201402L [C++14]
+    __cpp_lib_is_implicit_lifetime                          202302L [C++23]
+    __cpp_lib_is_invocable                                  201703L [C++17]
+    __cpp_lib_is_layout_compatible                          201907L [C++20]
+    __cpp_lib_is_nothrow_convertible                        201806L [C++20]
+    __cpp_lib_is_null_pointer                               201309L [C++14]
+    __cpp_lib_is_pointer_interconvertible                   201907L [C++20]
+    __cpp_lib_is_scoped_enum                                202011L [C++23]
+    __cpp_lib_is_swappable                                  201603L [C++17]
+    __cpp_lib_is_virtual_base_of                            202406L [C++26]
+    __cpp_lib_is_within_lifetime                            202306L [C++26]
+    __cpp_lib_jthread                                       201911L [C++20]
+    __cpp_lib_latch                                         201907L [C++20]
+    __cpp_lib_launder                                       201606L [C++17]
+    __cpp_lib_linalg                                        202311L [C++26]
+    __cpp_lib_list_remove_return_type                       201806L [C++20]
+    __cpp_lib_logical_traits                                201510L [C++17]
+    __cpp_lib_make_from_tuple                               201606L [C++17]
+    __cpp_lib_make_reverse_iterator                         201402L [C++14]
+    __cpp_lib_make_unique                                   201304L [C++14]
+    __cpp_lib_map_try_emplace                               201411L [C++17]
+    __cpp_lib_math_constants                                201907L [C++20]
+    __cpp_lib_math_special_functions                        201603L [C++17]
+    __cpp_lib_mdspan                                        202207L [C++23]
+                                                            202406L [C++26]
+    __cpp_lib_memory_resource                               201603L [C++17]
+    __cpp_lib_modules                                       202207L [C++23]
+    __cpp_lib_move_iterator_concept                         202207L [C++20]
+    __cpp_lib_move_only_function                            202110L [C++23]
+    __cpp_lib_node_extract                                  201606L [C++17]
+    __cpp_lib_nonmember_container_access                    201411L [C++17]
+    __cpp_lib_not_fn                                        201603L [C++17]
+                                                            202306L [C++26]
+    __cpp_lib_null_iterators                                201304L [C++14]
+    __cpp_lib_optional                                      201606L [C++17]
+                                                            202106L [C++20]
+                                                            202110L [C++23]
+    __cpp_lib_optional_range_support                        202406L [C++26]
+    __cpp_lib_out_ptr                                       202106L [C++23]
+                                                            202311L [C++26]
+    __cpp_lib_parallel_algorithm                            201603L [C++17]
+    __cpp_lib_philox_engine                                 202406L [C++26]
+    __cpp_lib_polymorphic_allocator                         201902L [C++20]
+    __cpp_lib_print                                         202207L [C++23]
+    __cpp_lib_quoted_string_io                              201304L [C++14]
+    __cpp_lib_ranges                                        202110L [C++20]
+                                                            202406L [C++23]
+    __cpp_lib_ranges_as_const                               202207L [C++23]
+    __cpp_lib_ranges_as_rvalue                              202207L [C++23]
+    __cpp_lib_ranges_chunk                                  202202L [C++23]
+    __cpp_lib_ranges_chunk_by                               202202L [C++23]
+    __cpp_lib_ranges_concat                                 202403L [C++26]
+    __cpp_lib_ranges_contains                               202207L [C++23]
+    __cpp_lib_ranges_find_last                              202207L [C++23]
+    __cpp_lib_ranges_iota                                   202202L [C++23]
+    __cpp_lib_ranges_join_with                              202202L [C++23]
+    __cpp_lib_ranges_repeat                                 202207L [C++23]
+    __cpp_lib_ranges_slide                                  202202L [C++23]
+    __cpp_lib_ranges_starts_ends_with                       202106L [C++23]
+    __cpp_lib_ranges_to_container                           202202L [C++23]
+    __cpp_lib_ranges_zip                                    202110L [C++23]
+    __cpp_lib_ratio                                         202306L [C++26]
+    __cpp_lib_raw_memory_algorithms                         201606L [C++17]
+    __cpp_lib_rcu                                           202306L [C++26]
+    __cpp_lib_reference_from_temporary                      202202L [C++23]
+    __cpp_lib_reference_wrapper                             202403L [C++26]
+    __cpp_lib_remove_cvref                                  201711L [C++20]
+    __cpp_lib_result_of_sfinae                              201210L [C++14]
+    __cpp_lib_robust_nonmodifying_seq_ops                   201304L [C++14]
+    __cpp_lib_sample                                        201603L [C++17]
+    __cpp_lib_saturation_arithmetic                         202311L [C++26]
+    __cpp_lib_scoped_lock                                   201703L [C++17]
+    __cpp_lib_semaphore                                     201907L [C++20]
+    __cpp_lib_senders                                       202406L [C++26]
+    __cpp_lib_shared_mutex                                  201505L [C++17]
+    __cpp_lib_shared_ptr_arrays                             201611L [C++17]
+                                                            201707L [C++20]
+    __cpp_lib_shared_ptr_weak_type                          201606L [C++17]
+    __cpp_lib_shared_timed_mutex                            201402L [C++14]
+    __cpp_lib_shift                                         201806L [C++20]
+    __cpp_lib_smart_ptr_for_overwrite                       202002L [C++20]
+    __cpp_lib_smart_ptr_owner_equality                      202306L [C++26]
+    __cpp_lib_source_location                               201907L [C++20]
+    __cpp_lib_span                                          202002L [C++20]
+    __cpp_lib_span_at                                       202311L [C++26]
+    __cpp_lib_span_initializer_list                         202311L [C++26]
+    __cpp_lib_spanstream                                    202106L [C++23]
+    __cpp_lib_ssize                                         201902L [C++20]
+    __cpp_lib_sstream_from_string_view                      202306L [C++26]
+    __cpp_lib_stacktrace                                    202011L [C++23]
+    __cpp_lib_starts_ends_with                              201711L [C++20]
+    __cpp_lib_stdatomic_h                                   202011L [C++23]
+    __cpp_lib_string_contains                               202011L [C++23]
+    __cpp_lib_string_resize_and_overwrite                   202110L [C++23]
+    __cpp_lib_string_udls                                   201304L [C++14]
+    __cpp_lib_string_view                                   201606L [C++17]
+                                                            201803L [C++20]
+                                                            202403L [C++26]
+    __cpp_lib_submdspan                                     202306L [C++26]
+    __cpp_lib_syncbuf                                       201803L [C++20]
+    __cpp_lib_text_encoding                                 202306L [C++26]
+    __cpp_lib_three_way_comparison                          201907L [C++20]
+    __cpp_lib_to_address                                    201711L [C++20]
+    __cpp_lib_to_array                                      201907L [C++20]
+    __cpp_lib_to_chars                                      201611L [C++17]
+                                                            202306L [C++26]
+    __cpp_lib_to_string                                     202306L [C++26]
+    __cpp_lib_to_underlying                                 202102L [C++23]
+    __cpp_lib_transformation_trait_aliases                  201304L [C++14]
+    __cpp_lib_transparent_operators                         201210L [C++14]
+                                                            201510L [C++17]
+    __cpp_lib_tuple_element_t                               201402L [C++14]
+    __cpp_lib_tuple_like                                    202207L [C++23]
+                                                            202311L [C++26]
+    __cpp_lib_tuples_by_type                                201304L [C++14]
+    __cpp_lib_type_identity                                 201806L [C++20]
+    __cpp_lib_type_trait_variable_templates                 201510L [C++17]
+    __cpp_lib_uncaught_exceptions                           201411L [C++17]
+    __cpp_lib_unordered_map_try_emplace                     201411L [C++17]
+    __cpp_lib_unreachable                                   202202L [C++23]
+    __cpp_lib_unwrap_ref                                    201811L [C++20]
+    __cpp_lib_variant                                       202102L [C++17]
+                                                            202106L [C++20]
+                                                            202306L [C++26]
+    __cpp_lib_void_t                                        201411L [C++17]
+*/
+>>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
 
 #include <version>
 #include "test_macros.h"
@@ -192,9 +433,19 @@
 #    error "__cpp_lib_constexpr_complex should not be defined before c++20"
 #  endif
 
+<<<<<<< HEAD
 #  ifdef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
 #  endif
+=======
+# ifdef __cpp_lib_constexpr_forward_list
+#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_constexpr_functional
+#   error "__cpp_lib_constexpr_functional should not be defined before c++20"
+# endif
+>>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
 
 #  ifdef __cpp_lib_constexpr_functional
 #    error "__cpp_lib_constexpr_functional should not be defined before c++20"
@@ -934,9 +1185,233 @@
 #    error "__cpp_lib_array_constexpr should not be defined before c++17"
 #  endif
 
+<<<<<<< HEAD
 #  ifdef __cpp_lib_as_const
 #    error "__cpp_lib_as_const should not be defined before c++17"
 #  endif
+=======
+# ifdef __cpp_lib_associative_heterogeneous_erasure
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_associative_heterogeneous_insertion
+#   error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_assume_aligned
+#   error "__cpp_lib_assume_aligned should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_flag_test
+#   error "__cpp_lib_atomic_flag_test should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_float
+#   error "__cpp_lib_atomic_float should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_is_always_lock_free
+#   error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17"
+# endif
+
+# ifdef __cpp_lib_atomic_lock_free_type_aliases
+#   error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_min_max
+#   error "__cpp_lib_atomic_min_max should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_atomic_ref
+#   error "__cpp_lib_atomic_ref should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_shared_ptr
+#   error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_value_initialization
+#   error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_wait
+#   error "__cpp_lib_atomic_wait should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_barrier
+#   error "__cpp_lib_barrier should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_bind_back
+#   error "__cpp_lib_bind_back should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_bind_front
+#   error "__cpp_lib_bind_front should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_bit_cast
+#   error "__cpp_lib_bit_cast should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_bitops
+#   error "__cpp_lib_bitops should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_bitset
+#   error "__cpp_lib_bitset should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_bool_constant
+#   error "__cpp_lib_bool_constant should not be defined before c++17"
+# endif
+
+# ifdef __cpp_lib_bounded_array_traits
+#   error "__cpp_lib_bounded_array_traits should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_boyer_moore_searcher
+#   error "__cpp_lib_boyer_moore_searcher should not be defined before c++17"
+# endif
+
+# ifdef __cpp_lib_byte
+#   error "__cpp_lib_byte should not be defined before c++17"
+# endif
+
+# ifdef __cpp_lib_byteswap
+#   error "__cpp_lib_byteswap should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_char8_t
+#   error "__cpp_lib_char8_t should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_chrono
+#   error "__cpp_lib_chrono should not be defined before c++17"
+# endif
+
+# ifndef __cpp_lib_chrono_udls
+#   error "__cpp_lib_chrono_udls should be defined in c++14"
+# endif
+# if __cpp_lib_chrono_udls != 201304L
+#   error "__cpp_lib_chrono_udls should have the value 201304L in c++14"
+# endif
+
+# ifdef __cpp_lib_clamp
+#   error "__cpp_lib_clamp should not be defined before c++17"
+# endif
+
+# ifndef __cpp_lib_complex_udls
+#   error "__cpp_lib_complex_udls should be defined in c++14"
+# endif
+# if __cpp_lib_complex_udls != 201309L
+#   error "__cpp_lib_complex_udls should have the value 201309L in c++14"
+# endif
+
+# ifdef __cpp_lib_concepts
+#   error "__cpp_lib_concepts should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_algorithms
+#   error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_bitset
+#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_charconv
+#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_cmath
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_complex
+#   error "__cpp_lib_constexpr_complex should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_dynamic_alloc
+#   error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_forward_list
+#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_constexpr_functional
+#   error "__cpp_lib_constexpr_functional should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_iterator
+#   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_memory
+#   error "__cpp_lib_constexpr_memory should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_new
+#   error "__cpp_lib_constexpr_new should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_constexpr_numeric
+#   error "__cpp_lib_constexpr_numeric should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_string
+#   error "__cpp_lib_constexpr_string should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_string_view
+#   error "__cpp_lib_constexpr_string_view should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_tuple
+#   error "__cpp_lib_constexpr_tuple should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_typeinfo
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_utility
+#   error "__cpp_lib_constexpr_utility should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_vector
+#   error "__cpp_lib_constexpr_vector should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constrained_equality
+#   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
+
+# ifdef __cpp_lib_coroutine
+#   error "__cpp_lib_coroutine should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_debugging
+#   error "__cpp_lib_debugging should not be defined before c++26"
+# 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
+
+# ifdef __cpp_lib_destroying_delete
+#   error "__cpp_lib_destroying_delete should not be defined before c++20"
+# endif
+>>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
 
 #  ifdef __cpp_lib_associative_heterogeneous_erasure
 #    error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
@@ -1856,6 +2331,7 @@
 
 #elif TEST_STD_VER == 17
 
+<<<<<<< HEAD
 #  ifdef __cpp_lib_adaptor_iterator_pair_constructor
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 #  endif
@@ -8042,6 +8518,6180 @@
 #  if __cpp_lib_void_t != 201411L
 #    error "__cpp_lib_void_t should have the value 201411L in c++26"
 #  endif
+=======
+# ifdef __cpp_lib_adaptor_iterator_pair_constructor
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_addressof_constexpr
+#   error "__cpp_lib_addressof_constexpr should be defined in c++17"
+# endif
+# if __cpp_lib_addressof_constexpr != 201603L
+#   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17"
+# endif
+
+# ifdef __cpp_lib_allocate_at_least
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_allocator_traits_is_always_equal
+#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17"
+# endif
+# if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
+# endif
+
+# ifndef __cpp_lib_any
+#   error "__cpp_lib_any should be defined in c++17"
+# endif
+# if __cpp_lib_any != 201606L
+#   error "__cpp_lib_any should have the value 201606L in c++17"
+# endif
+
+# ifndef __cpp_lib_apply
+#   error "__cpp_lib_apply should be defined in c++17"
+# endif
+# if __cpp_lib_apply != 201603L
+#   error "__cpp_lib_apply should have the value 201603L in c++17"
+# endif
+
+# ifndef __cpp_lib_array_constexpr
+#   error "__cpp_lib_array_constexpr should be defined in c++17"
+# endif
+# if __cpp_lib_array_constexpr != 201603L
+#   error "__cpp_lib_array_constexpr should have the value 201603L in c++17"
+# endif
+
+# ifndef __cpp_lib_as_const
+#   error "__cpp_lib_as_const should be defined in c++17"
+# endif
+# if __cpp_lib_as_const != 201510L
+#   error "__cpp_lib_as_const should have the value 201510L in c++17"
+# endif
+
+# ifdef __cpp_lib_associative_heterogeneous_erasure
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_associative_heterogeneous_insertion
+#   error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_assume_aligned
+#   error "__cpp_lib_assume_aligned should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_flag_test
+#   error "__cpp_lib_atomic_flag_test should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_float
+#   error "__cpp_lib_atomic_float should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_atomic_is_always_lock_free
+#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17"
+# endif
+# if __cpp_lib_atomic_is_always_lock_free != 201603L
+#   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17"
+# endif
+
+# ifdef __cpp_lib_atomic_lock_free_type_aliases
+#   error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_min_max
+#   error "__cpp_lib_atomic_min_max should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_atomic_ref
+#   error "__cpp_lib_atomic_ref should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_shared_ptr
+#   error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_value_initialization
+#   error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_wait
+#   error "__cpp_lib_atomic_wait should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_barrier
+#   error "__cpp_lib_barrier should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_bind_back
+#   error "__cpp_lib_bind_back should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_bind_front
+#   error "__cpp_lib_bind_front should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_bit_cast
+#   error "__cpp_lib_bit_cast should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_bitops
+#   error "__cpp_lib_bitops should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_bitset
+#   error "__cpp_lib_bitset should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_bool_constant
+#   error "__cpp_lib_bool_constant should be defined in c++17"
+# endif
+# if __cpp_lib_bool_constant != 201505L
+#   error "__cpp_lib_bool_constant should have the value 201505L in c++17"
+# endif
+
+# ifdef __cpp_lib_bounded_array_traits
+#   error "__cpp_lib_bounded_array_traits should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_boyer_moore_searcher
+#   error "__cpp_lib_boyer_moore_searcher should be defined in c++17"
+# endif
+# if __cpp_lib_boyer_moore_searcher != 201603L
+#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17"
+# endif
+
+# ifndef __cpp_lib_byte
+#   error "__cpp_lib_byte should be defined in c++17"
+# endif
+# if __cpp_lib_byte != 201603L
+#   error "__cpp_lib_byte should have the value 201603L in c++17"
+# endif
+
+# ifdef __cpp_lib_byteswap
+#   error "__cpp_lib_byteswap should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_char8_t
+#   error "__cpp_lib_char8_t should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_chrono
+#   error "__cpp_lib_chrono should be defined in c++17"
+# endif
+# if __cpp_lib_chrono != 201611L
+#   error "__cpp_lib_chrono should have the value 201611L in c++17"
+# endif
+
+# ifndef __cpp_lib_chrono_udls
+#   error "__cpp_lib_chrono_udls should be defined in c++17"
+# endif
+# if __cpp_lib_chrono_udls != 201304L
+#   error "__cpp_lib_chrono_udls should have the value 201304L in c++17"
+# endif
+
+# ifndef __cpp_lib_clamp
+#   error "__cpp_lib_clamp should be defined in c++17"
+# endif
+# if __cpp_lib_clamp != 201603L
+#   error "__cpp_lib_clamp should have the value 201603L in c++17"
+# endif
+
+# ifndef __cpp_lib_complex_udls
+#   error "__cpp_lib_complex_udls should be defined in c++17"
+# endif
+# if __cpp_lib_complex_udls != 201309L
+#   error "__cpp_lib_complex_udls should have the value 201309L in c++17"
+# endif
+
+# ifdef __cpp_lib_concepts
+#   error "__cpp_lib_concepts should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_algorithms
+#   error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_bitset
+#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_charconv
+#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_cmath
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_complex
+#   error "__cpp_lib_constexpr_complex should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_dynamic_alloc
+#   error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_forward_list
+#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_constexpr_functional
+#   error "__cpp_lib_constexpr_functional should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_iterator
+#   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_memory
+#   error "__cpp_lib_constexpr_memory should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_new
+#   error "__cpp_lib_constexpr_new should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_constexpr_numeric
+#   error "__cpp_lib_constexpr_numeric should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_string
+#   error "__cpp_lib_constexpr_string should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_string_view
+#   error "__cpp_lib_constexpr_string_view should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_tuple
+#   error "__cpp_lib_constexpr_tuple should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_typeinfo
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_utility
+#   error "__cpp_lib_constexpr_utility should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_vector
+#   error "__cpp_lib_constexpr_vector should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_constrained_equality
+#   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
+
+# ifdef __cpp_lib_coroutine
+#   error "__cpp_lib_coroutine should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_debugging
+#   error "__cpp_lib_debugging should not be defined before c++26"
+# 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
+
+# ifdef __cpp_lib_destroying_delete
+#   error "__cpp_lib_destroying_delete should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_enable_shared_from_this
+#   error "__cpp_lib_enable_shared_from_this should be defined in c++17"
+# endif
+# if __cpp_lib_enable_shared_from_this != 201603L
+#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17"
+# endif
+
+# ifdef __cpp_lib_endian
+#   error "__cpp_lib_endian should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_erase_if
+#   error "__cpp_lib_erase_if should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_exchange_function
+#   error "__cpp_lib_exchange_function should be defined in c++17"
+# endif
+# if __cpp_lib_exchange_function != 201304L
+#   error "__cpp_lib_exchange_function should have the value 201304L in c++17"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_execution
+#     error "__cpp_lib_execution should be defined in c++17"
+#   endif
+#   if __cpp_lib_execution != 201603L
+#     error "__cpp_lib_execution should have the value 201603L in c++17"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_execution
+#     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_expected
+#   error "__cpp_lib_expected should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
+#   ifndef __cpp_lib_filesystem
+#     error "__cpp_lib_filesystem should be defined in c++17"
+#   endif
+#   if __cpp_lib_filesystem != 201703L
+#     error "__cpp_lib_filesystem should have the value 201703L in c++17"
+#   endif
+# else
+#   ifdef __cpp_lib_filesystem
+#     error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_flat_map
+#   error "__cpp_lib_flat_map should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_flat_set
+#   error "__cpp_lib_flat_set should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_format
+#   error "__cpp_lib_format should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_format_path
+#   error "__cpp_lib_format_path should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_format_ranges
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_format_uchar
+#   error "__cpp_lib_format_uchar should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_formatters
+#   error "__cpp_lib_formatters should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_forward_like
+#   error "__cpp_lib_forward_like should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_freestanding_algorithm
+#   error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_array
+#   error "__cpp_lib_freestanding_array should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_cstring
+#   error "__cpp_lib_freestanding_cstring should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_expected
+#   error "__cpp_lib_freestanding_expected should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_mdspan
+#   error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_optional
+#   error "__cpp_lib_freestanding_optional should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_string_view
+#   error "__cpp_lib_freestanding_string_view should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_variant
+#   error "__cpp_lib_freestanding_variant should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_fstream_native_handle
+#   error "__cpp_lib_fstream_native_handle should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_function_ref
+#   error "__cpp_lib_function_ref should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_gcd_lcm
+#   error "__cpp_lib_gcd_lcm should be defined in c++17"
+# endif
+# if __cpp_lib_gcd_lcm != 201606L
+#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++17"
+# endif
+
+# ifdef __cpp_lib_generate_random
+#   error "__cpp_lib_generate_random should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_generic_associative_lookup
+#   error "__cpp_lib_generic_associative_lookup should be defined in c++17"
+# endif
+# if __cpp_lib_generic_associative_lookup != 201304L
+#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17"
+# endif
+
+# ifdef __cpp_lib_generic_unordered_lookup
+#   error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
+#   ifndef __cpp_lib_hardware_interference_size
+#     error "__cpp_lib_hardware_interference_size should be defined in c++17"
+#   endif
+#   if __cpp_lib_hardware_interference_size != 201703L
+#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17"
+#   endif
+# else
+#   ifdef __cpp_lib_hardware_interference_size
+#     error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_has_unique_object_representations
+#   error "__cpp_lib_has_unique_object_representations should be defined in c++17"
+# endif
+# if __cpp_lib_has_unique_object_representations != 201606L
+#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
+# endif
+
+# ifdef __cpp_lib_hazard_pointer
+#   error "__cpp_lib_hazard_pointer should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_hypot
+#   error "__cpp_lib_hypot should be defined in c++17"
+# endif
+# if __cpp_lib_hypot != 201603L
+#   error "__cpp_lib_hypot should have the value 201603L in c++17"
+# endif
+
+# ifndef __cpp_lib_incomplete_container_elements
+#   error "__cpp_lib_incomplete_container_elements should be defined in c++17"
+# endif
+# if __cpp_lib_incomplete_container_elements != 201505L
+#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17"
+# endif
+
+# ifdef __cpp_lib_inplace_vector
+#   error "__cpp_lib_inplace_vector should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_int_pow2
+#   error "__cpp_lib_int_pow2 should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_integer_comparison_functions
+#   error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_integer_sequence
+#   error "__cpp_lib_integer_sequence should be defined in c++17"
+# endif
+# if __cpp_lib_integer_sequence != 201304L
+#   error "__cpp_lib_integer_sequence should have the value 201304L in c++17"
+# endif
+
+# ifndef __cpp_lib_integral_constant_callable
+#   error "__cpp_lib_integral_constant_callable should be defined in c++17"
+# endif
+# if __cpp_lib_integral_constant_callable != 201304L
+#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17"
+# endif
+
+# ifdef __cpp_lib_interpolate
+#   error "__cpp_lib_interpolate should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_invoke
+#   error "__cpp_lib_invoke should be defined in c++17"
+# endif
+# if __cpp_lib_invoke != 201411L
+#   error "__cpp_lib_invoke should have the value 201411L in c++17"
+# endif
+
+# ifdef __cpp_lib_invoke_r
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ios_noreplace
+#   error "__cpp_lib_ios_noreplace should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_is_aggregate
+#   error "__cpp_lib_is_aggregate should be defined in c++17"
+# endif
+# if __cpp_lib_is_aggregate != 201703L
+#   error "__cpp_lib_is_aggregate should have the value 201703L in c++17"
+# endif
+
+# ifdef __cpp_lib_is_constant_evaluated
+#   error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_is_final
+#   error "__cpp_lib_is_final should be defined in c++17"
+# endif
+# if __cpp_lib_is_final != 201402L
+#   error "__cpp_lib_is_final should have the value 201402L in c++17"
+# endif
+
+# ifdef __cpp_lib_is_implicit_lifetime
+#   error "__cpp_lib_is_implicit_lifetime should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_is_invocable
+#   error "__cpp_lib_is_invocable should be defined in c++17"
+# endif
+# if __cpp_lib_is_invocable != 201703L
+#   error "__cpp_lib_is_invocable should have the value 201703L in c++17"
+# endif
+
+# ifdef __cpp_lib_is_layout_compatible
+#   error "__cpp_lib_is_layout_compatible should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_is_nothrow_convertible
+#   error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_is_null_pointer
+#   error "__cpp_lib_is_null_pointer should be defined in c++17"
+# endif
+# if __cpp_lib_is_null_pointer != 201309L
+#   error "__cpp_lib_is_null_pointer should have the value 201309L in c++17"
+# endif
+
+# ifdef __cpp_lib_is_pointer_interconvertible
+#   error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_is_scoped_enum
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_is_swappable
+#   error "__cpp_lib_is_swappable should be defined in c++17"
+# endif
+# if __cpp_lib_is_swappable != 201603L
+#   error "__cpp_lib_is_swappable should have the value 201603L in c++17"
+# endif
+
+# ifdef __cpp_lib_is_virtual_base_of
+#   error "__cpp_lib_is_virtual_base_of should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_is_within_lifetime
+#   error "__cpp_lib_is_within_lifetime should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_jthread
+#   error "__cpp_lib_jthread should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_latch
+#   error "__cpp_lib_latch should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_launder
+#   error "__cpp_lib_launder should be defined in c++17"
+# endif
+# if __cpp_lib_launder != 201606L
+#   error "__cpp_lib_launder should have the value 201606L in c++17"
+# endif
+
+# ifdef __cpp_lib_linalg
+#   error "__cpp_lib_linalg should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_list_remove_return_type
+#   error "__cpp_lib_list_remove_return_type should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_logical_traits
+#   error "__cpp_lib_logical_traits should be defined in c++17"
+# endif
+# if __cpp_lib_logical_traits != 201510L
+#   error "__cpp_lib_logical_traits should have the value 201510L in c++17"
+# endif
+
+# ifndef __cpp_lib_make_from_tuple
+#   error "__cpp_lib_make_from_tuple should be defined in c++17"
+# endif
+# if __cpp_lib_make_from_tuple != 201606L
+#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++17"
+# endif
+
+# ifndef __cpp_lib_make_reverse_iterator
+#   error "__cpp_lib_make_reverse_iterator should be defined in c++17"
+# endif
+# if __cpp_lib_make_reverse_iterator != 201402L
+#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17"
+# endif
+
+# ifndef __cpp_lib_make_unique
+#   error "__cpp_lib_make_unique should be defined in c++17"
+# endif
+# if __cpp_lib_make_unique != 201304L
+#   error "__cpp_lib_make_unique should have the value 201304L in c++17"
+# endif
+
+# ifndef __cpp_lib_map_try_emplace
+#   error "__cpp_lib_map_try_emplace should be defined in c++17"
+# endif
+# if __cpp_lib_map_try_emplace != 201411L
+#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++17"
+# endif
+
+# ifdef __cpp_lib_math_constants
+#   error "__cpp_lib_math_constants should not be defined before c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_math_special_functions
+#     error "__cpp_lib_math_special_functions should be defined in c++17"
+#   endif
+#   if __cpp_lib_math_special_functions != 201603L
+#     error "__cpp_lib_math_special_functions should have the value 201603L in c++17"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_math_special_functions
+#     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_mdspan
+#   error "__cpp_lib_mdspan should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#   ifndef __cpp_lib_memory_resource
+#     error "__cpp_lib_memory_resource should be defined in c++17"
+#   endif
+#   if __cpp_lib_memory_resource != 201603L
+#     error "__cpp_lib_memory_resource should have the value 201603L in c++17"
+#   endif
+# else
+#   ifdef __cpp_lib_memory_resource
+#     error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_modules
+#   error "__cpp_lib_modules should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_move_iterator_concept
+#   error "__cpp_lib_move_iterator_concept should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_move_only_function
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_node_extract
+#   error "__cpp_lib_node_extract should be defined in c++17"
+# endif
+# if __cpp_lib_node_extract != 201606L
+#   error "__cpp_lib_node_extract should have the value 201606L in c++17"
+# endif
+
+# ifndef __cpp_lib_nonmember_container_access
+#   error "__cpp_lib_nonmember_container_access should be defined in c++17"
+# endif
+# if __cpp_lib_nonmember_container_access != 201411L
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
+# endif
+
+# ifndef __cpp_lib_not_fn
+#   error "__cpp_lib_not_fn should be defined in c++17"
+# endif
+# if __cpp_lib_not_fn != 201603L
+#   error "__cpp_lib_not_fn should have the value 201603L in c++17"
+# endif
+
+# ifndef __cpp_lib_null_iterators
+#   error "__cpp_lib_null_iterators should be defined in c++17"
+# endif
+# if __cpp_lib_null_iterators != 201304L
+#   error "__cpp_lib_null_iterators should have the value 201304L in c++17"
+# endif
+
+# ifndef __cpp_lib_optional
+#   error "__cpp_lib_optional should be defined in c++17"
+# endif
+# if __cpp_lib_optional != 201606L
+#   error "__cpp_lib_optional should have the value 201606L in c++17"
+# endif
+
+# ifdef __cpp_lib_optional_range_support
+#   error "__cpp_lib_optional_range_support should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_out_ptr
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_parallel_algorithm
+#     error "__cpp_lib_parallel_algorithm should be defined in c++17"
+#   endif
+#   if __cpp_lib_parallel_algorithm != 201603L
+#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_parallel_algorithm
+#     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_philox_engine
+#   error "__cpp_lib_philox_engine should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_polymorphic_allocator
+#   error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_print
+#   error "__cpp_lib_print should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
+#   ifndef __cpp_lib_quoted_string_io
+#     error "__cpp_lib_quoted_string_io should be defined in c++17"
+#   endif
+#   if __cpp_lib_quoted_string_io != 201304L
+#     error "__cpp_lib_quoted_string_io should have the value 201304L in c++17"
+#   endif
+# else
+#   ifdef __cpp_lib_quoted_string_io
+#     error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_ranges
+#   error "__cpp_lib_ranges should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_ranges_as_const
+#   error "__cpp_lib_ranges_as_const should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_as_rvalue
+#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_chunk
+#   error "__cpp_lib_ranges_chunk should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_chunk_by
+#   error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_concat
+#   error "__cpp_lib_ranges_concat should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_ranges_contains
+#   error "__cpp_lib_ranges_contains should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_find_last
+#   error "__cpp_lib_ranges_find_last should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_iota
+#   error "__cpp_lib_ranges_iota should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_join_with
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_repeat
+#   error "__cpp_lib_ranges_repeat should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_slide
+#   error "__cpp_lib_ranges_slide should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_starts_ends_with
+#   error "__cpp_lib_ranges_starts_ends_with 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"
+# endif
+
+# ifdef __cpp_lib_ranges_zip
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ratio
+#   error "__cpp_lib_ratio should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_raw_memory_algorithms
+#   error "__cpp_lib_raw_memory_algorithms should be defined in c++17"
+# endif
+# if __cpp_lib_raw_memory_algorithms != 201606L
+#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17"
+# endif
+
+# ifdef __cpp_lib_rcu
+#   error "__cpp_lib_rcu should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_reference_from_temporary
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_reference_wrapper
+#   error "__cpp_lib_reference_wrapper should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_remove_cvref
+#   error "__cpp_lib_remove_cvref should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_result_of_sfinae
+#   error "__cpp_lib_result_of_sfinae should be defined in c++17"
+# endif
+# if __cpp_lib_result_of_sfinae != 201210L
+#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17"
+# endif
+
+# ifndef __cpp_lib_robust_nonmodifying_seq_ops
+#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17"
+# endif
+# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
+#   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17"
+# endif
+
+# ifndef __cpp_lib_sample
+#   error "__cpp_lib_sample should be defined in c++17"
+# endif
+# if __cpp_lib_sample != 201603L
+#   error "__cpp_lib_sample should have the value 201603L in c++17"
+# endif
+
+# ifdef __cpp_lib_saturation_arithmetic
+#   error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_scoped_lock
+#     error "__cpp_lib_scoped_lock should be defined in c++17"
+#   endif
+#   if __cpp_lib_scoped_lock != 201703L
+#     error "__cpp_lib_scoped_lock should have the value 201703L in c++17"
+#   endif
+# else
+#   ifdef __cpp_lib_scoped_lock
+#     error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_semaphore
+#   error "__cpp_lib_semaphore should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_senders
+#   error "__cpp_lib_senders should not be defined before c++26"
+# endif
+
+# if _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_shared_mutex
+#     error "__cpp_lib_shared_mutex should be defined in c++17"
+#   endif
+#   if __cpp_lib_shared_mutex != 201505L
+#     error "__cpp_lib_shared_mutex should have the value 201505L in c++17"
+#   endif
+# else
+#   ifdef __cpp_lib_shared_mutex
+#     error "__cpp_lib_shared_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_shared_ptr_arrays
+#   error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
+# endif
+# if __cpp_lib_shared_ptr_arrays != 201611L
+#   error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
+# endif
+
+# ifndef __cpp_lib_shared_ptr_weak_type
+#   error "__cpp_lib_shared_ptr_weak_type should be defined in c++17"
+# endif
+# if __cpp_lib_shared_ptr_weak_type != 201606L
+#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17"
+# endif
+
+# if _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_shared_timed_mutex
+#     error "__cpp_lib_shared_timed_mutex should be defined in c++17"
+#   endif
+#   if __cpp_lib_shared_timed_mutex != 201402L
+#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17"
+#   endif
+# else
+#   ifdef __cpp_lib_shared_timed_mutex
+#     error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_shift
+#   error "__cpp_lib_shift should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_smart_ptr_for_overwrite
+#   error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_smart_ptr_owner_equality
+#   error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_source_location
+#   error "__cpp_lib_source_location should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_span
+#   error "__cpp_lib_span should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_span_at
+#   error "__cpp_lib_span_at should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_span_initializer_list
+#   error "__cpp_lib_span_initializer_list should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_spanstream
+#   error "__cpp_lib_spanstream should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ssize
+#   error "__cpp_lib_ssize should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_sstream_from_string_view
+#   error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_stacktrace
+#   error "__cpp_lib_stacktrace 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
+
+# ifdef __cpp_lib_stdatomic_h
+#   error "__cpp_lib_stdatomic_h should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_string_contains
+#   error "__cpp_lib_string_contains should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_string_resize_and_overwrite
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_string_udls
+#   error "__cpp_lib_string_udls should be defined in c++17"
+# endif
+# if __cpp_lib_string_udls != 201304L
+#   error "__cpp_lib_string_udls should have the value 201304L in c++17"
+# endif
+
+# ifndef __cpp_lib_string_view
+#   error "__cpp_lib_string_view should be defined in c++17"
+# endif
+# if __cpp_lib_string_view != 201606L
+#   error "__cpp_lib_string_view should have the value 201606L in c++17"
+# endif
+
+# ifdef __cpp_lib_submdspan
+#   error "__cpp_lib_submdspan should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_syncbuf
+#   error "__cpp_lib_syncbuf should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_text_encoding
+#   error "__cpp_lib_text_encoding should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_three_way_comparison
+#   error "__cpp_lib_three_way_comparison should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_to_address
+#   error "__cpp_lib_to_address should not be defined before c++20"
+# endif
+
+# ifdef __cpp_lib_to_array
+#   error "__cpp_lib_to_array should not be defined before c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_to_chars
+#     error "__cpp_lib_to_chars should be defined in c++17"
+#   endif
+#   if __cpp_lib_to_chars != 201611L
+#     error "__cpp_lib_to_chars should have the value 201611L in c++17"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_to_chars
+#     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_to_string
+#   error "__cpp_lib_to_string should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_to_underlying
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_transformation_trait_aliases
+#   error "__cpp_lib_transformation_trait_aliases should be defined in c++17"
+# endif
+# if __cpp_lib_transformation_trait_aliases != 201304L
+#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17"
+# endif
+
+# ifndef __cpp_lib_transparent_operators
+#   error "__cpp_lib_transparent_operators should be defined in c++17"
+# endif
+# if __cpp_lib_transparent_operators != 201510L
+#   error "__cpp_lib_transparent_operators should have the value 201510L in c++17"
+# endif
+
+# ifndef __cpp_lib_tuple_element_t
+#   error "__cpp_lib_tuple_element_t should be defined in c++17"
+# endif
+# if __cpp_lib_tuple_element_t != 201402L
+#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++17"
+# endif
+
+# ifdef __cpp_lib_tuple_like
+#   error "__cpp_lib_tuple_like should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_tuples_by_type
+#   error "__cpp_lib_tuples_by_type should be defined in c++17"
+# endif
+# if __cpp_lib_tuples_by_type != 201304L
+#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++17"
+# endif
+
+# ifdef __cpp_lib_type_identity
+#   error "__cpp_lib_type_identity should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_type_trait_variable_templates
+#   error "__cpp_lib_type_trait_variable_templates should be defined in c++17"
+# endif
+# if __cpp_lib_type_trait_variable_templates != 201510L
+#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17"
+# endif
+
+# ifndef __cpp_lib_uncaught_exceptions
+#   error "__cpp_lib_uncaught_exceptions should be defined in c++17"
+# endif
+# if __cpp_lib_uncaught_exceptions != 201411L
+#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17"
+# endif
+
+# ifndef __cpp_lib_unordered_map_try_emplace
+#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++17"
+# endif
+# if __cpp_lib_unordered_map_try_emplace != 201411L
+#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17"
+# endif
+
+# ifdef __cpp_lib_unreachable
+#   error "__cpp_lib_unreachable should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_unwrap_ref
+#   error "__cpp_lib_unwrap_ref should not be defined before c++20"
+# endif
+
+# ifndef __cpp_lib_variant
+#   error "__cpp_lib_variant should be defined in c++17"
+# endif
+# if __cpp_lib_variant != 202102L
+#   error "__cpp_lib_variant should have the value 202102L in c++17"
+# endif
+
+# ifndef __cpp_lib_void_t
+#   error "__cpp_lib_void_t should be defined in c++17"
+# endif
+# if __cpp_lib_void_t != 201411L
+#   error "__cpp_lib_void_t should have the value 201411L in c++17"
+# endif
+
+#elif TEST_STD_VER == 20
+
+# ifdef __cpp_lib_adaptor_iterator_pair_constructor
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_addressof_constexpr
+#   error "__cpp_lib_addressof_constexpr should be defined in c++20"
+# endif
+# if __cpp_lib_addressof_constexpr != 201603L
+#   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20"
+# endif
+
+# ifdef __cpp_lib_allocate_at_least
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_allocator_traits_is_always_equal
+#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20"
+# endif
+# if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
+# endif
+
+# ifndef __cpp_lib_any
+#   error "__cpp_lib_any should be defined in c++20"
+# endif
+# if __cpp_lib_any != 201606L
+#   error "__cpp_lib_any should have the value 201606L in c++20"
+# endif
+
+# ifndef __cpp_lib_apply
+#   error "__cpp_lib_apply should be defined in c++20"
+# endif
+# if __cpp_lib_apply != 201603L
+#   error "__cpp_lib_apply should have the value 201603L in c++20"
+# endif
+
+# ifndef __cpp_lib_array_constexpr
+#   error "__cpp_lib_array_constexpr should be defined in c++20"
+# endif
+# if __cpp_lib_array_constexpr != 201811L
+#   error "__cpp_lib_array_constexpr should have the value 201811L in c++20"
+# endif
+
+# ifndef __cpp_lib_as_const
+#   error "__cpp_lib_as_const should be defined in c++20"
+# endif
+# if __cpp_lib_as_const != 201510L
+#   error "__cpp_lib_as_const should have the value 201510L in c++20"
+# endif
+
+# ifdef __cpp_lib_associative_heterogeneous_erasure
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_associative_heterogeneous_insertion
+#   error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_assume_aligned
+#   error "__cpp_lib_assume_aligned should be defined in c++20"
+# endif
+# if __cpp_lib_assume_aligned != 201811L
+#   error "__cpp_lib_assume_aligned should have the value 201811L in c++20"
+# endif
+
+# ifndef __cpp_lib_atomic_flag_test
+#   error "__cpp_lib_atomic_flag_test should be defined in c++20"
+# endif
+# if __cpp_lib_atomic_flag_test != 201907L
+#   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20"
+# endif
+
+# ifndef __cpp_lib_atomic_float
+#   error "__cpp_lib_atomic_float should be defined in c++20"
+# endif
+# if __cpp_lib_atomic_float != 201711L
+#   error "__cpp_lib_atomic_float should have the value 201711L in c++20"
+# endif
+
+# ifndef __cpp_lib_atomic_is_always_lock_free
+#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20"
+# endif
+# if __cpp_lib_atomic_is_always_lock_free != 201603L
+#   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20"
+# endif
+
+# ifndef __cpp_lib_atomic_lock_free_type_aliases
+#   error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20"
+# endif
+# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
+#   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20"
+# endif
+
+# ifdef __cpp_lib_atomic_min_max
+#   error "__cpp_lib_atomic_min_max should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_atomic_ref
+#   error "__cpp_lib_atomic_ref should be defined in c++20"
+# endif
+# if __cpp_lib_atomic_ref != 201806L
+#   error "__cpp_lib_atomic_ref should have the value 201806L in c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_atomic_shared_ptr
+#     error "__cpp_lib_atomic_shared_ptr should be defined in c++20"
+#   endif
+#   if __cpp_lib_atomic_shared_ptr != 201711L
+#     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_atomic_shared_ptr
+#     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_atomic_value_initialization
+#   error "__cpp_lib_atomic_value_initialization should be defined in c++20"
+# endif
+# if __cpp_lib_atomic_value_initialization != 201911L
+#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
+#   ifndef __cpp_lib_atomic_wait
+#     error "__cpp_lib_atomic_wait should be defined in c++20"
+#   endif
+#   if __cpp_lib_atomic_wait != 201907L
+#     error "__cpp_lib_atomic_wait should have the value 201907L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_atomic_wait
+#     error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_barrier
+#     error "__cpp_lib_barrier should be defined in c++20"
+#   endif
+#   if __cpp_lib_barrier != 201907L
+#     error "__cpp_lib_barrier should have the value 201907L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_barrier
+#     error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_bind_back
+#   error "__cpp_lib_bind_back should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_bind_front
+#   error "__cpp_lib_bind_front should be defined in c++20"
+# endif
+# if __cpp_lib_bind_front != 201907L
+#   error "__cpp_lib_bind_front should have the value 201907L in c++20"
+# endif
+
+# ifndef __cpp_lib_bit_cast
+#   error "__cpp_lib_bit_cast should be defined in c++20"
+# endif
+# if __cpp_lib_bit_cast != 201806L
+#   error "__cpp_lib_bit_cast should have the value 201806L in c++20"
+# endif
+
+# ifndef __cpp_lib_bitops
+#   error "__cpp_lib_bitops should be defined in c++20"
+# endif
+# if __cpp_lib_bitops != 201907L
+#   error "__cpp_lib_bitops should have the value 201907L in c++20"
+# endif
+
+# ifdef __cpp_lib_bitset
+#   error "__cpp_lib_bitset should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_bool_constant
+#   error "__cpp_lib_bool_constant should be defined in c++20"
+# endif
+# if __cpp_lib_bool_constant != 201505L
+#   error "__cpp_lib_bool_constant should have the value 201505L in c++20"
+# endif
+
+# ifndef __cpp_lib_bounded_array_traits
+#   error "__cpp_lib_bounded_array_traits should be defined in c++20"
+# endif
+# if __cpp_lib_bounded_array_traits != 201902L
+#   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20"
+# endif
+
+# ifndef __cpp_lib_boyer_moore_searcher
+#   error "__cpp_lib_boyer_moore_searcher should be defined in c++20"
+# endif
+# if __cpp_lib_boyer_moore_searcher != 201603L
+#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20"
+# endif
+
+# ifndef __cpp_lib_byte
+#   error "__cpp_lib_byte should be defined in c++20"
+# endif
+# if __cpp_lib_byte != 201603L
+#   error "__cpp_lib_byte should have the value 201603L in c++20"
+# endif
+
+# ifdef __cpp_lib_byteswap
+#   error "__cpp_lib_byteswap should not be defined before c++23"
+# endif
+
+# if defined(__cpp_char8_t)
+#   ifndef __cpp_lib_char8_t
+#     error "__cpp_lib_char8_t should be defined in c++20"
+#   endif
+#   if __cpp_lib_char8_t != 201907L
+#     error "__cpp_lib_char8_t should have the value 201907L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_char8_t
+#     error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_chrono
+#   error "__cpp_lib_chrono should be defined in c++20"
+# endif
+# if __cpp_lib_chrono != 201611L
+#   error "__cpp_lib_chrono should have the value 201611L in c++20"
+# endif
+
+# ifndef __cpp_lib_chrono_udls
+#   error "__cpp_lib_chrono_udls should be defined in c++20"
+# endif
+# if __cpp_lib_chrono_udls != 201304L
+#   error "__cpp_lib_chrono_udls should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_clamp
+#   error "__cpp_lib_clamp should be defined in c++20"
+# endif
+# if __cpp_lib_clamp != 201603L
+#   error "__cpp_lib_clamp should have the value 201603L in c++20"
+# endif
+
+# ifndef __cpp_lib_complex_udls
+#   error "__cpp_lib_complex_udls should be defined in c++20"
+# endif
+# if __cpp_lib_complex_udls != 201309L
+#   error "__cpp_lib_complex_udls should have the value 201309L in c++20"
+# endif
+
+# ifndef __cpp_lib_concepts
+#   error "__cpp_lib_concepts should be defined in c++20"
+# endif
+# if __cpp_lib_concepts != 202002L
+#   error "__cpp_lib_concepts should have the value 202002L in c++20"
+# endif
+
+# ifndef __cpp_lib_constexpr_algorithms
+#   error "__cpp_lib_constexpr_algorithms should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_algorithms != 201806L
+#   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_bitset
+#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_charconv
+#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_cmath
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_complex
+#   error "__cpp_lib_constexpr_complex should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_complex != 201711L
+#   error "__cpp_lib_constexpr_complex should have the value 201711L in c++20"
+# endif
+
+# ifndef __cpp_lib_constexpr_dynamic_alloc
+#   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_dynamic_alloc != 201907L
+#   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_forward_list
+#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_functional
+#   error "__cpp_lib_constexpr_functional should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_functional != 201907L
+#   error "__cpp_lib_constexpr_functional should have the value 201907L in c++20"
+# endif
+
+# ifndef __cpp_lib_constexpr_iterator
+#   error "__cpp_lib_constexpr_iterator should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_iterator != 201811L
+#   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20"
+# endif
+
+# ifndef __cpp_lib_constexpr_memory
+#   error "__cpp_lib_constexpr_memory should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_memory != 201811L
+#   error "__cpp_lib_constexpr_memory should have the value 201811L in c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_new
+#   error "__cpp_lib_constexpr_new should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_numeric
+#   error "__cpp_lib_constexpr_numeric should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_numeric != 201911L
+#   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20"
+# endif
+
+# ifndef __cpp_lib_constexpr_string
+#   error "__cpp_lib_constexpr_string should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_string != 201907L
+#   error "__cpp_lib_constexpr_string should have the value 201907L in c++20"
+# endif
+
+# ifndef __cpp_lib_constexpr_string_view
+#   error "__cpp_lib_constexpr_string_view should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_string_view != 201811L
+#   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20"
+# endif
+
+# ifndef __cpp_lib_constexpr_tuple
+#   error "__cpp_lib_constexpr_tuple should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_tuple != 201811L
+#   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20"
+# endif
+
+# ifdef __cpp_lib_constexpr_typeinfo
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_utility
+#   error "__cpp_lib_constexpr_utility should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_utility != 201811L
+#   error "__cpp_lib_constexpr_utility should have the value 201811L in c++20"
+# endif
+
+# ifndef __cpp_lib_constexpr_vector
+#   error "__cpp_lib_constexpr_vector should be defined in c++20"
+# endif
+# if __cpp_lib_constexpr_vector != 201907L
+#   error "__cpp_lib_constexpr_vector should have the value 201907L in c++20"
+# endif
+
+# ifdef __cpp_lib_constrained_equality
+#   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
+
+# ifndef __cpp_lib_coroutine
+#   error "__cpp_lib_coroutine should be defined in c++20"
+# endif
+# if __cpp_lib_coroutine != 201902L
+#   error "__cpp_lib_coroutine should have the value 201902L in c++20"
+# endif
+
+# ifdef __cpp_lib_debugging
+#   error "__cpp_lib_debugging should not be defined before c++26"
+# 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
+
+# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
+#   ifndef __cpp_lib_destroying_delete
+#     error "__cpp_lib_destroying_delete should be defined in c++20"
+#   endif
+#   if __cpp_lib_destroying_delete != 201806L
+#     error "__cpp_lib_destroying_delete should have the value 201806L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_destroying_delete
+#     error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_enable_shared_from_this
+#   error "__cpp_lib_enable_shared_from_this should be defined in c++20"
+# endif
+# if __cpp_lib_enable_shared_from_this != 201603L
+#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20"
+# endif
+
+# ifndef __cpp_lib_endian
+#   error "__cpp_lib_endian should be defined in c++20"
+# endif
+# if __cpp_lib_endian != 201907L
+#   error "__cpp_lib_endian should have the value 201907L in c++20"
+# endif
+
+# ifndef __cpp_lib_erase_if
+#   error "__cpp_lib_erase_if should be defined in c++20"
+# endif
+# if __cpp_lib_erase_if != 202002L
+#   error "__cpp_lib_erase_if should have the value 202002L in c++20"
+# endif
+
+# ifndef __cpp_lib_exchange_function
+#   error "__cpp_lib_exchange_function should be defined in c++20"
+# endif
+# if __cpp_lib_exchange_function != 201304L
+#   error "__cpp_lib_exchange_function should have the value 201304L in c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_execution
+#     error "__cpp_lib_execution should be defined in c++20"
+#   endif
+#   if __cpp_lib_execution != 201902L
+#     error "__cpp_lib_execution should have the value 201902L in c++20"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_execution
+#     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_expected
+#   error "__cpp_lib_expected should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
+#   ifndef __cpp_lib_filesystem
+#     error "__cpp_lib_filesystem should be defined in c++20"
+#   endif
+#   if __cpp_lib_filesystem != 201703L
+#     error "__cpp_lib_filesystem should have the value 201703L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_filesystem
+#     error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_flat_map
+#   error "__cpp_lib_flat_map should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_flat_set
+#   error "__cpp_lib_flat_set should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
+#   ifndef __cpp_lib_format
+#     error "__cpp_lib_format should be defined in c++20"
+#   endif
+#   if __cpp_lib_format != 202110L
+#     error "__cpp_lib_format should have the value 202110L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_format
+#     error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_format_path
+#   error "__cpp_lib_format_path should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_format_ranges
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_format_uchar
+#   error "__cpp_lib_format_uchar should be defined in c++20"
+# endif
+# if __cpp_lib_format_uchar != 202311L
+#   error "__cpp_lib_format_uchar should have the value 202311L in c++20"
+# endif
+
+# ifdef __cpp_lib_formatters
+#   error "__cpp_lib_formatters should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_forward_like
+#   error "__cpp_lib_forward_like should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_freestanding_algorithm
+#   error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_array
+#   error "__cpp_lib_freestanding_array should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_cstring
+#   error "__cpp_lib_freestanding_cstring should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_expected
+#   error "__cpp_lib_freestanding_expected should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_mdspan
+#   error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_optional
+#   error "__cpp_lib_freestanding_optional should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_string_view
+#   error "__cpp_lib_freestanding_string_view should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_variant
+#   error "__cpp_lib_freestanding_variant should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_fstream_native_handle
+#   error "__cpp_lib_fstream_native_handle should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_function_ref
+#   error "__cpp_lib_function_ref should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_gcd_lcm
+#   error "__cpp_lib_gcd_lcm should be defined in c++20"
+# endif
+# if __cpp_lib_gcd_lcm != 201606L
+#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++20"
+# endif
+
+# ifdef __cpp_lib_generate_random
+#   error "__cpp_lib_generate_random should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_generic_associative_lookup
+#   error "__cpp_lib_generic_associative_lookup should be defined in c++20"
+# endif
+# if __cpp_lib_generic_associative_lookup != 201304L
+#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_generic_unordered_lookup
+#   error "__cpp_lib_generic_unordered_lookup should be defined in c++20"
+# endif
+# if __cpp_lib_generic_unordered_lookup != 201811L
+#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
+#   ifndef __cpp_lib_hardware_interference_size
+#     error "__cpp_lib_hardware_interference_size should be defined in c++20"
+#   endif
+#   if __cpp_lib_hardware_interference_size != 201703L
+#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_hardware_interference_size
+#     error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_has_unique_object_representations
+#   error "__cpp_lib_has_unique_object_representations should be defined in c++20"
+# endif
+# if __cpp_lib_has_unique_object_representations != 201606L
+#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
+# endif
+
+# ifdef __cpp_lib_hazard_pointer
+#   error "__cpp_lib_hazard_pointer should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_hypot
+#   error "__cpp_lib_hypot should be defined in c++20"
+# endif
+# if __cpp_lib_hypot != 201603L
+#   error "__cpp_lib_hypot should have the value 201603L in c++20"
+# endif
+
+# ifndef __cpp_lib_incomplete_container_elements
+#   error "__cpp_lib_incomplete_container_elements should be defined in c++20"
+# endif
+# if __cpp_lib_incomplete_container_elements != 201505L
+#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20"
+# endif
+
+# ifdef __cpp_lib_inplace_vector
+#   error "__cpp_lib_inplace_vector should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_int_pow2
+#   error "__cpp_lib_int_pow2 should be defined in c++20"
+# endif
+# if __cpp_lib_int_pow2 != 202002L
+#   error "__cpp_lib_int_pow2 should have the value 202002L in c++20"
+# endif
+
+# ifndef __cpp_lib_integer_comparison_functions
+#   error "__cpp_lib_integer_comparison_functions should be defined in c++20"
+# endif
+# if __cpp_lib_integer_comparison_functions != 202002L
+#   error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20"
+# endif
+
+# ifndef __cpp_lib_integer_sequence
+#   error "__cpp_lib_integer_sequence should be defined in c++20"
+# endif
+# if __cpp_lib_integer_sequence != 201304L
+#   error "__cpp_lib_integer_sequence should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_integral_constant_callable
+#   error "__cpp_lib_integral_constant_callable should be defined in c++20"
+# endif
+# if __cpp_lib_integral_constant_callable != 201304L
+#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_interpolate
+#   error "__cpp_lib_interpolate should be defined in c++20"
+# endif
+# if __cpp_lib_interpolate != 201902L
+#   error "__cpp_lib_interpolate should have the value 201902L in c++20"
+# endif
+
+# ifndef __cpp_lib_invoke
+#   error "__cpp_lib_invoke should be defined in c++20"
+# endif
+# if __cpp_lib_invoke != 201411L
+#   error "__cpp_lib_invoke should have the value 201411L in c++20"
+# endif
+
+# ifdef __cpp_lib_invoke_r
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ios_noreplace
+#   error "__cpp_lib_ios_noreplace should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_is_aggregate
+#   error "__cpp_lib_is_aggregate should be defined in c++20"
+# endif
+# if __cpp_lib_is_aggregate != 201703L
+#   error "__cpp_lib_is_aggregate should have the value 201703L in c++20"
+# endif
+
+# ifndef __cpp_lib_is_constant_evaluated
+#   error "__cpp_lib_is_constant_evaluated should be defined in c++20"
+# endif
+# if __cpp_lib_is_constant_evaluated != 201811L
+#   error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
+# endif
+
+# ifndef __cpp_lib_is_final
+#   error "__cpp_lib_is_final should be defined in c++20"
+# endif
+# if __cpp_lib_is_final != 201402L
+#   error "__cpp_lib_is_final should have the value 201402L in c++20"
+# endif
+
+# ifdef __cpp_lib_is_implicit_lifetime
+#   error "__cpp_lib_is_implicit_lifetime should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_is_invocable
+#   error "__cpp_lib_is_invocable should be defined in c++20"
+# endif
+# if __cpp_lib_is_invocable != 201703L
+#   error "__cpp_lib_is_invocable should have the value 201703L in c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_is_layout_compatible
+#     error "__cpp_lib_is_layout_compatible should be defined in c++20"
+#   endif
+#   if __cpp_lib_is_layout_compatible != 201907L
+#     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_is_layout_compatible
+#     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_is_nothrow_convertible
+#   error "__cpp_lib_is_nothrow_convertible should be defined in c++20"
+# endif
+# if __cpp_lib_is_nothrow_convertible != 201806L
+#   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20"
+# endif
+
+# ifndef __cpp_lib_is_null_pointer
+#   error "__cpp_lib_is_null_pointer should be defined in c++20"
+# endif
+# if __cpp_lib_is_null_pointer != 201309L
+#   error "__cpp_lib_is_null_pointer should have the value 201309L in c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_is_pointer_interconvertible
+#     error "__cpp_lib_is_pointer_interconvertible should be defined in c++20"
+#   endif
+#   if __cpp_lib_is_pointer_interconvertible != 201907L
+#     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_is_pointer_interconvertible
+#     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_is_scoped_enum
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_is_swappable
+#   error "__cpp_lib_is_swappable should be defined in c++20"
+# endif
+# if __cpp_lib_is_swappable != 201603L
+#   error "__cpp_lib_is_swappable should have the value 201603L in c++20"
+# endif
+
+# ifdef __cpp_lib_is_virtual_base_of
+#   error "__cpp_lib_is_virtual_base_of should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_is_within_lifetime
+#   error "__cpp_lib_is_within_lifetime should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_jthread
+#     error "__cpp_lib_jthread should be defined in c++20"
+#   endif
+#   if __cpp_lib_jthread != 201911L
+#     error "__cpp_lib_jthread should have the value 201911L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_jthread
+#     error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_latch
+#     error "__cpp_lib_latch should be defined in c++20"
+#   endif
+#   if __cpp_lib_latch != 201907L
+#     error "__cpp_lib_latch should have the value 201907L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_latch
+#     error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_launder
+#   error "__cpp_lib_launder should be defined in c++20"
+# endif
+# if __cpp_lib_launder != 201606L
+#   error "__cpp_lib_launder should have the value 201606L in c++20"
+# endif
+
+# ifdef __cpp_lib_linalg
+#   error "__cpp_lib_linalg should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_list_remove_return_type
+#   error "__cpp_lib_list_remove_return_type should be defined in c++20"
+# endif
+# if __cpp_lib_list_remove_return_type != 201806L
+#   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20"
+# endif
+
+# ifndef __cpp_lib_logical_traits
+#   error "__cpp_lib_logical_traits should be defined in c++20"
+# endif
+# if __cpp_lib_logical_traits != 201510L
+#   error "__cpp_lib_logical_traits should have the value 201510L in c++20"
+# endif
+
+# ifndef __cpp_lib_make_from_tuple
+#   error "__cpp_lib_make_from_tuple should be defined in c++20"
+# endif
+# if __cpp_lib_make_from_tuple != 201606L
+#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++20"
+# endif
+
+# ifndef __cpp_lib_make_reverse_iterator
+#   error "__cpp_lib_make_reverse_iterator should be defined in c++20"
+# endif
+# if __cpp_lib_make_reverse_iterator != 201402L
+#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20"
+# endif
+
+# ifndef __cpp_lib_make_unique
+#   error "__cpp_lib_make_unique should be defined in c++20"
+# endif
+# if __cpp_lib_make_unique != 201304L
+#   error "__cpp_lib_make_unique should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_map_try_emplace
+#   error "__cpp_lib_map_try_emplace should be defined in c++20"
+# endif
+# if __cpp_lib_map_try_emplace != 201411L
+#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++20"
+# endif
+
+# ifndef __cpp_lib_math_constants
+#   error "__cpp_lib_math_constants should be defined in c++20"
+# endif
+# if __cpp_lib_math_constants != 201907L
+#   error "__cpp_lib_math_constants should have the value 201907L in c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_math_special_functions
+#     error "__cpp_lib_math_special_functions should be defined in c++20"
+#   endif
+#   if __cpp_lib_math_special_functions != 201603L
+#     error "__cpp_lib_math_special_functions should have the value 201603L in c++20"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_math_special_functions
+#     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_mdspan
+#   error "__cpp_lib_mdspan should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#   ifndef __cpp_lib_memory_resource
+#     error "__cpp_lib_memory_resource should be defined in c++20"
+#   endif
+#   if __cpp_lib_memory_resource != 201603L
+#     error "__cpp_lib_memory_resource should have the value 201603L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_memory_resource
+#     error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_modules
+#   error "__cpp_lib_modules should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_move_iterator_concept
+#   error "__cpp_lib_move_iterator_concept should be defined in c++20"
+# endif
+# if __cpp_lib_move_iterator_concept != 202207L
+#   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++20"
+# endif
+
+# ifdef __cpp_lib_move_only_function
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_node_extract
+#   error "__cpp_lib_node_extract should be defined in c++20"
+# endif
+# if __cpp_lib_node_extract != 201606L
+#   error "__cpp_lib_node_extract should have the value 201606L in c++20"
+# endif
+
+# ifndef __cpp_lib_nonmember_container_access
+#   error "__cpp_lib_nonmember_container_access should be defined in c++20"
+# endif
+# if __cpp_lib_nonmember_container_access != 201411L
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
+# endif
+
+# ifndef __cpp_lib_not_fn
+#   error "__cpp_lib_not_fn should be defined in c++20"
+# endif
+# if __cpp_lib_not_fn != 201603L
+#   error "__cpp_lib_not_fn should have the value 201603L in c++20"
+# endif
+
+# ifndef __cpp_lib_null_iterators
+#   error "__cpp_lib_null_iterators should be defined in c++20"
+# endif
+# if __cpp_lib_null_iterators != 201304L
+#   error "__cpp_lib_null_iterators should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_optional
+#   error "__cpp_lib_optional should be defined in c++20"
+# endif
+# if __cpp_lib_optional != 202106L
+#   error "__cpp_lib_optional should have the value 202106L in c++20"
+# endif
+
+# ifdef __cpp_lib_optional_range_support
+#   error "__cpp_lib_optional_range_support should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_out_ptr
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_parallel_algorithm
+#     error "__cpp_lib_parallel_algorithm should be defined in c++20"
+#   endif
+#   if __cpp_lib_parallel_algorithm != 201603L
+#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_parallel_algorithm
+#     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_philox_engine
+#   error "__cpp_lib_philox_engine should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#   ifndef __cpp_lib_polymorphic_allocator
+#     error "__cpp_lib_polymorphic_allocator should be defined in c++20"
+#   endif
+#   if __cpp_lib_polymorphic_allocator != 201902L
+#     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_polymorphic_allocator
+#     error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_print
+#   error "__cpp_lib_print should not be defined before c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
+#   ifndef __cpp_lib_quoted_string_io
+#     error "__cpp_lib_quoted_string_io should be defined in c++20"
+#   endif
+#   if __cpp_lib_quoted_string_io != 201304L
+#     error "__cpp_lib_quoted_string_io should have the value 201304L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_quoted_string_io
+#     error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges
+#   error "__cpp_lib_ranges should be defined in c++20"
+# endif
+# if __cpp_lib_ranges != 202110L
+#   error "__cpp_lib_ranges should have the value 202110L in c++20"
+# endif
+
+# ifdef __cpp_lib_ranges_as_const
+#   error "__cpp_lib_ranges_as_const should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_as_rvalue
+#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_chunk
+#   error "__cpp_lib_ranges_chunk should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_chunk_by
+#   error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_concat
+#   error "__cpp_lib_ranges_concat should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_ranges_contains
+#   error "__cpp_lib_ranges_contains should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_find_last
+#   error "__cpp_lib_ranges_find_last should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_iota
+#   error "__cpp_lib_ranges_iota should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_join_with
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_repeat
+#   error "__cpp_lib_ranges_repeat should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_slide
+#   error "__cpp_lib_ranges_slide should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_starts_ends_with
+#   error "__cpp_lib_ranges_starts_ends_with 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"
+# endif
+
+# ifdef __cpp_lib_ranges_zip
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_ratio
+#   error "__cpp_lib_ratio should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_raw_memory_algorithms
+#   error "__cpp_lib_raw_memory_algorithms should be defined in c++20"
+# endif
+# if __cpp_lib_raw_memory_algorithms != 201606L
+#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20"
+# endif
+
+# ifdef __cpp_lib_rcu
+#   error "__cpp_lib_rcu should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_reference_from_temporary
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_reference_wrapper
+#   error "__cpp_lib_reference_wrapper should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_remove_cvref
+#   error "__cpp_lib_remove_cvref should be defined in c++20"
+# endif
+# if __cpp_lib_remove_cvref != 201711L
+#   error "__cpp_lib_remove_cvref should have the value 201711L in c++20"
+# endif
+
+# ifndef __cpp_lib_result_of_sfinae
+#   error "__cpp_lib_result_of_sfinae should be defined in c++20"
+# endif
+# if __cpp_lib_result_of_sfinae != 201210L
+#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20"
+# endif
+
+# ifndef __cpp_lib_robust_nonmodifying_seq_ops
+#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20"
+# endif
+# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
+#   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_sample
+#   error "__cpp_lib_sample should be defined in c++20"
+# endif
+# if __cpp_lib_sample != 201603L
+#   error "__cpp_lib_sample should have the value 201603L in c++20"
+# endif
+
+# ifdef __cpp_lib_saturation_arithmetic
+#   error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_scoped_lock
+#     error "__cpp_lib_scoped_lock should be defined in c++20"
+#   endif
+#   if __cpp_lib_scoped_lock != 201703L
+#     error "__cpp_lib_scoped_lock should have the value 201703L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_scoped_lock
+#     error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_semaphore
+#     error "__cpp_lib_semaphore should be defined in c++20"
+#   endif
+#   if __cpp_lib_semaphore != 201907L
+#     error "__cpp_lib_semaphore should have the value 201907L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_semaphore
+#     error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_senders
+#   error "__cpp_lib_senders should not be defined before c++26"
+# endif
+
+# if _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_shared_mutex
+#     error "__cpp_lib_shared_mutex should be defined in c++20"
+#   endif
+#   if __cpp_lib_shared_mutex != 201505L
+#     error "__cpp_lib_shared_mutex should have the value 201505L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_shared_mutex
+#     error "__cpp_lib_shared_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_shared_ptr_arrays
+#   error "__cpp_lib_shared_ptr_arrays should be defined in c++20"
+# endif
+# if __cpp_lib_shared_ptr_arrays != 201707L
+#   error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++20"
+# endif
+
+# ifndef __cpp_lib_shared_ptr_weak_type
+#   error "__cpp_lib_shared_ptr_weak_type should be defined in c++20"
+# endif
+# if __cpp_lib_shared_ptr_weak_type != 201606L
+#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20"
+# endif
+
+# if _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_shared_timed_mutex
+#     error "__cpp_lib_shared_timed_mutex should be defined in c++20"
+#   endif
+#   if __cpp_lib_shared_timed_mutex != 201402L
+#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_shared_timed_mutex
+#     error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_shift
+#   error "__cpp_lib_shift should be defined in c++20"
+# endif
+# if __cpp_lib_shift != 201806L
+#   error "__cpp_lib_shift should have the value 201806L in c++20"
+# endif
+
+# ifndef __cpp_lib_smart_ptr_for_overwrite
+#   error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20"
+# endif
+# if __cpp_lib_smart_ptr_for_overwrite != 202002L
+#   error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20"
+# endif
+
+# ifdef __cpp_lib_smart_ptr_owner_equality
+#   error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_source_location
+#   error "__cpp_lib_source_location should be defined in c++20"
+# endif
+# if __cpp_lib_source_location != 201907L
+#   error "__cpp_lib_source_location should have the value 201907L in c++20"
+# endif
+
+# ifndef __cpp_lib_span
+#   error "__cpp_lib_span should be defined in c++20"
+# endif
+# if __cpp_lib_span != 202002L
+#   error "__cpp_lib_span should have the value 202002L in c++20"
+# endif
+
+# ifdef __cpp_lib_span_at
+#   error "__cpp_lib_span_at should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_span_initializer_list
+#   error "__cpp_lib_span_initializer_list should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_spanstream
+#   error "__cpp_lib_spanstream should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_ssize
+#   error "__cpp_lib_ssize should be defined in c++20"
+# endif
+# if __cpp_lib_ssize != 201902L
+#   error "__cpp_lib_ssize should have the value 201902L in c++20"
+# endif
+
+# ifdef __cpp_lib_sstream_from_string_view
+#   error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_stacktrace
+#   error "__cpp_lib_stacktrace 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
+# if __cpp_lib_starts_ends_with != 201711L
+#   error "__cpp_lib_starts_ends_with should have the value 201711L in c++20"
+# endif
+
+# ifdef __cpp_lib_stdatomic_h
+#   error "__cpp_lib_stdatomic_h should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_string_contains
+#   error "__cpp_lib_string_contains should not be defined before c++23"
+# endif
+
+# ifdef __cpp_lib_string_resize_and_overwrite
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_string_udls
+#   error "__cpp_lib_string_udls should be defined in c++20"
+# endif
+# if __cpp_lib_string_udls != 201304L
+#   error "__cpp_lib_string_udls should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_string_view
+#   error "__cpp_lib_string_view should be defined in c++20"
+# endif
+# if __cpp_lib_string_view != 201803L
+#   error "__cpp_lib_string_view should have the value 201803L in c++20"
+# endif
+
+# ifdef __cpp_lib_submdspan
+#   error "__cpp_lib_submdspan should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
+#   ifndef __cpp_lib_syncbuf
+#     error "__cpp_lib_syncbuf should be defined in c++20"
+#   endif
+#   if __cpp_lib_syncbuf != 201803L
+#     error "__cpp_lib_syncbuf should have the value 201803L in c++20"
+#   endif
+# else
+#   ifdef __cpp_lib_syncbuf
+#     error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_text_encoding
+#   error "__cpp_lib_text_encoding should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_three_way_comparison
+#   error "__cpp_lib_three_way_comparison should be defined in c++20"
+# endif
+# if __cpp_lib_three_way_comparison != 201907L
+#   error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
+# endif
+
+# ifndef __cpp_lib_to_address
+#   error "__cpp_lib_to_address should be defined in c++20"
+# endif
+# if __cpp_lib_to_address != 201711L
+#   error "__cpp_lib_to_address should have the value 201711L in c++20"
+# endif
+
+# ifndef __cpp_lib_to_array
+#   error "__cpp_lib_to_array should be defined in c++20"
+# endif
+# if __cpp_lib_to_array != 201907L
+#   error "__cpp_lib_to_array should have the value 201907L in c++20"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_to_chars
+#     error "__cpp_lib_to_chars should be defined in c++20"
+#   endif
+#   if __cpp_lib_to_chars != 201611L
+#     error "__cpp_lib_to_chars should have the value 201611L in c++20"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_to_chars
+#     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_to_string
+#   error "__cpp_lib_to_string should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_to_underlying
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_transformation_trait_aliases
+#   error "__cpp_lib_transformation_trait_aliases should be defined in c++20"
+# endif
+# if __cpp_lib_transformation_trait_aliases != 201304L
+#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_transparent_operators
+#   error "__cpp_lib_transparent_operators should be defined in c++20"
+# endif
+# if __cpp_lib_transparent_operators != 201510L
+#   error "__cpp_lib_transparent_operators should have the value 201510L in c++20"
+# endif
+
+# ifndef __cpp_lib_tuple_element_t
+#   error "__cpp_lib_tuple_element_t should be defined in c++20"
+# endif
+# if __cpp_lib_tuple_element_t != 201402L
+#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++20"
+# endif
+
+# ifdef __cpp_lib_tuple_like
+#   error "__cpp_lib_tuple_like should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_tuples_by_type
+#   error "__cpp_lib_tuples_by_type should be defined in c++20"
+# endif
+# if __cpp_lib_tuples_by_type != 201304L
+#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++20"
+# endif
+
+# ifndef __cpp_lib_type_identity
+#   error "__cpp_lib_type_identity should be defined in c++20"
+# endif
+# if __cpp_lib_type_identity != 201806L
+#   error "__cpp_lib_type_identity should have the value 201806L in c++20"
+# endif
+
+# ifndef __cpp_lib_type_trait_variable_templates
+#   error "__cpp_lib_type_trait_variable_templates should be defined in c++20"
+# endif
+# if __cpp_lib_type_trait_variable_templates != 201510L
+#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20"
+# endif
+
+# ifndef __cpp_lib_uncaught_exceptions
+#   error "__cpp_lib_uncaught_exceptions should be defined in c++20"
+# endif
+# if __cpp_lib_uncaught_exceptions != 201411L
+#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20"
+# endif
+
+# ifndef __cpp_lib_unordered_map_try_emplace
+#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++20"
+# endif
+# if __cpp_lib_unordered_map_try_emplace != 201411L
+#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20"
+# endif
+
+# ifdef __cpp_lib_unreachable
+#   error "__cpp_lib_unreachable should not be defined before c++23"
+# endif
+
+# ifndef __cpp_lib_unwrap_ref
+#   error "__cpp_lib_unwrap_ref should be defined in c++20"
+# endif
+# if __cpp_lib_unwrap_ref != 201811L
+#   error "__cpp_lib_unwrap_ref should have the value 201811L in c++20"
+# endif
+
+# ifndef __cpp_lib_variant
+#   error "__cpp_lib_variant should be defined in c++20"
+# endif
+# if __cpp_lib_variant != 202106L
+#   error "__cpp_lib_variant should have the value 202106L in c++20"
+# endif
+
+# ifndef __cpp_lib_void_t
+#   error "__cpp_lib_void_t should be defined in c++20"
+# endif
+# if __cpp_lib_void_t != 201411L
+#   error "__cpp_lib_void_t should have the value 201411L in c++20"
+# endif
+
+#elif TEST_STD_VER == 23
+
+# ifndef __cpp_lib_adaptor_iterator_pair_constructor
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23"
+# endif
+# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
+# endif
+
+# ifndef __cpp_lib_addressof_constexpr
+#   error "__cpp_lib_addressof_constexpr should be defined in c++23"
+# endif
+# if __cpp_lib_addressof_constexpr != 201603L
+#   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_allocate_at_least
+#   error "__cpp_lib_allocate_at_least should be defined in c++23"
+# endif
+# if __cpp_lib_allocate_at_least != 202302L
+#   error "__cpp_lib_allocate_at_least should have the value 202302L in c++23"
+# endif
+
+# ifndef __cpp_lib_allocator_traits_is_always_equal
+#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23"
+# endif
+# if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
+# endif
+
+# ifndef __cpp_lib_any
+#   error "__cpp_lib_any should be defined in c++23"
+# endif
+# if __cpp_lib_any != 201606L
+#   error "__cpp_lib_any should have the value 201606L in c++23"
+# endif
+
+# ifndef __cpp_lib_apply
+#   error "__cpp_lib_apply should be defined in c++23"
+# endif
+# if __cpp_lib_apply != 201603L
+#   error "__cpp_lib_apply should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_array_constexpr
+#   error "__cpp_lib_array_constexpr should be defined in c++23"
+# endif
+# if __cpp_lib_array_constexpr != 201811L
+#   error "__cpp_lib_array_constexpr should have the value 201811L in c++23"
+# endif
+
+# ifndef __cpp_lib_as_const
+#   error "__cpp_lib_as_const should be defined in c++23"
+# endif
+# if __cpp_lib_as_const != 201510L
+#   error "__cpp_lib_as_const should have the value 201510L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_associative_heterogeneous_erasure
+#     error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23"
+#   endif
+#   if __cpp_lib_associative_heterogeneous_erasure != 202110L
+#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_associative_heterogeneous_erasure
+#     error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_associative_heterogeneous_insertion
+#   error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_assume_aligned
+#   error "__cpp_lib_assume_aligned should be defined in c++23"
+# endif
+# if __cpp_lib_assume_aligned != 201811L
+#   error "__cpp_lib_assume_aligned should have the value 201811L in c++23"
+# endif
+
+# ifndef __cpp_lib_atomic_flag_test
+#   error "__cpp_lib_atomic_flag_test should be defined in c++23"
+# endif
+# if __cpp_lib_atomic_flag_test != 201907L
+#   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23"
+# endif
+
+# ifndef __cpp_lib_atomic_float
+#   error "__cpp_lib_atomic_float should be defined in c++23"
+# endif
+# if __cpp_lib_atomic_float != 201711L
+#   error "__cpp_lib_atomic_float should have the value 201711L in c++23"
+# endif
+
+# ifndef __cpp_lib_atomic_is_always_lock_free
+#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++23"
+# endif
+# if __cpp_lib_atomic_is_always_lock_free != 201603L
+#   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_atomic_lock_free_type_aliases
+#   error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++23"
+# endif
+# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
+#   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23"
+# endif
+
+# ifdef __cpp_lib_atomic_min_max
+#   error "__cpp_lib_atomic_min_max should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_atomic_ref
+#   error "__cpp_lib_atomic_ref should be defined in c++23"
+# endif
+# if __cpp_lib_atomic_ref != 201806L
+#   error "__cpp_lib_atomic_ref should have the value 201806L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_atomic_shared_ptr
+#     error "__cpp_lib_atomic_shared_ptr should be defined in c++23"
+#   endif
+#   if __cpp_lib_atomic_shared_ptr != 201711L
+#     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_atomic_shared_ptr
+#     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_atomic_value_initialization
+#   error "__cpp_lib_atomic_value_initialization should be defined in c++23"
+# endif
+# if __cpp_lib_atomic_value_initialization != 201911L
+#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
+#   ifndef __cpp_lib_atomic_wait
+#     error "__cpp_lib_atomic_wait should be defined in c++23"
+#   endif
+#   if __cpp_lib_atomic_wait != 201907L
+#     error "__cpp_lib_atomic_wait should have the value 201907L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_atomic_wait
+#     error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_barrier
+#     error "__cpp_lib_barrier should be defined in c++23"
+#   endif
+#   if __cpp_lib_barrier != 201907L
+#     error "__cpp_lib_barrier should have the value 201907L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_barrier
+#     error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_bind_back
+#   error "__cpp_lib_bind_back should be defined in c++23"
+# endif
+# if __cpp_lib_bind_back != 202202L
+#   error "__cpp_lib_bind_back should have the value 202202L in c++23"
+# endif
+
+# ifndef __cpp_lib_bind_front
+#   error "__cpp_lib_bind_front should be defined in c++23"
+# endif
+# if __cpp_lib_bind_front != 201907L
+#   error "__cpp_lib_bind_front should have the value 201907L in c++23"
+# endif
+
+# ifndef __cpp_lib_bit_cast
+#   error "__cpp_lib_bit_cast should be defined in c++23"
+# endif
+# if __cpp_lib_bit_cast != 201806L
+#   error "__cpp_lib_bit_cast should have the value 201806L in c++23"
+# endif
+
+# ifndef __cpp_lib_bitops
+#   error "__cpp_lib_bitops should be defined in c++23"
+# endif
+# if __cpp_lib_bitops != 201907L
+#   error "__cpp_lib_bitops should have the value 201907L in c++23"
+# endif
+
+# ifdef __cpp_lib_bitset
+#   error "__cpp_lib_bitset should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_bool_constant
+#   error "__cpp_lib_bool_constant should be defined in c++23"
+# endif
+# if __cpp_lib_bool_constant != 201505L
+#   error "__cpp_lib_bool_constant should have the value 201505L in c++23"
+# endif
+
+# ifndef __cpp_lib_bounded_array_traits
+#   error "__cpp_lib_bounded_array_traits should be defined in c++23"
+# endif
+# if __cpp_lib_bounded_array_traits != 201902L
+#   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++23"
+# endif
+
+# ifndef __cpp_lib_boyer_moore_searcher
+#   error "__cpp_lib_boyer_moore_searcher should be defined in c++23"
+# endif
+# if __cpp_lib_boyer_moore_searcher != 201603L
+#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_byte
+#   error "__cpp_lib_byte should be defined in c++23"
+# endif
+# if __cpp_lib_byte != 201603L
+#   error "__cpp_lib_byte should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_byteswap
+#   error "__cpp_lib_byteswap should be defined in c++23"
+# endif
+# if __cpp_lib_byteswap != 202110L
+#   error "__cpp_lib_byteswap should have the value 202110L in c++23"
+# endif
+
+# if defined(__cpp_char8_t)
+#   ifndef __cpp_lib_char8_t
+#     error "__cpp_lib_char8_t should be defined in c++23"
+#   endif
+#   if __cpp_lib_char8_t != 201907L
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_char8_t
+#     error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_chrono
+#   error "__cpp_lib_chrono should be defined in c++23"
+# endif
+# if __cpp_lib_chrono != 201611L
+#   error "__cpp_lib_chrono should have the value 201611L in c++23"
+# endif
+
+# ifndef __cpp_lib_chrono_udls
+#   error "__cpp_lib_chrono_udls should be defined in c++23"
+# endif
+# if __cpp_lib_chrono_udls != 201304L
+#   error "__cpp_lib_chrono_udls should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_clamp
+#   error "__cpp_lib_clamp should be defined in c++23"
+# endif
+# if __cpp_lib_clamp != 201603L
+#   error "__cpp_lib_clamp should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_complex_udls
+#   error "__cpp_lib_complex_udls should be defined in c++23"
+# endif
+# if __cpp_lib_complex_udls != 201309L
+#   error "__cpp_lib_complex_udls should have the value 201309L in c++23"
+# endif
+
+# ifndef __cpp_lib_concepts
+#   error "__cpp_lib_concepts should be defined in c++23"
+# endif
+# if __cpp_lib_concepts != 202002L
+#   error "__cpp_lib_concepts should have the value 202002L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_algorithms
+#   error "__cpp_lib_constexpr_algorithms should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_algorithms != 201806L
+#   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_bitset
+#   error "__cpp_lib_constexpr_bitset should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_bitset != 202207L
+#   error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_charconv
+#   error "__cpp_lib_constexpr_charconv should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_charconv != 202207L
+#   error "__cpp_lib_constexpr_charconv should have the value 202207L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_constexpr_cmath
+#     error "__cpp_lib_constexpr_cmath should be defined in c++23"
+#   endif
+#   if __cpp_lib_constexpr_cmath != 202202L
+#     error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_constexpr_cmath
+#     error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_constexpr_complex
+#   error "__cpp_lib_constexpr_complex should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_complex != 201711L
+#   error "__cpp_lib_constexpr_complex should have the value 201711L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_dynamic_alloc
+#   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_dynamic_alloc != 201907L
+#   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_forward_list
+#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_functional
+#   error "__cpp_lib_constexpr_functional should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_functional != 201907L
+#   error "__cpp_lib_constexpr_functional should have the value 201907L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_iterator
+#   error "__cpp_lib_constexpr_iterator should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_iterator != 201811L
+#   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_memory
+#   error "__cpp_lib_constexpr_memory should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_memory != 202202L
+#   error "__cpp_lib_constexpr_memory should have the value 202202L in c++23"
+# endif
+
+# ifdef __cpp_lib_constexpr_new
+#   error "__cpp_lib_constexpr_new should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_numeric
+#   error "__cpp_lib_constexpr_numeric should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_numeric != 201911L
+#   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_string
+#   error "__cpp_lib_constexpr_string should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_string != 201907L
+#   error "__cpp_lib_constexpr_string should have the value 201907L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_string_view
+#   error "__cpp_lib_constexpr_string_view should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_string_view != 201811L
+#   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_tuple
+#   error "__cpp_lib_constexpr_tuple should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_tuple != 201811L
+#   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_typeinfo
+#   error "__cpp_lib_constexpr_typeinfo should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_typeinfo != 202106L
+#   error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_utility
+#   error "__cpp_lib_constexpr_utility should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_utility != 201811L
+#   error "__cpp_lib_constexpr_utility should have the value 201811L in c++23"
+# endif
+
+# ifndef __cpp_lib_constexpr_vector
+#   error "__cpp_lib_constexpr_vector should be defined in c++23"
+# endif
+# if __cpp_lib_constexpr_vector != 201907L
+#   error "__cpp_lib_constexpr_vector should have the value 201907L in c++23"
+# endif
+
+# ifdef __cpp_lib_constrained_equality
+#   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
+
+# ifndef __cpp_lib_coroutine
+#   error "__cpp_lib_coroutine should be defined in c++23"
+# endif
+# if __cpp_lib_coroutine != 201902L
+#   error "__cpp_lib_coroutine should have the value 201902L in c++23"
+# endif
+
+# ifdef __cpp_lib_debugging
+#   error "__cpp_lib_debugging should not be defined before c++26"
+# 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
+
+# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
+#   ifndef __cpp_lib_destroying_delete
+#     error "__cpp_lib_destroying_delete should be defined in c++23"
+#   endif
+#   if __cpp_lib_destroying_delete != 201806L
+#     error "__cpp_lib_destroying_delete should have the value 201806L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_destroying_delete
+#     error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_enable_shared_from_this
+#   error "__cpp_lib_enable_shared_from_this should be defined in c++23"
+# endif
+# if __cpp_lib_enable_shared_from_this != 201603L
+#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_endian
+#   error "__cpp_lib_endian should be defined in c++23"
+# endif
+# if __cpp_lib_endian != 201907L
+#   error "__cpp_lib_endian should have the value 201907L in c++23"
+# endif
+
+# ifndef __cpp_lib_erase_if
+#   error "__cpp_lib_erase_if should be defined in c++23"
+# endif
+# if __cpp_lib_erase_if != 202002L
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
+# endif
+
+# ifndef __cpp_lib_exchange_function
+#   error "__cpp_lib_exchange_function should be defined in c++23"
+# endif
+# if __cpp_lib_exchange_function != 201304L
+#   error "__cpp_lib_exchange_function should have the value 201304L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_execution
+#     error "__cpp_lib_execution should be defined in c++23"
+#   endif
+#   if __cpp_lib_execution != 201902L
+#     error "__cpp_lib_execution should have the value 201902L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_execution
+#     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_expected
+#   error "__cpp_lib_expected should be defined in c++23"
+# endif
+# if __cpp_lib_expected != 202211L
+#   error "__cpp_lib_expected should have the value 202211L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
+#   ifndef __cpp_lib_filesystem
+#     error "__cpp_lib_filesystem should be defined in c++23"
+#   endif
+#   if __cpp_lib_filesystem != 201703L
+#     error "__cpp_lib_filesystem should have the value 201703L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_filesystem
+#     error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_flat_map
+#   error "__cpp_lib_flat_map should be defined in c++23"
+# endif
+# if __cpp_lib_flat_map != 202207L
+#   error "__cpp_lib_flat_map should have the value 202207L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   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"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_flat_set
+#     error "__cpp_lib_flat_set should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
+#   ifndef __cpp_lib_format
+#     error "__cpp_lib_format should be defined in c++23"
+#   endif
+#   if __cpp_lib_format != 202110L
+#     error "__cpp_lib_format should have the value 202110L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_format
+#     error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_format_path
+#   error "__cpp_lib_format_path should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_format_ranges
+#   error "__cpp_lib_format_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_format_ranges != 202207L
+#   error "__cpp_lib_format_ranges should have the value 202207L in c++23"
+# endif
+
+# ifndef __cpp_lib_format_uchar
+#   error "__cpp_lib_format_uchar should be defined in c++23"
+# endif
+# if __cpp_lib_format_uchar != 202311L
+#   error "__cpp_lib_format_uchar should have the value 202311L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_formatters
+#     error "__cpp_lib_formatters should be defined in c++23"
+#   endif
+#   if __cpp_lib_formatters != 202302L
+#     error "__cpp_lib_formatters should have the value 202302L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_formatters
+#     error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_forward_like
+#   error "__cpp_lib_forward_like should be defined in c++23"
+# endif
+# if __cpp_lib_forward_like != 202207L
+#   error "__cpp_lib_forward_like should have the value 202207L in c++23"
+# endif
+
+# ifdef __cpp_lib_freestanding_algorithm
+#   error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_array
+#   error "__cpp_lib_freestanding_array should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_cstring
+#   error "__cpp_lib_freestanding_cstring should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_expected
+#   error "__cpp_lib_freestanding_expected should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_mdspan
+#   error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_optional
+#   error "__cpp_lib_freestanding_optional should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_string_view
+#   error "__cpp_lib_freestanding_string_view should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_freestanding_variant
+#   error "__cpp_lib_freestanding_variant should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_fstream_native_handle
+#   error "__cpp_lib_fstream_native_handle should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_function_ref
+#   error "__cpp_lib_function_ref should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_gcd_lcm
+#   error "__cpp_lib_gcd_lcm should be defined in c++23"
+# endif
+# if __cpp_lib_gcd_lcm != 201606L
+#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++23"
+# endif
+
+# ifdef __cpp_lib_generate_random
+#   error "__cpp_lib_generate_random should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_generic_associative_lookup
+#   error "__cpp_lib_generic_associative_lookup should be defined in c++23"
+# endif
+# if __cpp_lib_generic_associative_lookup != 201304L
+#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_generic_unordered_lookup
+#   error "__cpp_lib_generic_unordered_lookup should be defined in c++23"
+# endif
+# if __cpp_lib_generic_unordered_lookup != 201811L
+#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
+#   ifndef __cpp_lib_hardware_interference_size
+#     error "__cpp_lib_hardware_interference_size should be defined in c++23"
+#   endif
+#   if __cpp_lib_hardware_interference_size != 201703L
+#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_hardware_interference_size
+#     error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_has_unique_object_representations
+#   error "__cpp_lib_has_unique_object_representations should be defined in c++23"
+# endif
+# if __cpp_lib_has_unique_object_representations != 201606L
+#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23"
+# endif
+
+# ifdef __cpp_lib_hazard_pointer
+#   error "__cpp_lib_hazard_pointer should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_hypot
+#   error "__cpp_lib_hypot should be defined in c++23"
+# endif
+# if __cpp_lib_hypot != 201603L
+#   error "__cpp_lib_hypot should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_incomplete_container_elements
+#   error "__cpp_lib_incomplete_container_elements should be defined in c++23"
+# endif
+# if __cpp_lib_incomplete_container_elements != 201505L
+#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23"
+# endif
+
+# ifdef __cpp_lib_inplace_vector
+#   error "__cpp_lib_inplace_vector should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_int_pow2
+#   error "__cpp_lib_int_pow2 should be defined in c++23"
+# endif
+# if __cpp_lib_int_pow2 != 202002L
+#   error "__cpp_lib_int_pow2 should have the value 202002L in c++23"
+# endif
+
+# ifndef __cpp_lib_integer_comparison_functions
+#   error "__cpp_lib_integer_comparison_functions should be defined in c++23"
+# endif
+# if __cpp_lib_integer_comparison_functions != 202002L
+#   error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++23"
+# endif
+
+# ifndef __cpp_lib_integer_sequence
+#   error "__cpp_lib_integer_sequence should be defined in c++23"
+# endif
+# if __cpp_lib_integer_sequence != 201304L
+#   error "__cpp_lib_integer_sequence should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_integral_constant_callable
+#   error "__cpp_lib_integral_constant_callable should be defined in c++23"
+# endif
+# if __cpp_lib_integral_constant_callable != 201304L
+#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_interpolate
+#   error "__cpp_lib_interpolate should be defined in c++23"
+# endif
+# if __cpp_lib_interpolate != 201902L
+#   error "__cpp_lib_interpolate should have the value 201902L in c++23"
+# endif
+
+# ifndef __cpp_lib_invoke
+#   error "__cpp_lib_invoke should be defined in c++23"
+# endif
+# if __cpp_lib_invoke != 201411L
+#   error "__cpp_lib_invoke should have the value 201411L in c++23"
+# endif
+
+# ifndef __cpp_lib_invoke_r
+#   error "__cpp_lib_invoke_r should be defined in c++23"
+# endif
+# if __cpp_lib_invoke_r != 202106L
+#   error "__cpp_lib_invoke_r should have the value 202106L in c++23"
+# endif
+
+# ifndef __cpp_lib_ios_noreplace
+#   error "__cpp_lib_ios_noreplace should be defined in c++23"
+# endif
+# if __cpp_lib_ios_noreplace != 202207L
+#   error "__cpp_lib_ios_noreplace should have the value 202207L in c++23"
+# endif
+
+# ifndef __cpp_lib_is_aggregate
+#   error "__cpp_lib_is_aggregate should be defined in c++23"
+# endif
+# if __cpp_lib_is_aggregate != 201703L
+#   error "__cpp_lib_is_aggregate should have the value 201703L in c++23"
+# endif
+
+# ifndef __cpp_lib_is_constant_evaluated
+#   error "__cpp_lib_is_constant_evaluated should be defined in c++23"
+# endif
+# if __cpp_lib_is_constant_evaluated != 201811L
+#   error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++23"
+# endif
+
+# ifndef __cpp_lib_is_final
+#   error "__cpp_lib_is_final should be defined in c++23"
+# endif
+# if __cpp_lib_is_final != 201402L
+#   error "__cpp_lib_is_final should have the value 201402L in c++23"
+# endif
+
+# if __has_builtin(__builtin_is_implicit_lifetime)
+#   ifndef __cpp_lib_is_implicit_lifetime
+#     error "__cpp_lib_is_implicit_lifetime should be defined in c++23"
+#   endif
+#   if __cpp_lib_is_implicit_lifetime != 202302L
+#     error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_is_implicit_lifetime
+#     error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_is_invocable
+#   error "__cpp_lib_is_invocable should be defined in c++23"
+# endif
+# if __cpp_lib_is_invocable != 201703L
+#   error "__cpp_lib_is_invocable should have the value 201703L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_is_layout_compatible
+#     error "__cpp_lib_is_layout_compatible should be defined in c++23"
+#   endif
+#   if __cpp_lib_is_layout_compatible != 201907L
+#     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_is_layout_compatible
+#     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_is_nothrow_convertible
+#   error "__cpp_lib_is_nothrow_convertible should be defined in c++23"
+# endif
+# if __cpp_lib_is_nothrow_convertible != 201806L
+#   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++23"
+# endif
+
+# ifndef __cpp_lib_is_null_pointer
+#   error "__cpp_lib_is_null_pointer should be defined in c++23"
+# endif
+# if __cpp_lib_is_null_pointer != 201309L
+#   error "__cpp_lib_is_null_pointer should have the value 201309L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_is_pointer_interconvertible
+#     error "__cpp_lib_is_pointer_interconvertible should be defined in c++23"
+#   endif
+#   if __cpp_lib_is_pointer_interconvertible != 201907L
+#     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_is_pointer_interconvertible
+#     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_is_scoped_enum
+#   error "__cpp_lib_is_scoped_enum should be defined in c++23"
+# endif
+# if __cpp_lib_is_scoped_enum != 202011L
+#   error "__cpp_lib_is_scoped_enum should have the value 202011L in c++23"
+# endif
+
+# ifndef __cpp_lib_is_swappable
+#   error "__cpp_lib_is_swappable should be defined in c++23"
+# endif
+# if __cpp_lib_is_swappable != 201603L
+#   error "__cpp_lib_is_swappable should have the value 201603L in c++23"
+# endif
+
+# ifdef __cpp_lib_is_virtual_base_of
+#   error "__cpp_lib_is_virtual_base_of should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_is_within_lifetime
+#   error "__cpp_lib_is_within_lifetime should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_jthread
+#     error "__cpp_lib_jthread should be defined in c++23"
+#   endif
+#   if __cpp_lib_jthread != 201911L
+#     error "__cpp_lib_jthread should have the value 201911L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_jthread
+#     error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_latch
+#     error "__cpp_lib_latch should be defined in c++23"
+#   endif
+#   if __cpp_lib_latch != 201907L
+#     error "__cpp_lib_latch should have the value 201907L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_latch
+#     error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_launder
+#   error "__cpp_lib_launder should be defined in c++23"
+# endif
+# if __cpp_lib_launder != 201606L
+#   error "__cpp_lib_launder should have the value 201606L in c++23"
+# endif
+
+# ifdef __cpp_lib_linalg
+#   error "__cpp_lib_linalg should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_list_remove_return_type
+#   error "__cpp_lib_list_remove_return_type should be defined in c++23"
+# endif
+# if __cpp_lib_list_remove_return_type != 201806L
+#   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23"
+# endif
+
+# ifndef __cpp_lib_logical_traits
+#   error "__cpp_lib_logical_traits should be defined in c++23"
+# endif
+# if __cpp_lib_logical_traits != 201510L
+#   error "__cpp_lib_logical_traits should have the value 201510L in c++23"
+# endif
+
+# ifndef __cpp_lib_make_from_tuple
+#   error "__cpp_lib_make_from_tuple should be defined in c++23"
+# endif
+# if __cpp_lib_make_from_tuple != 201606L
+#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++23"
+# endif
+
+# ifndef __cpp_lib_make_reverse_iterator
+#   error "__cpp_lib_make_reverse_iterator should be defined in c++23"
+# endif
+# if __cpp_lib_make_reverse_iterator != 201402L
+#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23"
+# endif
+
+# ifndef __cpp_lib_make_unique
+#   error "__cpp_lib_make_unique should be defined in c++23"
+# endif
+# if __cpp_lib_make_unique != 201304L
+#   error "__cpp_lib_make_unique should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_map_try_emplace
+#   error "__cpp_lib_map_try_emplace should be defined in c++23"
+# endif
+# if __cpp_lib_map_try_emplace != 201411L
+#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++23"
+# endif
+
+# ifndef __cpp_lib_math_constants
+#   error "__cpp_lib_math_constants should be defined in c++23"
+# endif
+# if __cpp_lib_math_constants != 201907L
+#   error "__cpp_lib_math_constants should have the value 201907L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_math_special_functions
+#     error "__cpp_lib_math_special_functions should be defined in c++23"
+#   endif
+#   if __cpp_lib_math_special_functions != 201603L
+#     error "__cpp_lib_math_special_functions should have the value 201603L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_math_special_functions
+#     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_mdspan
+#   error "__cpp_lib_mdspan should be defined in c++23"
+# endif
+# if __cpp_lib_mdspan != 202207L
+#   error "__cpp_lib_mdspan should have the value 202207L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#   ifndef __cpp_lib_memory_resource
+#     error "__cpp_lib_memory_resource should be defined in c++23"
+#   endif
+#   if __cpp_lib_memory_resource != 201603L
+#     error "__cpp_lib_memory_resource should have the value 201603L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_memory_resource
+#     error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_modules
+#   error "__cpp_lib_modules should be defined in c++23"
+# endif
+# if __cpp_lib_modules != 202207L
+#   error "__cpp_lib_modules should have the value 202207L in c++23"
+# endif
+
+# ifndef __cpp_lib_move_iterator_concept
+#   error "__cpp_lib_move_iterator_concept should be defined in c++23"
+# endif
+# if __cpp_lib_move_iterator_concept != 202207L
+#   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_move_only_function
+#     error "__cpp_lib_move_only_function should be defined in c++23"
+#   endif
+#   if __cpp_lib_move_only_function != 202110L
+#     error "__cpp_lib_move_only_function should have the value 202110L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_move_only_function
+#     error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_node_extract
+#   error "__cpp_lib_node_extract should be defined in c++23"
+# endif
+# if __cpp_lib_node_extract != 201606L
+#   error "__cpp_lib_node_extract should have the value 201606L in c++23"
+# endif
+
+# ifndef __cpp_lib_nonmember_container_access
+#   error "__cpp_lib_nonmember_container_access should be defined in c++23"
+# endif
+# if __cpp_lib_nonmember_container_access != 201411L
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
+# endif
+
+# ifndef __cpp_lib_not_fn
+#   error "__cpp_lib_not_fn should be defined in c++23"
+# endif
+# if __cpp_lib_not_fn != 201603L
+#   error "__cpp_lib_not_fn should have the value 201603L in c++23"
+# endif
+
+# ifndef __cpp_lib_null_iterators
+#   error "__cpp_lib_null_iterators should be defined in c++23"
+# endif
+# if __cpp_lib_null_iterators != 201304L
+#   error "__cpp_lib_null_iterators should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_optional
+#   error "__cpp_lib_optional should be defined in c++23"
+# endif
+# if __cpp_lib_optional != 202110L
+#   error "__cpp_lib_optional should have the value 202110L in c++23"
+# endif
+
+# ifdef __cpp_lib_optional_range_support
+#   error "__cpp_lib_optional_range_support should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_out_ptr
+#   error "__cpp_lib_out_ptr should be defined in c++23"
+# endif
+# if __cpp_lib_out_ptr != 202106L
+#   error "__cpp_lib_out_ptr should have the value 202106L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_parallel_algorithm
+#     error "__cpp_lib_parallel_algorithm should be defined in c++23"
+#   endif
+#   if __cpp_lib_parallel_algorithm != 201603L
+#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_parallel_algorithm
+#     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_philox_engine
+#   error "__cpp_lib_philox_engine should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#   ifndef __cpp_lib_polymorphic_allocator
+#     error "__cpp_lib_polymorphic_allocator should be defined in c++23"
+#   endif
+#   if __cpp_lib_polymorphic_allocator != 201902L
+#     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_polymorphic_allocator
+#     error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
+#   ifndef __cpp_lib_print
+#     error "__cpp_lib_print should be defined in c++23"
+#   endif
+#   if __cpp_lib_print != 202207L
+#     error "__cpp_lib_print should have the value 202207L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_print
+#     error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
+#   ifndef __cpp_lib_quoted_string_io
+#     error "__cpp_lib_quoted_string_io should be defined in c++23"
+#   endif
+#   if __cpp_lib_quoted_string_io != 201304L
+#     error "__cpp_lib_quoted_string_io should have the value 201304L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_quoted_string_io
+#     error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges
+#   error "__cpp_lib_ranges should be defined in c++23"
+# endif
+# if __cpp_lib_ranges != 202406L
+#   error "__cpp_lib_ranges should have the value 202406L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_as_const
+#     error "__cpp_lib_ranges_as_const should be defined in c++23"
+#   endif
+#   if __cpp_lib_ranges_as_const != 202207L
+#     error "__cpp_lib_ranges_as_const should have the value 202207L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_as_const
+#     error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_as_rvalue
+#   error "__cpp_lib_ranges_as_rvalue should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_as_rvalue != 202207L
+#   error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_chunk
+#     error "__cpp_lib_ranges_chunk should be defined in c++23"
+#   endif
+#   if __cpp_lib_ranges_chunk != 202202L
+#     error "__cpp_lib_ranges_chunk should have the value 202202L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_chunk
+#     error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_chunk_by
+#   error "__cpp_lib_ranges_chunk_by should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_chunk_by != 202202L
+#   error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23"
+# endif
+
+# ifdef __cpp_lib_ranges_concat
+#   error "__cpp_lib_ranges_concat should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_ranges_contains
+#   error "__cpp_lib_ranges_contains should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_contains != 202207L
+#   error "__cpp_lib_ranges_contains should have the value 202207L in c++23"
+# endif
+
+# ifndef __cpp_lib_ranges_find_last
+#   error "__cpp_lib_ranges_find_last should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_find_last != 202207L
+#   error "__cpp_lib_ranges_find_last should have the value 202207L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_iota
+#     error "__cpp_lib_ranges_iota should be defined in c++23"
+#   endif
+#   if __cpp_lib_ranges_iota != 202202L
+#     error "__cpp_lib_ranges_iota should have the value 202202L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_iota
+#     error "__cpp_lib_ranges_iota should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_join_with
+#     error "__cpp_lib_ranges_join_with should be defined in c++23"
+#   endif
+#   if __cpp_lib_ranges_join_with != 202202L
+#     error "__cpp_lib_ranges_join_with should have the value 202202L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_join_with
+#     error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_repeat
+#   error "__cpp_lib_ranges_repeat should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_repeat != 202207L
+#   error "__cpp_lib_ranges_repeat should have the value 202207L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_slide
+#     error "__cpp_lib_ranges_slide should be defined in c++23"
+#   endif
+#   if __cpp_lib_ranges_slide != 202202L
+#     error "__cpp_lib_ranges_slide should have the value 202202L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_slide
+#     error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_starts_ends_with
+#   error "__cpp_lib_ranges_starts_ends_with should be defined in c++23"
+# endif
+# if __cpp_lib_ranges_starts_ends_with != 202106L
+#   error "__cpp_lib_ranges_starts_ends_with 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"
+# 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_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 // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_zip
+#     error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_ratio
+#   error "__cpp_lib_ratio should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_raw_memory_algorithms
+#   error "__cpp_lib_raw_memory_algorithms should be defined in c++23"
+# endif
+# if __cpp_lib_raw_memory_algorithms != 201606L
+#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23"
+# endif
+
+# ifdef __cpp_lib_rcu
+#   error "__cpp_lib_rcu should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_reference_from_temporary
+#     error "__cpp_lib_reference_from_temporary should be defined in c++23"
+#   endif
+#   if __cpp_lib_reference_from_temporary != 202202L
+#     error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_reference_from_temporary
+#     error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_reference_wrapper
+#   error "__cpp_lib_reference_wrapper should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_remove_cvref
+#   error "__cpp_lib_remove_cvref should be defined in c++23"
+# endif
+# if __cpp_lib_remove_cvref != 201711L
+#   error "__cpp_lib_remove_cvref should have the value 201711L in c++23"
+# endif
+
+# ifndef __cpp_lib_result_of_sfinae
+#   error "__cpp_lib_result_of_sfinae should be defined in c++23"
+# endif
+# if __cpp_lib_result_of_sfinae != 201210L
+#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23"
+# endif
+
+# ifndef __cpp_lib_robust_nonmodifying_seq_ops
+#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++23"
+# endif
+# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
+#   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_sample
+#   error "__cpp_lib_sample should be defined in c++23"
+# endif
+# if __cpp_lib_sample != 201603L
+#   error "__cpp_lib_sample should have the value 201603L in c++23"
+# endif
+
+# ifdef __cpp_lib_saturation_arithmetic
+#   error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_scoped_lock
+#     error "__cpp_lib_scoped_lock should be defined in c++23"
+#   endif
+#   if __cpp_lib_scoped_lock != 201703L
+#     error "__cpp_lib_scoped_lock should have the value 201703L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_scoped_lock
+#     error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_semaphore
+#     error "__cpp_lib_semaphore should be defined in c++23"
+#   endif
+#   if __cpp_lib_semaphore != 201907L
+#     error "__cpp_lib_semaphore should have the value 201907L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_semaphore
+#     error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_senders
+#   error "__cpp_lib_senders should not be defined before c++26"
+# endif
+
+# if _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_shared_mutex
+#     error "__cpp_lib_shared_mutex should be defined in c++23"
+#   endif
+#   if __cpp_lib_shared_mutex != 201505L
+#     error "__cpp_lib_shared_mutex should have the value 201505L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_shared_mutex
+#     error "__cpp_lib_shared_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_shared_ptr_arrays
+#   error "__cpp_lib_shared_ptr_arrays should be defined in c++23"
+# endif
+# if __cpp_lib_shared_ptr_arrays != 201707L
+#   error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++23"
+# endif
+
+# ifndef __cpp_lib_shared_ptr_weak_type
+#   error "__cpp_lib_shared_ptr_weak_type should be defined in c++23"
+# endif
+# if __cpp_lib_shared_ptr_weak_type != 201606L
+#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23"
+# endif
+
+# if _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_shared_timed_mutex
+#     error "__cpp_lib_shared_timed_mutex should be defined in c++23"
+#   endif
+#   if __cpp_lib_shared_timed_mutex != 201402L
+#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_shared_timed_mutex
+#     error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_shift
+#   error "__cpp_lib_shift should be defined in c++23"
+# endif
+# if __cpp_lib_shift != 201806L
+#   error "__cpp_lib_shift should have the value 201806L in c++23"
+# endif
+
+# ifndef __cpp_lib_smart_ptr_for_overwrite
+#   error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++23"
+# endif
+# if __cpp_lib_smart_ptr_for_overwrite != 202002L
+#   error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23"
+# endif
+
+# ifdef __cpp_lib_smart_ptr_owner_equality
+#   error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_source_location
+#   error "__cpp_lib_source_location should be defined in c++23"
+# endif
+# if __cpp_lib_source_location != 201907L
+#   error "__cpp_lib_source_location should have the value 201907L in c++23"
+# endif
+
+# ifndef __cpp_lib_span
+#   error "__cpp_lib_span should be defined in c++23"
+# endif
+# if __cpp_lib_span != 202002L
+#   error "__cpp_lib_span should have the value 202002L in c++23"
+# endif
+
+# ifdef __cpp_lib_span_at
+#   error "__cpp_lib_span_at should not be defined before c++26"
+# endif
+
+# ifdef __cpp_lib_span_initializer_list
+#   error "__cpp_lib_span_initializer_list should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_spanstream
+#     error "__cpp_lib_spanstream should be defined in c++23"
+#   endif
+#   if __cpp_lib_spanstream != 202106L
+#     error "__cpp_lib_spanstream should have the value 202106L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_spanstream
+#     error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ssize
+#   error "__cpp_lib_ssize should be defined in c++23"
+# endif
+# if __cpp_lib_ssize != 201902L
+#   error "__cpp_lib_ssize should have the value 201902L in c++23"
+# endif
+
+# ifdef __cpp_lib_sstream_from_string_view
+#   error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_stacktrace
+#     error "__cpp_lib_stacktrace should be defined in c++23"
+#   endif
+#   if __cpp_lib_stacktrace != 202011L
+#     error "__cpp_lib_stacktrace should have the value 202011L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_stacktrace
+#     error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_starts_ends_with
+#   error "__cpp_lib_starts_ends_with should be defined in c++23"
+# endif
+# if __cpp_lib_starts_ends_with != 201711L
+#   error "__cpp_lib_starts_ends_with should have the value 201711L in c++23"
+# endif
+
+# ifndef __cpp_lib_stdatomic_h
+#   error "__cpp_lib_stdatomic_h should be defined in c++23"
+# endif
+# if __cpp_lib_stdatomic_h != 202011L
+#   error "__cpp_lib_stdatomic_h should have the value 202011L in c++23"
+# endif
+
+# ifndef __cpp_lib_string_contains
+#   error "__cpp_lib_string_contains should be defined in c++23"
+# endif
+# if __cpp_lib_string_contains != 202011L
+#   error "__cpp_lib_string_contains should have the value 202011L in c++23"
+# endif
+
+# ifndef __cpp_lib_string_resize_and_overwrite
+#   error "__cpp_lib_string_resize_and_overwrite should be defined in c++23"
+# endif
+# if __cpp_lib_string_resize_and_overwrite != 202110L
+#   error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++23"
+# endif
+
+# ifndef __cpp_lib_string_udls
+#   error "__cpp_lib_string_udls should be defined in c++23"
+# endif
+# if __cpp_lib_string_udls != 201304L
+#   error "__cpp_lib_string_udls should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_string_view
+#   error "__cpp_lib_string_view should be defined in c++23"
+# endif
+# if __cpp_lib_string_view != 201803L
+#   error "__cpp_lib_string_view should have the value 201803L in c++23"
+# endif
+
+# ifdef __cpp_lib_submdspan
+#   error "__cpp_lib_submdspan should not be defined before c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
+#   ifndef __cpp_lib_syncbuf
+#     error "__cpp_lib_syncbuf should be defined in c++23"
+#   endif
+#   if __cpp_lib_syncbuf != 201803L
+#     error "__cpp_lib_syncbuf should have the value 201803L in c++23"
+#   endif
+# else
+#   ifdef __cpp_lib_syncbuf
+#     error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_text_encoding
+#   error "__cpp_lib_text_encoding should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_three_way_comparison
+#   error "__cpp_lib_three_way_comparison should be defined in c++23"
+# endif
+# if __cpp_lib_three_way_comparison != 201907L
+#   error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
+# endif
+
+# ifndef __cpp_lib_to_address
+#   error "__cpp_lib_to_address should be defined in c++23"
+# endif
+# if __cpp_lib_to_address != 201711L
+#   error "__cpp_lib_to_address should have the value 201711L in c++23"
+# endif
+
+# ifndef __cpp_lib_to_array
+#   error "__cpp_lib_to_array should be defined in c++23"
+# endif
+# if __cpp_lib_to_array != 201907L
+#   error "__cpp_lib_to_array should have the value 201907L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_to_chars
+#     error "__cpp_lib_to_chars should be defined in c++23"
+#   endif
+#   if __cpp_lib_to_chars != 201611L
+#     error "__cpp_lib_to_chars should have the value 201611L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_to_chars
+#     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifdef __cpp_lib_to_string
+#   error "__cpp_lib_to_string should not be defined before c++26"
+# endif
+
+# ifndef __cpp_lib_to_underlying
+#   error "__cpp_lib_to_underlying should be defined in c++23"
+# endif
+# if __cpp_lib_to_underlying != 202102L
+#   error "__cpp_lib_to_underlying should have the value 202102L in c++23"
+# endif
+
+# ifndef __cpp_lib_transformation_trait_aliases
+#   error "__cpp_lib_transformation_trait_aliases should be defined in c++23"
+# endif
+# if __cpp_lib_transformation_trait_aliases != 201304L
+#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_transparent_operators
+#   error "__cpp_lib_transparent_operators should be defined in c++23"
+# endif
+# if __cpp_lib_transparent_operators != 201510L
+#   error "__cpp_lib_transparent_operators should have the value 201510L in c++23"
+# endif
+
+# ifndef __cpp_lib_tuple_element_t
+#   error "__cpp_lib_tuple_element_t should be defined in c++23"
+# endif
+# if __cpp_lib_tuple_element_t != 201402L
+#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++23"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_tuple_like
+#     error "__cpp_lib_tuple_like should be defined in c++23"
+#   endif
+#   if __cpp_lib_tuple_like != 202207L
+#     error "__cpp_lib_tuple_like should have the value 202207L in c++23"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_tuple_like
+#     error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_tuples_by_type
+#   error "__cpp_lib_tuples_by_type should be defined in c++23"
+# endif
+# if __cpp_lib_tuples_by_type != 201304L
+#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++23"
+# endif
+
+# ifndef __cpp_lib_type_identity
+#   error "__cpp_lib_type_identity should be defined in c++23"
+# endif
+# if __cpp_lib_type_identity != 201806L
+#   error "__cpp_lib_type_identity should have the value 201806L in c++23"
+# endif
+
+# ifndef __cpp_lib_type_trait_variable_templates
+#   error "__cpp_lib_type_trait_variable_templates should be defined in c++23"
+# endif
+# if __cpp_lib_type_trait_variable_templates != 201510L
+#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++23"
+# endif
+
+# ifndef __cpp_lib_uncaught_exceptions
+#   error "__cpp_lib_uncaught_exceptions should be defined in c++23"
+# endif
+# if __cpp_lib_uncaught_exceptions != 201411L
+#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23"
+# endif
+
+# ifndef __cpp_lib_unordered_map_try_emplace
+#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++23"
+# endif
+# if __cpp_lib_unordered_map_try_emplace != 201411L
+#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23"
+# endif
+
+# ifndef __cpp_lib_unreachable
+#   error "__cpp_lib_unreachable should be defined in c++23"
+# endif
+# if __cpp_lib_unreachable != 202202L
+#   error "__cpp_lib_unreachable should have the value 202202L in c++23"
+# endif
+
+# ifndef __cpp_lib_unwrap_ref
+#   error "__cpp_lib_unwrap_ref should be defined in c++23"
+# endif
+# if __cpp_lib_unwrap_ref != 201811L
+#   error "__cpp_lib_unwrap_ref should have the value 201811L in c++23"
+# endif
+
+# ifndef __cpp_lib_variant
+#   error "__cpp_lib_variant should be defined in c++23"
+# endif
+# if __cpp_lib_variant != 202106L
+#   error "__cpp_lib_variant should have the value 202106L in c++23"
+# endif
+
+# ifndef __cpp_lib_void_t
+#   error "__cpp_lib_void_t should be defined in c++23"
+# endif
+# if __cpp_lib_void_t != 201411L
+#   error "__cpp_lib_void_t should have the value 201411L in c++23"
+# endif
+
+#elif TEST_STD_VER > 23
+
+# ifndef __cpp_lib_adaptor_iterator_pair_constructor
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26"
+# endif
+# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26"
+# endif
+
+# ifndef __cpp_lib_addressof_constexpr
+#   error "__cpp_lib_addressof_constexpr should be defined in c++26"
+# endif
+# if __cpp_lib_addressof_constexpr != 201603L
+#   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_allocate_at_least
+#   error "__cpp_lib_allocate_at_least should be defined in c++26"
+# endif
+# if __cpp_lib_allocate_at_least != 202302L
+#   error "__cpp_lib_allocate_at_least should have the value 202302L in c++26"
+# endif
+
+# ifndef __cpp_lib_allocator_traits_is_always_equal
+#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
+# endif
+# if __cpp_lib_allocator_traits_is_always_equal != 201411L
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
+# endif
+
+# ifndef __cpp_lib_any
+#   error "__cpp_lib_any should be defined in c++26"
+# endif
+# if __cpp_lib_any != 201606L
+#   error "__cpp_lib_any should have the value 201606L in c++26"
+# endif
+
+# ifndef __cpp_lib_apply
+#   error "__cpp_lib_apply should be defined in c++26"
+# endif
+# if __cpp_lib_apply != 201603L
+#   error "__cpp_lib_apply should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_array_constexpr
+#   error "__cpp_lib_array_constexpr should be defined in c++26"
+# endif
+# if __cpp_lib_array_constexpr != 201811L
+#   error "__cpp_lib_array_constexpr should have the value 201811L in c++26"
+# endif
+
+# ifndef __cpp_lib_as_const
+#   error "__cpp_lib_as_const should be defined in c++26"
+# endif
+# if __cpp_lib_as_const != 201510L
+#   error "__cpp_lib_as_const should have the value 201510L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_associative_heterogeneous_erasure
+#     error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26"
+#   endif
+#   if __cpp_lib_associative_heterogeneous_erasure != 202110L
+#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_associative_heterogeneous_erasure
+#     error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_associative_heterogeneous_insertion
+#     error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26"
+#   endif
+#   if __cpp_lib_associative_heterogeneous_insertion != 202306L
+#     error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_associative_heterogeneous_insertion
+#     error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_assume_aligned
+#   error "__cpp_lib_assume_aligned should be defined in c++26"
+# endif
+# if __cpp_lib_assume_aligned != 201811L
+#   error "__cpp_lib_assume_aligned should have the value 201811L in c++26"
+# endif
+
+# ifndef __cpp_lib_atomic_flag_test
+#   error "__cpp_lib_atomic_flag_test should be defined in c++26"
+# endif
+# if __cpp_lib_atomic_flag_test != 201907L
+#   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26"
+# endif
+
+# ifndef __cpp_lib_atomic_float
+#   error "__cpp_lib_atomic_float should be defined in c++26"
+# endif
+# if __cpp_lib_atomic_float != 201711L
+#   error "__cpp_lib_atomic_float should have the value 201711L in c++26"
+# endif
+
+# ifndef __cpp_lib_atomic_is_always_lock_free
+#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++26"
+# endif
+# if __cpp_lib_atomic_is_always_lock_free != 201603L
+#   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_atomic_lock_free_type_aliases
+#   error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++26"
+# endif
+# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
+#   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_atomic_min_max
+#     error "__cpp_lib_atomic_min_max should be defined in c++26"
+#   endif
+#   if __cpp_lib_atomic_min_max != 202403L
+#     error "__cpp_lib_atomic_min_max should have the value 202403L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_atomic_min_max
+#     error "__cpp_lib_atomic_min_max should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_atomic_ref
+#   error "__cpp_lib_atomic_ref should be defined in c++26"
+# endif
+# if __cpp_lib_atomic_ref != 201806L
+#   error "__cpp_lib_atomic_ref should have the value 201806L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_atomic_shared_ptr
+#     error "__cpp_lib_atomic_shared_ptr should be defined in c++26"
+#   endif
+#   if __cpp_lib_atomic_shared_ptr != 201711L
+#     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_atomic_shared_ptr
+#     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_atomic_value_initialization
+#   error "__cpp_lib_atomic_value_initialization should be defined in c++26"
+# endif
+# if __cpp_lib_atomic_value_initialization != 201911L
+#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
+#   ifndef __cpp_lib_atomic_wait
+#     error "__cpp_lib_atomic_wait should be defined in c++26"
+#   endif
+#   if __cpp_lib_atomic_wait != 201907L
+#     error "__cpp_lib_atomic_wait should have the value 201907L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_atomic_wait
+#     error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_barrier
+#     error "__cpp_lib_barrier should be defined in c++26"
+#   endif
+#   if __cpp_lib_barrier != 201907L
+#     error "__cpp_lib_barrier should have the value 201907L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_barrier
+#     error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_bind_back
+#   error "__cpp_lib_bind_back should be defined in c++26"
+# endif
+# if __cpp_lib_bind_back != 202202L
+#   error "__cpp_lib_bind_back should have the value 202202L in c++26"
+# endif
+
+# ifndef __cpp_lib_bind_front
+#   error "__cpp_lib_bind_front should be defined in c++26"
+# endif
+# if __cpp_lib_bind_front != 202306L
+#   error "__cpp_lib_bind_front should have the value 202306L in c++26"
+# endif
+
+# ifndef __cpp_lib_bit_cast
+#   error "__cpp_lib_bit_cast should be defined in c++26"
+# endif
+# if __cpp_lib_bit_cast != 201806L
+#   error "__cpp_lib_bit_cast should have the value 201806L in c++26"
+# endif
+
+# ifndef __cpp_lib_bitops
+#   error "__cpp_lib_bitops should be defined in c++26"
+# endif
+# if __cpp_lib_bitops != 201907L
+#   error "__cpp_lib_bitops should have the value 201907L in c++26"
+# endif
+
+# ifndef __cpp_lib_bitset
+#   error "__cpp_lib_bitset should be defined in c++26"
+# endif
+# if __cpp_lib_bitset != 202306L
+#   error "__cpp_lib_bitset should have the value 202306L in c++26"
+# endif
+
+# ifndef __cpp_lib_bool_constant
+#   error "__cpp_lib_bool_constant should be defined in c++26"
+# endif
+# if __cpp_lib_bool_constant != 201505L
+#   error "__cpp_lib_bool_constant should have the value 201505L in c++26"
+# endif
+
+# ifndef __cpp_lib_bounded_array_traits
+#   error "__cpp_lib_bounded_array_traits should be defined in c++26"
+# endif
+# if __cpp_lib_bounded_array_traits != 201902L
+#   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++26"
+# endif
+
+# ifndef __cpp_lib_boyer_moore_searcher
+#   error "__cpp_lib_boyer_moore_searcher should be defined in c++26"
+# endif
+# if __cpp_lib_boyer_moore_searcher != 201603L
+#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_byte
+#   error "__cpp_lib_byte should be defined in c++26"
+# endif
+# if __cpp_lib_byte != 201603L
+#   error "__cpp_lib_byte should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_byteswap
+#   error "__cpp_lib_byteswap should be defined in c++26"
+# endif
+# if __cpp_lib_byteswap != 202110L
+#   error "__cpp_lib_byteswap should have the value 202110L in c++26"
+# endif
+
+# if defined(__cpp_char8_t)
+#   ifndef __cpp_lib_char8_t
+#     error "__cpp_lib_char8_t should be defined in c++26"
+#   endif
+#   if __cpp_lib_char8_t != 201907L
+#     error "__cpp_lib_char8_t should have the value 201907L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_char8_t
+#     error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_chrono
+#   error "__cpp_lib_chrono should be defined in c++26"
+# endif
+# if __cpp_lib_chrono != 201611L
+#   error "__cpp_lib_chrono should have the value 201611L in c++26"
+# endif
+
+# ifndef __cpp_lib_chrono_udls
+#   error "__cpp_lib_chrono_udls should be defined in c++26"
+# endif
+# if __cpp_lib_chrono_udls != 201304L
+#   error "__cpp_lib_chrono_udls should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_clamp
+#   error "__cpp_lib_clamp should be defined in c++26"
+# endif
+# if __cpp_lib_clamp != 201603L
+#   error "__cpp_lib_clamp should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_complex_udls
+#   error "__cpp_lib_complex_udls should be defined in c++26"
+# endif
+# if __cpp_lib_complex_udls != 201309L
+#   error "__cpp_lib_complex_udls should have the value 201309L in c++26"
+# endif
+
+# ifndef __cpp_lib_concepts
+#   error "__cpp_lib_concepts should be defined in c++26"
+# endif
+# if __cpp_lib_concepts != 202002L
+#   error "__cpp_lib_concepts should have the value 202002L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_algorithms
+#   error "__cpp_lib_constexpr_algorithms should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_algorithms != 201806L
+#   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_bitset
+#   error "__cpp_lib_constexpr_bitset should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_bitset != 202207L
+#   error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_charconv
+#   error "__cpp_lib_constexpr_charconv should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_charconv != 202207L
+#   error "__cpp_lib_constexpr_charconv should have the value 202207L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_constexpr_cmath
+#     error "__cpp_lib_constexpr_cmath should be defined in c++26"
+#   endif
+#   if __cpp_lib_constexpr_cmath != 202202L
+#     error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_constexpr_cmath
+#     error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_constexpr_complex
+#   error "__cpp_lib_constexpr_complex should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_complex != 201711L
+#   error "__cpp_lib_constexpr_complex should have the value 201711L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_dynamic_alloc
+#   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_dynamic_alloc != 201907L
+#   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_forward_list
+#   error "__cpp_lib_constexpr_forward_list should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_forward_list != 202502L
+#   error "__cpp_lib_constexpr_forward_list should have the value 202502L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_functional
+#   error "__cpp_lib_constexpr_functional should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_functional != 201907L
+#   error "__cpp_lib_constexpr_functional should have the value 201907L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_iterator
+#   error "__cpp_lib_constexpr_iterator should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_iterator != 201811L
+#   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_memory
+#   error "__cpp_lib_constexpr_memory should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_memory != 202202L
+#   error "__cpp_lib_constexpr_memory should have the value 202202L in c++26"
+# endif
+
+# if !defined(_LIBCPP_ABI_VCRUNTIME)
+#   ifndef __cpp_lib_constexpr_new
+#     error "__cpp_lib_constexpr_new should be defined in c++26"
+#   endif
+#   if __cpp_lib_constexpr_new != 202406L
+#     error "__cpp_lib_constexpr_new should have the value 202406L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_constexpr_new
+#     error "__cpp_lib_constexpr_new should not be defined when the requirement '!defined(_LIBCPP_ABI_VCRUNTIME)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_constexpr_numeric
+#   error "__cpp_lib_constexpr_numeric should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_numeric != 201911L
+#   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_string
+#   error "__cpp_lib_constexpr_string should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_string != 201907L
+#   error "__cpp_lib_constexpr_string should have the value 201907L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_string_view
+#   error "__cpp_lib_constexpr_string_view should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_string_view != 201811L
+#   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_tuple
+#   error "__cpp_lib_constexpr_tuple should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_tuple != 201811L
+#   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_typeinfo
+#   error "__cpp_lib_constexpr_typeinfo should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_typeinfo != 202106L
+#   error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_utility
+#   error "__cpp_lib_constexpr_utility should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_utility != 201811L
+#   error "__cpp_lib_constexpr_utility should have the value 201811L in c++26"
+# endif
+
+# ifndef __cpp_lib_constexpr_vector
+#   error "__cpp_lib_constexpr_vector should be defined in c++26"
+# endif
+# if __cpp_lib_constexpr_vector != 201907L
+#   error "__cpp_lib_constexpr_vector should have the value 201907L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_constrained_equality
+#     error "__cpp_lib_constrained_equality should be defined in c++26"
+#   endif
+#   if __cpp_lib_constrained_equality != 202403L
+#     error "__cpp_lib_constrained_equality should have the value 202403L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_constrained_equality
+#     error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!"
+#   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"
+#   endif
+#   if __cpp_lib_copyable_function != 202306L
+#     error "__cpp_lib_copyable_function should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_copyable_function
+#     error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_coroutine
+#   error "__cpp_lib_coroutine should be defined in c++26"
+# endif
+# if __cpp_lib_coroutine != 201902L
+#   error "__cpp_lib_coroutine should have the value 201902L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_debugging
+#     error "__cpp_lib_debugging should be defined in c++26"
+#   endif
+#   if __cpp_lib_debugging != 202311L
+#     error "__cpp_lib_debugging should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_debugging
+#     error "__cpp_lib_debugging should not be defined because it is unimplemented in libc++!"
+#   endif
+# 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"
+#   endif
+#   if __cpp_lib_default_template_type_for_algorithm_values != 202403L
+#     error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_default_template_type_for_algorithm_values
+#     error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
+#   ifndef __cpp_lib_destroying_delete
+#     error "__cpp_lib_destroying_delete should be defined in c++26"
+#   endif
+#   if __cpp_lib_destroying_delete != 201806L
+#     error "__cpp_lib_destroying_delete should have the value 201806L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_destroying_delete
+#     error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_enable_shared_from_this
+#   error "__cpp_lib_enable_shared_from_this should be defined in c++26"
+# endif
+# if __cpp_lib_enable_shared_from_this != 201603L
+#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_endian
+#   error "__cpp_lib_endian should be defined in c++26"
+# endif
+# if __cpp_lib_endian != 201907L
+#   error "__cpp_lib_endian should have the value 201907L in c++26"
+# endif
+
+# ifndef __cpp_lib_erase_if
+#   error "__cpp_lib_erase_if should be defined in c++26"
+# endif
+# if __cpp_lib_erase_if != 202002L
+#   error "__cpp_lib_erase_if should have the value 202002L in c++26"
+# endif
+
+# ifndef __cpp_lib_exchange_function
+#   error "__cpp_lib_exchange_function should be defined in c++26"
+# endif
+# if __cpp_lib_exchange_function != 201304L
+#   error "__cpp_lib_exchange_function should have the value 201304L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_execution
+#     error "__cpp_lib_execution should be defined in c++26"
+#   endif
+#   if __cpp_lib_execution != 201902L
+#     error "__cpp_lib_execution should have the value 201902L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_execution
+#     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_expected
+#   error "__cpp_lib_expected should be defined in c++26"
+# endif
+# if __cpp_lib_expected != 202211L
+#   error "__cpp_lib_expected should have the value 202211L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
+#   ifndef __cpp_lib_filesystem
+#     error "__cpp_lib_filesystem should be defined in c++26"
+#   endif
+#   if __cpp_lib_filesystem != 201703L
+#     error "__cpp_lib_filesystem should have the value 201703L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_filesystem
+#     error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_flat_map
+#   error "__cpp_lib_flat_map should be defined in c++26"
+# endif
+# if __cpp_lib_flat_map != 202207L
+#   error "__cpp_lib_flat_map should have the value 202207L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   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"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_flat_set
+#     error "__cpp_lib_flat_set should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
+#   ifndef __cpp_lib_format
+#     error "__cpp_lib_format should be defined in c++26"
+#   endif
+#   if __cpp_lib_format != 202110L
+#     error "__cpp_lib_format should have the value 202110L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_format
+#     error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_format_path
+#     error "__cpp_lib_format_path should be defined in c++26"
+#   endif
+#   if __cpp_lib_format_path != 202403L
+#     error "__cpp_lib_format_path should have the value 202403L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_format_path
+#     error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_format_ranges
+#   error "__cpp_lib_format_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_format_ranges != 202207L
+#   error "__cpp_lib_format_ranges should have the value 202207L in c++26"
+# endif
+
+# ifndef __cpp_lib_format_uchar
+#   error "__cpp_lib_format_uchar should be defined in c++26"
+# endif
+# if __cpp_lib_format_uchar != 202311L
+#   error "__cpp_lib_format_uchar should have the value 202311L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_formatters
+#     error "__cpp_lib_formatters should be defined in c++26"
+#   endif
+#   if __cpp_lib_formatters != 202302L
+#     error "__cpp_lib_formatters should have the value 202302L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_formatters
+#     error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_forward_like
+#   error "__cpp_lib_forward_like should be defined in c++26"
+# endif
+# if __cpp_lib_forward_like != 202207L
+#   error "__cpp_lib_forward_like should have the value 202207L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_freestanding_algorithm
+#     error "__cpp_lib_freestanding_algorithm should be defined in c++26"
+#   endif
+#   if __cpp_lib_freestanding_algorithm != 202311L
+#     error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_freestanding_algorithm
+#     error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_freestanding_array
+#     error "__cpp_lib_freestanding_array should be defined in c++26"
+#   endif
+#   if __cpp_lib_freestanding_array != 202311L
+#     error "__cpp_lib_freestanding_array should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_freestanding_array
+#     error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_freestanding_cstring
+#     error "__cpp_lib_freestanding_cstring should be defined in c++26"
+#   endif
+#   if __cpp_lib_freestanding_cstring != 202306L
+#     error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_freestanding_cstring
+#     error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_freestanding_expected
+#     error "__cpp_lib_freestanding_expected should be defined in c++26"
+#   endif
+#   if __cpp_lib_freestanding_expected != 202311L
+#     error "__cpp_lib_freestanding_expected should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_freestanding_expected
+#     error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_freestanding_mdspan
+#     error "__cpp_lib_freestanding_mdspan should be defined in c++26"
+#   endif
+#   if __cpp_lib_freestanding_mdspan != 202311L
+#     error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_freestanding_mdspan
+#     error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_freestanding_optional
+#     error "__cpp_lib_freestanding_optional should be defined in c++26"
+#   endif
+#   if __cpp_lib_freestanding_optional != 202311L
+#     error "__cpp_lib_freestanding_optional should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_freestanding_optional
+#     error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_freestanding_string_view
+#     error "__cpp_lib_freestanding_string_view should be defined in c++26"
+#   endif
+#   if __cpp_lib_freestanding_string_view != 202311L
+#     error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_freestanding_string_view
+#     error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_freestanding_variant
+#     error "__cpp_lib_freestanding_variant should be defined in c++26"
+#   endif
+#   if __cpp_lib_freestanding_variant != 202311L
+#     error "__cpp_lib_freestanding_variant should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_freestanding_variant
+#     error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)
+#   ifndef __cpp_lib_fstream_native_handle
+#     error "__cpp_lib_fstream_native_handle should be defined in c++26"
+#   endif
+#   if __cpp_lib_fstream_native_handle != 202306L
+#     error "__cpp_lib_fstream_native_handle should have the value 202306L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_fstream_native_handle
+#     error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_function_ref
+#     error "__cpp_lib_function_ref should be defined in c++26"
+#   endif
+#   if __cpp_lib_function_ref != 202306L
+#     error "__cpp_lib_function_ref should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_function_ref
+#     error "__cpp_lib_function_ref should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_gcd_lcm
+#   error "__cpp_lib_gcd_lcm should be defined in c++26"
+# endif
+# if __cpp_lib_gcd_lcm != 201606L
+#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_generate_random
+#     error "__cpp_lib_generate_random should be defined in c++26"
+#   endif
+#   if __cpp_lib_generate_random != 202403L
+#     error "__cpp_lib_generate_random should have the value 202403L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_generate_random
+#     error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_generic_associative_lookup
+#   error "__cpp_lib_generic_associative_lookup should be defined in c++26"
+# endif
+# if __cpp_lib_generic_associative_lookup != 201304L
+#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_generic_unordered_lookup
+#   error "__cpp_lib_generic_unordered_lookup should be defined in c++26"
+# endif
+# if __cpp_lib_generic_unordered_lookup != 201811L
+#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
+#   ifndef __cpp_lib_hardware_interference_size
+#     error "__cpp_lib_hardware_interference_size should be defined in c++26"
+#   endif
+#   if __cpp_lib_hardware_interference_size != 201703L
+#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_hardware_interference_size
+#     error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_has_unique_object_representations
+#   error "__cpp_lib_has_unique_object_representations should be defined in c++26"
+# endif
+# if __cpp_lib_has_unique_object_representations != 201606L
+#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_hazard_pointer
+#     error "__cpp_lib_hazard_pointer should be defined in c++26"
+#   endif
+#   if __cpp_lib_hazard_pointer != 202306L
+#     error "__cpp_lib_hazard_pointer should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_hazard_pointer
+#     error "__cpp_lib_hazard_pointer should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_hypot
+#   error "__cpp_lib_hypot should be defined in c++26"
+# endif
+# if __cpp_lib_hypot != 201603L
+#   error "__cpp_lib_hypot should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_incomplete_container_elements
+#   error "__cpp_lib_incomplete_container_elements should be defined in c++26"
+# endif
+# if __cpp_lib_incomplete_container_elements != 201505L
+#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_inplace_vector
+#     error "__cpp_lib_inplace_vector should be defined in c++26"
+#   endif
+#   if __cpp_lib_inplace_vector != 202406L
+#     error "__cpp_lib_inplace_vector should have the value 202406L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_inplace_vector
+#     error "__cpp_lib_inplace_vector should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_int_pow2
+#   error "__cpp_lib_int_pow2 should be defined in c++26"
+# endif
+# if __cpp_lib_int_pow2 != 202002L
+#   error "__cpp_lib_int_pow2 should have the value 202002L in c++26"
+# endif
+
+# ifndef __cpp_lib_integer_comparison_functions
+#   error "__cpp_lib_integer_comparison_functions should be defined in c++26"
+# endif
+# if __cpp_lib_integer_comparison_functions != 202002L
+#   error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++26"
+# endif
+
+# ifndef __cpp_lib_integer_sequence
+#   error "__cpp_lib_integer_sequence should be defined in c++26"
+# endif
+# if __cpp_lib_integer_sequence != 201304L
+#   error "__cpp_lib_integer_sequence should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_integral_constant_callable
+#   error "__cpp_lib_integral_constant_callable should be defined in c++26"
+# endif
+# if __cpp_lib_integral_constant_callable != 201304L
+#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_interpolate
+#   error "__cpp_lib_interpolate should be defined in c++26"
+# endif
+# if __cpp_lib_interpolate != 201902L
+#   error "__cpp_lib_interpolate should have the value 201902L in c++26"
+# endif
+
+# ifndef __cpp_lib_invoke
+#   error "__cpp_lib_invoke should be defined in c++26"
+# endif
+# if __cpp_lib_invoke != 201411L
+#   error "__cpp_lib_invoke should have the value 201411L in c++26"
+# endif
+
+# ifndef __cpp_lib_invoke_r
+#   error "__cpp_lib_invoke_r should be defined in c++26"
+# endif
+# if __cpp_lib_invoke_r != 202106L
+#   error "__cpp_lib_invoke_r should have the value 202106L in c++26"
+# endif
+
+# ifndef __cpp_lib_ios_noreplace
+#   error "__cpp_lib_ios_noreplace should be defined in c++26"
+# endif
+# if __cpp_lib_ios_noreplace != 202207L
+#   error "__cpp_lib_ios_noreplace should have the value 202207L in c++26"
+# endif
+
+# ifndef __cpp_lib_is_aggregate
+#   error "__cpp_lib_is_aggregate should be defined in c++26"
+# endif
+# if __cpp_lib_is_aggregate != 201703L
+#   error "__cpp_lib_is_aggregate should have the value 201703L in c++26"
+# endif
+
+# ifndef __cpp_lib_is_constant_evaluated
+#   error "__cpp_lib_is_constant_evaluated should be defined in c++26"
+# endif
+# if __cpp_lib_is_constant_evaluated != 201811L
+#   error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++26"
+# endif
+
+# ifndef __cpp_lib_is_final
+#   error "__cpp_lib_is_final should be defined in c++26"
+# endif
+# if __cpp_lib_is_final != 201402L
+#   error "__cpp_lib_is_final should have the value 201402L in c++26"
+# endif
+
+# if __has_builtin(__builtin_is_implicit_lifetime)
+#   ifndef __cpp_lib_is_implicit_lifetime
+#     error "__cpp_lib_is_implicit_lifetime should be defined in c++26"
+#   endif
+#   if __cpp_lib_is_implicit_lifetime != 202302L
+#     error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_is_implicit_lifetime
+#     error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_is_invocable
+#   error "__cpp_lib_is_invocable should be defined in c++26"
+# endif
+# if __cpp_lib_is_invocable != 201703L
+#   error "__cpp_lib_is_invocable should have the value 201703L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_is_layout_compatible
+#     error "__cpp_lib_is_layout_compatible should be defined in c++26"
+#   endif
+#   if __cpp_lib_is_layout_compatible != 201907L
+#     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_is_layout_compatible
+#     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_is_nothrow_convertible
+#   error "__cpp_lib_is_nothrow_convertible should be defined in c++26"
+# endif
+# if __cpp_lib_is_nothrow_convertible != 201806L
+#   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++26"
+# endif
+
+# ifndef __cpp_lib_is_null_pointer
+#   error "__cpp_lib_is_null_pointer should be defined in c++26"
+# endif
+# if __cpp_lib_is_null_pointer != 201309L
+#   error "__cpp_lib_is_null_pointer should have the value 201309L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_is_pointer_interconvertible
+#     error "__cpp_lib_is_pointer_interconvertible should be defined in c++26"
+#   endif
+#   if __cpp_lib_is_pointer_interconvertible != 201907L
+#     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_is_pointer_interconvertible
+#     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_is_scoped_enum
+#   error "__cpp_lib_is_scoped_enum should be defined in c++26"
+# endif
+# if __cpp_lib_is_scoped_enum != 202011L
+#   error "__cpp_lib_is_scoped_enum should have the value 202011L in c++26"
+# endif
+
+# ifndef __cpp_lib_is_swappable
+#   error "__cpp_lib_is_swappable should be defined in c++26"
+# endif
+# if __cpp_lib_is_swappable != 201603L
+#   error "__cpp_lib_is_swappable should have the value 201603L in c++26"
+# endif
+
+# if __has_builtin(__builtin_is_virtual_base_of)
+#   ifndef __cpp_lib_is_virtual_base_of
+#     error "__cpp_lib_is_virtual_base_of should be defined in c++26"
+#   endif
+#   if __cpp_lib_is_virtual_base_of != 202406L
+#     error "__cpp_lib_is_virtual_base_of should have the value 202406L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_is_virtual_base_of
+#     error "__cpp_lib_is_virtual_base_of should not be defined when the requirement '__has_builtin(__builtin_is_virtual_base_of)' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_is_within_lifetime
+#     error "__cpp_lib_is_within_lifetime should be defined in c++26"
+#   endif
+#   if __cpp_lib_is_within_lifetime != 202306L
+#     error "__cpp_lib_is_within_lifetime should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_is_within_lifetime
+#     error "__cpp_lib_is_within_lifetime should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_jthread
+#     error "__cpp_lib_jthread should be defined in c++26"
+#   endif
+#   if __cpp_lib_jthread != 201911L
+#     error "__cpp_lib_jthread should have the value 201911L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_jthread
+#     error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_latch
+#     error "__cpp_lib_latch should be defined in c++26"
+#   endif
+#   if __cpp_lib_latch != 201907L
+#     error "__cpp_lib_latch should have the value 201907L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_latch
+#     error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_launder
+#   error "__cpp_lib_launder should be defined in c++26"
+# endif
+# if __cpp_lib_launder != 201606L
+#   error "__cpp_lib_launder should have the value 201606L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_linalg
+#     error "__cpp_lib_linalg should be defined in c++26"
+#   endif
+#   if __cpp_lib_linalg != 202311L
+#     error "__cpp_lib_linalg should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_linalg
+#     error "__cpp_lib_linalg should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_list_remove_return_type
+#   error "__cpp_lib_list_remove_return_type should be defined in c++26"
+# endif
+# if __cpp_lib_list_remove_return_type != 201806L
+#   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26"
+# endif
+
+# ifndef __cpp_lib_logical_traits
+#   error "__cpp_lib_logical_traits should be defined in c++26"
+# endif
+# if __cpp_lib_logical_traits != 201510L
+#   error "__cpp_lib_logical_traits should have the value 201510L in c++26"
+# endif
+
+# ifndef __cpp_lib_make_from_tuple
+#   error "__cpp_lib_make_from_tuple should be defined in c++26"
+# endif
+# if __cpp_lib_make_from_tuple != 201606L
+#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++26"
+# endif
+
+# ifndef __cpp_lib_make_reverse_iterator
+#   error "__cpp_lib_make_reverse_iterator should be defined in c++26"
+# endif
+# if __cpp_lib_make_reverse_iterator != 201402L
+#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++26"
+# endif
+
+# ifndef __cpp_lib_make_unique
+#   error "__cpp_lib_make_unique should be defined in c++26"
+# endif
+# if __cpp_lib_make_unique != 201304L
+#   error "__cpp_lib_make_unique should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_map_try_emplace
+#   error "__cpp_lib_map_try_emplace should be defined in c++26"
+# endif
+# if __cpp_lib_map_try_emplace != 201411L
+#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++26"
+# endif
+
+# ifndef __cpp_lib_math_constants
+#   error "__cpp_lib_math_constants should be defined in c++26"
+# endif
+# if __cpp_lib_math_constants != 201907L
+#   error "__cpp_lib_math_constants should have the value 201907L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_math_special_functions
+#     error "__cpp_lib_math_special_functions should be defined in c++26"
+#   endif
+#   if __cpp_lib_math_special_functions != 201603L
+#     error "__cpp_lib_math_special_functions should have the value 201603L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_math_special_functions
+#     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_mdspan
+#   error "__cpp_lib_mdspan should be defined in c++26"
+# endif
+# if __cpp_lib_mdspan != 202406L
+#   error "__cpp_lib_mdspan should have the value 202406L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#   ifndef __cpp_lib_memory_resource
+#     error "__cpp_lib_memory_resource should be defined in c++26"
+#   endif
+#   if __cpp_lib_memory_resource != 201603L
+#     error "__cpp_lib_memory_resource should have the value 201603L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_memory_resource
+#     error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_modules
+#   error "__cpp_lib_modules should be defined in c++26"
+# endif
+# if __cpp_lib_modules != 202207L
+#   error "__cpp_lib_modules should have the value 202207L in c++26"
+# endif
+
+# ifndef __cpp_lib_move_iterator_concept
+#   error "__cpp_lib_move_iterator_concept should be defined in c++26"
+# endif
+# if __cpp_lib_move_iterator_concept != 202207L
+#   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_move_only_function
+#     error "__cpp_lib_move_only_function should be defined in c++26"
+#   endif
+#   if __cpp_lib_move_only_function != 202110L
+#     error "__cpp_lib_move_only_function should have the value 202110L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_move_only_function
+#     error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_node_extract
+#   error "__cpp_lib_node_extract should be defined in c++26"
+# endif
+# if __cpp_lib_node_extract != 201606L
+#   error "__cpp_lib_node_extract should have the value 201606L in c++26"
+# endif
+
+# ifndef __cpp_lib_nonmember_container_access
+#   error "__cpp_lib_nonmember_container_access should be defined in c++26"
+# endif
+# if __cpp_lib_nonmember_container_access != 201411L
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
+# endif
+
+# ifndef __cpp_lib_not_fn
+#   error "__cpp_lib_not_fn should be defined in c++26"
+# endif
+# if __cpp_lib_not_fn != 202306L
+#   error "__cpp_lib_not_fn should have the value 202306L in c++26"
+# endif
+
+# ifndef __cpp_lib_null_iterators
+#   error "__cpp_lib_null_iterators should be defined in c++26"
+# endif
+# if __cpp_lib_null_iterators != 201304L
+#   error "__cpp_lib_null_iterators should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_optional
+#   error "__cpp_lib_optional should be defined in c++26"
+# endif
+# if __cpp_lib_optional != 202110L
+#   error "__cpp_lib_optional should have the value 202110L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_optional_range_support
+#     error "__cpp_lib_optional_range_support should be defined in c++26"
+#   endif
+#   if __cpp_lib_optional_range_support != 202406L
+#     error "__cpp_lib_optional_range_support should have the value 202406L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_optional_range_support
+#     error "__cpp_lib_optional_range_support should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_out_ptr
+#   error "__cpp_lib_out_ptr should be defined in c++26"
+# endif
+# if __cpp_lib_out_ptr != 202311L
+#   error "__cpp_lib_out_ptr should have the value 202311L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_parallel_algorithm
+#     error "__cpp_lib_parallel_algorithm should be defined in c++26"
+#   endif
+#   if __cpp_lib_parallel_algorithm != 201603L
+#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_parallel_algorithm
+#     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_philox_engine
+#     error "__cpp_lib_philox_engine should be defined in c++26"
+#   endif
+#   if __cpp_lib_philox_engine != 202406L
+#     error "__cpp_lib_philox_engine should have the value 202406L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_philox_engine
+#     error "__cpp_lib_philox_engine should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
+#   ifndef __cpp_lib_polymorphic_allocator
+#     error "__cpp_lib_polymorphic_allocator should be defined in c++26"
+#   endif
+#   if __cpp_lib_polymorphic_allocator != 201902L
+#     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_polymorphic_allocator
+#     error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
+#   ifndef __cpp_lib_print
+#     error "__cpp_lib_print should be defined in c++26"
+#   endif
+#   if __cpp_lib_print != 202207L
+#     error "__cpp_lib_print should have the value 202207L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_print
+#     error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
+#   ifndef __cpp_lib_quoted_string_io
+#     error "__cpp_lib_quoted_string_io should be defined in c++26"
+#   endif
+#   if __cpp_lib_quoted_string_io != 201304L
+#     error "__cpp_lib_quoted_string_io should have the value 201304L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_quoted_string_io
+#     error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges
+#   error "__cpp_lib_ranges should be defined in c++26"
+# endif
+# if __cpp_lib_ranges != 202406L
+#   error "__cpp_lib_ranges should have the value 202406L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_as_const
+#     error "__cpp_lib_ranges_as_const should be defined in c++26"
+#   endif
+#   if __cpp_lib_ranges_as_const != 202207L
+#     error "__cpp_lib_ranges_as_const should have the value 202207L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_as_const
+#     error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_as_rvalue
+#   error "__cpp_lib_ranges_as_rvalue should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_as_rvalue != 202207L
+#   error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_chunk
+#     error "__cpp_lib_ranges_chunk should be defined in c++26"
+#   endif
+#   if __cpp_lib_ranges_chunk != 202202L
+#     error "__cpp_lib_ranges_chunk should have the value 202202L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_chunk
+#     error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_chunk_by
+#   error "__cpp_lib_ranges_chunk_by should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_chunk_by != 202202L
+#   error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_concat
+#     error "__cpp_lib_ranges_concat should be defined in c++26"
+#   endif
+#   if __cpp_lib_ranges_concat != 202403L
+#     error "__cpp_lib_ranges_concat should have the value 202403L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_concat
+#     error "__cpp_lib_ranges_concat should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_contains
+#   error "__cpp_lib_ranges_contains should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_contains != 202207L
+#   error "__cpp_lib_ranges_contains should have the value 202207L in c++26"
+# endif
+
+# ifndef __cpp_lib_ranges_find_last
+#   error "__cpp_lib_ranges_find_last should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_find_last != 202207L
+#   error "__cpp_lib_ranges_find_last should have the value 202207L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_iota
+#     error "__cpp_lib_ranges_iota should be defined in c++26"
+#   endif
+#   if __cpp_lib_ranges_iota != 202202L
+#     error "__cpp_lib_ranges_iota should have the value 202202L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_iota
+#     error "__cpp_lib_ranges_iota should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_join_with
+#     error "__cpp_lib_ranges_join_with should be defined in c++26"
+#   endif
+#   if __cpp_lib_ranges_join_with != 202202L
+#     error "__cpp_lib_ranges_join_with should have the value 202202L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_join_with
+#     error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_repeat
+#   error "__cpp_lib_ranges_repeat should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_repeat != 202207L
+#   error "__cpp_lib_ranges_repeat should have the value 202207L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_ranges_slide
+#     error "__cpp_lib_ranges_slide should be defined in c++26"
+#   endif
+#   if __cpp_lib_ranges_slide != 202202L
+#     error "__cpp_lib_ranges_slide should have the value 202202L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_slide
+#     error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ranges_starts_ends_with
+#   error "__cpp_lib_ranges_starts_ends_with should be defined in c++26"
+# endif
+# if __cpp_lib_ranges_starts_ends_with != 202106L
+#   error "__cpp_lib_ranges_starts_ends_with 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"
+# 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_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 // _LIBCPP_VERSION
+#   ifdef __cpp_lib_ranges_zip
+#     error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ratio
+#   error "__cpp_lib_ratio should be defined in c++26"
+# endif
+# if __cpp_lib_ratio != 202306L
+#   error "__cpp_lib_ratio should have the value 202306L in c++26"
+# endif
+
+# ifndef __cpp_lib_raw_memory_algorithms
+#   error "__cpp_lib_raw_memory_algorithms should be defined in c++26"
+# endif
+# if __cpp_lib_raw_memory_algorithms != 201606L
+#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_rcu
+#     error "__cpp_lib_rcu should be defined in c++26"
+#   endif
+#   if __cpp_lib_rcu != 202306L
+#     error "__cpp_lib_rcu should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_rcu
+#     error "__cpp_lib_rcu should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_reference_from_temporary
+#     error "__cpp_lib_reference_from_temporary should be defined in c++26"
+#   endif
+#   if __cpp_lib_reference_from_temporary != 202202L
+#     error "__cpp_lib_reference_from_temporary should have the value 202202L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_reference_from_temporary
+#     error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_reference_wrapper
+#   error "__cpp_lib_reference_wrapper should be defined in c++26"
+# endif
+# if __cpp_lib_reference_wrapper != 202403L
+#   error "__cpp_lib_reference_wrapper should have the value 202403L in c++26"
+# endif
+
+# ifndef __cpp_lib_remove_cvref
+#   error "__cpp_lib_remove_cvref should be defined in c++26"
+# endif
+# if __cpp_lib_remove_cvref != 201711L
+#   error "__cpp_lib_remove_cvref should have the value 201711L in c++26"
+# endif
+
+# ifndef __cpp_lib_result_of_sfinae
+#   error "__cpp_lib_result_of_sfinae should be defined in c++26"
+# endif
+# if __cpp_lib_result_of_sfinae != 201210L
+#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26"
+# endif
+
+# ifndef __cpp_lib_robust_nonmodifying_seq_ops
+#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++26"
+# endif
+# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
+#   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_sample
+#   error "__cpp_lib_sample should be defined in c++26"
+# endif
+# if __cpp_lib_sample != 201603L
+#   error "__cpp_lib_sample should have the value 201603L in c++26"
+# endif
+
+# ifndef __cpp_lib_saturation_arithmetic
+#   error "__cpp_lib_saturation_arithmetic should be defined in c++26"
+# endif
+# if __cpp_lib_saturation_arithmetic != 202311L
+#   error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_scoped_lock
+#     error "__cpp_lib_scoped_lock should be defined in c++26"
+#   endif
+#   if __cpp_lib_scoped_lock != 201703L
+#     error "__cpp_lib_scoped_lock should have the value 201703L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_scoped_lock
+#     error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
+#   ifndef __cpp_lib_semaphore
+#     error "__cpp_lib_semaphore should be defined in c++26"
+#   endif
+#   if __cpp_lib_semaphore != 201907L
+#     error "__cpp_lib_semaphore should have the value 201907L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_semaphore
+#     error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_senders
+#     error "__cpp_lib_senders should be defined in c++26"
+#   endif
+#   if __cpp_lib_senders != 202406L
+#     error "__cpp_lib_senders should have the value 202406L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_senders
+#     error "__cpp_lib_senders should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_shared_mutex
+#     error "__cpp_lib_shared_mutex should be defined in c++26"
+#   endif
+#   if __cpp_lib_shared_mutex != 201505L
+#     error "__cpp_lib_shared_mutex should have the value 201505L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_shared_mutex
+#     error "__cpp_lib_shared_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_shared_ptr_arrays
+#   error "__cpp_lib_shared_ptr_arrays should be defined in c++26"
+# endif
+# if __cpp_lib_shared_ptr_arrays != 201707L
+#   error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++26"
+# endif
+
+# ifndef __cpp_lib_shared_ptr_weak_type
+#   error "__cpp_lib_shared_ptr_weak_type should be defined in c++26"
+# endif
+# if __cpp_lib_shared_ptr_weak_type != 201606L
+#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++26"
+# endif
+
+# if _LIBCPP_HAS_THREADS
+#   ifndef __cpp_lib_shared_timed_mutex
+#     error "__cpp_lib_shared_timed_mutex should be defined in c++26"
+#   endif
+#   if __cpp_lib_shared_timed_mutex != 201402L
+#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_shared_timed_mutex
+#     error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_shift
+#   error "__cpp_lib_shift should be defined in c++26"
+# endif
+# if __cpp_lib_shift != 201806L
+#   error "__cpp_lib_shift should have the value 201806L in c++26"
+# endif
+
+# ifndef __cpp_lib_smart_ptr_for_overwrite
+#   error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++26"
+# endif
+# if __cpp_lib_smart_ptr_for_overwrite != 202002L
+#   error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_smart_ptr_owner_equality
+#     error "__cpp_lib_smart_ptr_owner_equality should be defined in c++26"
+#   endif
+#   if __cpp_lib_smart_ptr_owner_equality != 202306L
+#     error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_smart_ptr_owner_equality
+#     error "__cpp_lib_smart_ptr_owner_equality should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_source_location
+#   error "__cpp_lib_source_location should be defined in c++26"
+# endif
+# if __cpp_lib_source_location != 201907L
+#   error "__cpp_lib_source_location should have the value 201907L in c++26"
+# endif
+
+# ifndef __cpp_lib_span
+#   error "__cpp_lib_span should be defined in c++26"
+# endif
+# if __cpp_lib_span != 202002L
+#   error "__cpp_lib_span should have the value 202002L in c++26"
+# endif
+
+# ifndef __cpp_lib_span_at
+#   error "__cpp_lib_span_at should be defined in c++26"
+# endif
+# if __cpp_lib_span_at != 202311L
+#   error "__cpp_lib_span_at should have the value 202311L in c++26"
+# endif
+
+# ifndef __cpp_lib_span_initializer_list
+#   error "__cpp_lib_span_initializer_list should be defined in c++26"
+# endif
+# if __cpp_lib_span_initializer_list != 202311L
+#   error "__cpp_lib_span_initializer_list should have the value 202311L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_spanstream
+#     error "__cpp_lib_spanstream should be defined in c++26"
+#   endif
+#   if __cpp_lib_spanstream != 202106L
+#     error "__cpp_lib_spanstream should have the value 202106L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_spanstream
+#     error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_ssize
+#   error "__cpp_lib_ssize should be defined in c++26"
+# endif
+# if __cpp_lib_ssize != 201902L
+#   error "__cpp_lib_ssize should have the value 201902L in c++26"
+# endif
+
+# ifndef __cpp_lib_sstream_from_string_view
+#   error "__cpp_lib_sstream_from_string_view should be defined in c++26"
+# endif
+# if __cpp_lib_sstream_from_string_view != 202306L
+#   error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_stacktrace
+#     error "__cpp_lib_stacktrace should be defined in c++26"
+#   endif
+#   if __cpp_lib_stacktrace != 202011L
+#     error "__cpp_lib_stacktrace should have the value 202011L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_stacktrace
+#     error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_starts_ends_with
+#   error "__cpp_lib_starts_ends_with should be defined in c++26"
+# endif
+# if __cpp_lib_starts_ends_with != 201711L
+#   error "__cpp_lib_starts_ends_with should have the value 201711L in c++26"
+# endif
+
+# ifndef __cpp_lib_stdatomic_h
+#   error "__cpp_lib_stdatomic_h should be defined in c++26"
+# endif
+# if __cpp_lib_stdatomic_h != 202011L
+#   error "__cpp_lib_stdatomic_h should have the value 202011L in c++26"
+# endif
+
+# ifndef __cpp_lib_string_contains
+#   error "__cpp_lib_string_contains should be defined in c++26"
+# endif
+# if __cpp_lib_string_contains != 202011L
+#   error "__cpp_lib_string_contains should have the value 202011L in c++26"
+# endif
+
+# ifndef __cpp_lib_string_resize_and_overwrite
+#   error "__cpp_lib_string_resize_and_overwrite should be defined in c++26"
+# endif
+# if __cpp_lib_string_resize_and_overwrite != 202110L
+#   error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++26"
+# endif
+
+# ifndef __cpp_lib_string_udls
+#   error "__cpp_lib_string_udls should be defined in c++26"
+# endif
+# if __cpp_lib_string_udls != 201304L
+#   error "__cpp_lib_string_udls should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_string_view
+#   error "__cpp_lib_string_view should be defined in c++26"
+# endif
+# if __cpp_lib_string_view != 202403L
+#   error "__cpp_lib_string_view should have the value 202403L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_submdspan
+#     error "__cpp_lib_submdspan should be defined in c++26"
+#   endif
+#   if __cpp_lib_submdspan != 202306L
+#     error "__cpp_lib_submdspan should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_submdspan
+#     error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
+#   ifndef __cpp_lib_syncbuf
+#     error "__cpp_lib_syncbuf should be defined in c++26"
+#   endif
+#   if __cpp_lib_syncbuf != 201803L
+#     error "__cpp_lib_syncbuf should have the value 201803L in c++26"
+#   endif
+# else
+#   ifdef __cpp_lib_syncbuf
+#     error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_text_encoding
+#     error "__cpp_lib_text_encoding should be defined in c++26"
+#   endif
+#   if __cpp_lib_text_encoding != 202306L
+#     error "__cpp_lib_text_encoding should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_text_encoding
+#     error "__cpp_lib_text_encoding should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_three_way_comparison
+#   error "__cpp_lib_three_way_comparison should be defined in c++26"
+# endif
+# if __cpp_lib_three_way_comparison != 201907L
+#   error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
+# endif
+
+# ifndef __cpp_lib_to_address
+#   error "__cpp_lib_to_address should be defined in c++26"
+# endif
+# if __cpp_lib_to_address != 201711L
+#   error "__cpp_lib_to_address should have the value 201711L in c++26"
+# endif
+
+# ifndef __cpp_lib_to_array
+#   error "__cpp_lib_to_array should be defined in c++26"
+# endif
+# if __cpp_lib_to_array != 201907L
+#   error "__cpp_lib_to_array should have the value 201907L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_to_chars
+#     error "__cpp_lib_to_chars should be defined in c++26"
+#   endif
+#   if __cpp_lib_to_chars != 202306L
+#     error "__cpp_lib_to_chars should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_to_chars
+#     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_to_string
+#     error "__cpp_lib_to_string should be defined in c++26"
+#   endif
+#   if __cpp_lib_to_string != 202306L
+#     error "__cpp_lib_to_string should have the value 202306L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_to_string
+#     error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_to_underlying
+#   error "__cpp_lib_to_underlying should be defined in c++26"
+# endif
+# if __cpp_lib_to_underlying != 202102L
+#   error "__cpp_lib_to_underlying should have the value 202102L in c++26"
+# endif
+
+# ifndef __cpp_lib_transformation_trait_aliases
+#   error "__cpp_lib_transformation_trait_aliases should be defined in c++26"
+# endif
+# if __cpp_lib_transformation_trait_aliases != 201304L
+#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_transparent_operators
+#   error "__cpp_lib_transparent_operators should be defined in c++26"
+# endif
+# if __cpp_lib_transparent_operators != 201510L
+#   error "__cpp_lib_transparent_operators should have the value 201510L in c++26"
+# endif
+
+# ifndef __cpp_lib_tuple_element_t
+#   error "__cpp_lib_tuple_element_t should be defined in c++26"
+# endif
+# if __cpp_lib_tuple_element_t != 201402L
+#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++26"
+# endif
+
+# if !defined(_LIBCPP_VERSION)
+#   ifndef __cpp_lib_tuple_like
+#     error "__cpp_lib_tuple_like should be defined in c++26"
+#   endif
+#   if __cpp_lib_tuple_like != 202311L
+#     error "__cpp_lib_tuple_like should have the value 202311L in c++26"
+#   endif
+# else // _LIBCPP_VERSION
+#   ifdef __cpp_lib_tuple_like
+#     error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
+#   endif
+# endif
+
+# ifndef __cpp_lib_tuples_by_type
+#   error "__cpp_lib_tuples_by_type should be defined in c++26"
+# endif
+# if __cpp_lib_tuples_by_type != 201304L
+#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++26"
+# endif
+
+# ifndef __cpp_lib_type_identity
+#   error "__cpp_lib_type_identity should be defined in c++26"
+# endif
+# if __cpp_lib_type_identity != 201806L
+#   error "__cpp_lib_type_identity should have the value 201806L in c++26"
+# endif
+
+# ifndef __cpp_lib_type_trait_variable_templates
+#   error "__cpp_lib_type_trait_variable_templates should be defined in c++26"
+# endif
+# if __cpp_lib_type_trait_variable_templates != 201510L
+#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++26"
+# endif
+
+# ifndef __cpp_lib_uncaught_exceptions
+#   error "__cpp_lib_uncaught_exceptions should be defined in c++26"
+# endif
+# if __cpp_lib_uncaught_exceptions != 201411L
+#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++26"
+# endif
+
+# ifndef __cpp_lib_unordered_map_try_emplace
+#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++26"
+# endif
+# if __cpp_lib_unordered_map_try_emplace != 201411L
+#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++26"
+# endif
+
+# ifndef __cpp_lib_unreachable
+#   error "__cpp_lib_unreachable should be defined in c++26"
+# endif
+# if __cpp_lib_unreachable != 202202L
+#   error "__cpp_lib_unreachable should have the value 202202L in c++26"
+# endif
+
+# ifndef __cpp_lib_unwrap_ref
+#   error "__cpp_lib_unwrap_ref should be defined in c++26"
+# endif
+# if __cpp_lib_unwrap_ref != 201811L
+#   error "__cpp_lib_unwrap_ref should have the value 201811L in c++26"
+# endif
+
+# ifndef __cpp_lib_variant
+#   error "__cpp_lib_variant should be defined in c++26"
+# endif
+# if __cpp_lib_variant != 202306L
+#   error "__cpp_lib_variant should have the value 202306L in c++26"
+# endif
+
+# ifndef __cpp_lib_void_t
+#   error "__cpp_lib_void_t should be defined in c++26"
+# endif
+# if __cpp_lib_void_t != 201411L
+#   error "__cpp_lib_void_t should have the value 201411L in c++26"
+# endif
+>>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
 
 #endif // TEST_STD_VER > 23
 
diff --git a/libcxx/test/support/counting_predicates.h b/libcxx/test/support/counting_predicates.h
index 6f34ce76302a8..514e70ec9c736 100644
--- a/libcxx/test/support/counting_predicates.h
+++ b/libcxx/test/support/counting_predicates.h
@@ -16,31 +16,34 @@
 template <typename Predicate, typename Arg>
 struct unary_counting_predicate {
 public:
-    typedef Arg argument_type;
-    typedef bool result_type;
+  typedef Arg argument_type;
+  typedef bool result_type;
 
-    unary_counting_predicate(Predicate p) : p_(p), count_(0) {}
-    unary_counting_predicate(const unary_counting_predicate&) = default;
-    unary_counting_predicate& operator=(const unary_counting_predicate&) = default;
-    ~unary_counting_predicate() {}
+  TEST_CONSTEXPR_CXX20 unary_counting_predicate(Predicate p) : p_(p), count_(0) {}
+  unary_counting_predicate(const unary_counting_predicate&)            = default;
+  unary_counting_predicate& operator=(const unary_counting_predicate&) = default;
+  TEST_CONSTEXPR_CXX20 ~unary_counting_predicate() {}
 
-    bool operator () (const Arg &a) const { ++count_; return p_(a); }
-    std::size_t count() const { return count_; }
-    void reset() { count_ = 0; }
+  TEST_CONSTEXPR_CXX14 bool operator()(const Arg& a) const {
+    ++count_;
+    return p_(a);
+  }
+  TEST_CONSTEXPR std::size_t count() const { return count_; }
+  TEST_CONSTEXPR_CXX14 void reset() { count_ = 0; }
 
 private:
-    Predicate p_;
-    mutable std::size_t count_;
+  Predicate p_;
+  mutable std::size_t count_;
 };
 
-
-template <typename Predicate, typename Arg1, typename Arg2=Arg1>
+template <typename Predicate, typename Arg1, typename Arg2 = Arg1>
 struct binary_counting_predicate {
 public:
-    typedef Arg1 first_argument_type;
-    typedef Arg2 second_argument_type;
-    typedef bool result_type;
+  typedef Arg1 first_argument_type;
+  typedef Arg2 second_argument_type;
+  typedef bool result_type;
 
+<<<<<<< HEAD
     TEST_CONSTEXPR binary_counting_predicate(Predicate p) : p_(p), count_(0) {}
     TEST_CONSTEXPR_CXX14 bool operator()(const Arg1& a1, const Arg2& a2) const {
       ++count_;
@@ -52,6 +55,21 @@ struct binary_counting_predicate {
   private:
     Predicate p_;
     mutable std::size_t count_;
+=======
+  binary_counting_predicate(Predicate p) : p_(p), count_(0) {}
+  ~binary_counting_predicate() {}
+
+  bool operator()(const Arg1& a1, const Arg2& a2) const {
+    ++count_;
+    return p_(a1, a2);
+  }
+  std::size_t count() const { return count_; }
+  void reset() { count_ = 0; }
+
+private:
+  Predicate p_;
+  mutable std::size_t count_;
+>>>>>>> 577d8638ae21 (Make forward_list constexpr as part of P3372R3)
 };
 
 #if TEST_STD_VER > 14
@@ -66,13 +84,13 @@ class counting_predicate {
   constexpr counting_predicate(Predicate pred, int& count) : pred_(std::move(pred)), count_(&count) {}
 
   template <class... Args>
-  constexpr decltype(auto) operator()(Args&& ...args) {
+  constexpr decltype(auto) operator()(Args&&... args) {
     ++(*count_);
     return pred_(std::forward<Args>(args)...);
   }
 
   template <class... Args>
-  constexpr decltype(auto) operator()(Args&& ...args) const {
+  constexpr decltype(auto) operator()(Args&&... args) const {
     ++(*count_);
     return pred_(std::forward<Args>(args)...);
   }
diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
old mode 100755
new mode 100644
index 82f0d09db5c36..b59c7fdaf0a3d
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -357,6 +357,11 @@ def add_version_header(tc):
             "values": {"c++20": 201907},
             "headers": ["memory"],
         },
+        {
+            "name": "__cpp_lib_constexpr_forward_list",
+            "values": {"c++26": 202502},
+            "headers": ["forward_list"],
+        },
         {
             "name": "__cpp_lib_constexpr_functional",
             "values": {"c++20": 201907},

>From 0964754a2c1d33aba4d9e514e70fe8dfc2225f25 Mon Sep 17 00:00:00 2001
From: Peng Liu <winner245 at hotmail.com>
Date: Sun, 2 Mar 2025 15:25:55 -0500
Subject: [PATCH 2/7] Address reviewers comments

---
 libcxx/include/__memory/allocation_guard.h | 6 +++---
 libcxx/include/forward_list                | 6 +-----
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/libcxx/include/__memory/allocation_guard.h b/libcxx/include/__memory/allocation_guard.h
index 2fc485f4ed0ed..016e1a3a429b8 100644
--- a/libcxx/include/__memory/allocation_guard.h
+++ b/libcxx/include/__memory/allocation_guard.h
@@ -57,7 +57,9 @@ struct __allocation_guard {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI ~__allocation_guard() _NOEXCEPT { __destroy(); }
 
-  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __allocation_guard(const __allocation_guard&) = delete;
+  __allocation_guard(const __allocation_guard&)                    = delete;
+  __allocation_guard& operator=(const __allocation_guard& __other) = delete;
+
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __allocation_guard(__allocation_guard&& __other) _NOEXCEPT
       : __alloc_(std::move(__other.__alloc_)),
         __n_(__other.__n_),
@@ -65,8 +67,6 @@ struct __allocation_guard {
     __other.__ptr_ = nullptr;
   }
 
-  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __allocation_guard&
-  operator=(const __allocation_guard& __other) = delete;
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __allocation_guard&
   operator=(__allocation_guard&& __other) _NOEXCEPT {
     if (std::addressof(__other) != this) {
diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index ec91a7bf7441f..ac1badaaea600 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -343,9 +343,7 @@ private:
   _ALIGNAS_TYPE(_Tp) char __buffer_[sizeof(_Tp)];
 
 public:
-  _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI _Tp& __get_value() {
-    return *std::__launder(reinterpret_cast<_Tp*>(&__buffer_));
-  }
+  _LIBCPP_HIDE_FROM_ABI _Tp& __get_value() { return *std::__launder(reinterpret_cast<_Tp*>(&__buffer_)); }
 #  endif
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_node(_NodePtr __next) : _Base(__next) {}
@@ -1213,7 +1211,6 @@ forward_list<_Tp, _Alloc>::insert_after(const_iterator __p, size_type __n, const
     __last->__next_ = __r->__next_;
     __r->__next_    = __first;
     __r             = __forward_node_traits<__node_pointer>::__as_iter_node(__last);
-    // __r             = static_cast<__begin_node_pointer>(__last);
   }
   return iterator(__r);
 }
@@ -1255,7 +1252,6 @@ forward_list<_Tp, _Alloc>::__insert_after_with_sentinel(const_iterator __p, _Inp
     __last->__next_ = __r->__next_;
     __r->__next_    = __first;
     __r             = __forward_node_traits<__node_pointer>::__as_iter_node(__last);
-    // __r             = static_cast<__begin_node_pointer>(__last);
   }
 
   return iterator(__r);

>From 3c038b80c7911d609952b2ca4f8f3134b1183bd5 Mon Sep 17 00:00:00 2001
From: Peng Liu <winner245 at hotmail.com>
Date: Mon, 3 Mar 2025 16:15:47 -0500
Subject: [PATCH 3/7] Fix constant evaluation due to non-constant
 pointer_traits::pointer_to for gcc

---
 libcxx/include/forward_list | 70 ++++++++++++++++++++++++++++++++-----
 1 file changed, 61 insertions(+), 9 deletions(-)

diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index ac1badaaea600..d0622ba392a3c 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -296,7 +296,16 @@ struct __forward_node_traits {
 #  endif
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI static __begin_node_pointer __as_iter_node(__node_pointer __p) {
-    return __p ? pointer_traits<__begin_node_pointer>::pointer_to(*__p) : static_cast<__begin_node_pointer>(nullptr);
+#  ifdef _LIBCPP_CXX03_LANG
+    return static_cast<__begin_node_pointer>(__p);
+#  else
+    if constexpr (std::is_pointer<__begin_node_pointer>::value) {
+      return static_cast<__begin_node_pointer>(__p);
+    } else {
+      return __p ? __begin_node_pointer::pointer_to(*static_cast<__begin_node*>(std::addressof(*__p)))
+                 : static_cast<__begin_node_pointer>(nullptr);
+    }
+#  endif
   }
 };
 
@@ -311,8 +320,16 @@ struct __forward_begin_node {
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_begin_node(pointer __n) : __next_(__n) {}
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __next_as_begin() const {
-    return __next_ ? pointer_traits<__begin_node_pointer>::pointer_to(*__next_)
-                   : static_cast<__begin_node_pointer>(nullptr);
+#  ifdef _LIBCPP_CXX03_LANG
+    return static_cast<__begin_node_pointer>(__next_);
+#  else
+    if constexpr (std::is_pointer<__begin_node_pointer>::value) {
+      return static_cast<__begin_node_pointer>(__next_);
+    } else {
+      return __next_ ? __begin_node_pointer::pointer_to(*static_cast<__forward_begin_node*>(std::addressof(*__next_)))
+                     : static_cast<__begin_node_pointer>(nullptr);
+    }
+#  endif
   }
 };
 
@@ -359,6 +376,7 @@ template <class _NodePtr>
 class __forward_list_iterator {
   typedef __forward_node_traits<_NodePtr> __traits;
   typedef typename __traits::__node_type __node_type;
+  typedef typename __traits::__begin_node __begin_node_type;
   typedef typename __traits::__node_pointer __node_pointer;
   typedef typename __traits::__begin_node_pointer __begin_node_pointer;
   typedef typename __traits::__void_pointer __void_pointer;
@@ -367,9 +385,17 @@ class __forward_list_iterator {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-    return __ptr_ ? pointer_traits<__node_pointer>::pointer_to(
-                        const_cast<__node_type&>(static_cast<const __node_type&>(*__ptr_)))
-                  : static_cast<__node_pointer>(nullptr);
+#  ifdef _LIBCPP_CXX03_LANG
+    return static_cast<__node_pointer>(__ptr_);
+#  else
+    if constexpr (std::is_pointer<__node_pointer>::value) {
+      return static_cast<__node_pointer>(__ptr_);
+    } else {
+      return __ptr_ ? __node_pointer::pointer_to(
+                          *static_cast<__node_type*>(const_cast<__begin_node_type*>(std::addressof(*__ptr_))))
+                    : static_cast<__node_pointer>(nullptr);
+    }
+#  endif
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(nullptr_t) _NOEXCEPT
@@ -429,6 +455,7 @@ class __forward_list_const_iterator {
 
   typedef __forward_node_traits<_NodePtr> __traits;
   typedef typename __traits::__node_type __node_type;
+  typedef typename __traits::__begin_node __begin_node_type;
   typedef typename __traits::__node_pointer __node_pointer;
   typedef typename __traits::__begin_node_pointer __begin_node_pointer;
   typedef typename __traits::__void_pointer __void_pointer;
@@ -437,9 +464,17 @@ class __forward_list_const_iterator {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-    return __ptr_ ? pointer_traits<__node_pointer>::pointer_to(
-                        const_cast<__node_type&>(static_cast<const __node_type&>(*__ptr_)))
-                  : static_cast<__node_pointer>(nullptr);
+#  ifdef _LIBCPP_CXX03_LANG
+    return static_cast<__node_pointer>(__ptr_);
+#  else
+    if constexpr (std::is_pointer<__node_pointer>::value) {
+      return static_cast<__node_pointer>(__ptr_);
+    } else {
+      return __ptr_ ? __node_pointer::pointer_to(
+                          *static_cast<__node_type*>(const_cast<__begin_node_type*>(std::addressof(*__ptr_))))
+                    : static_cast<__node_pointer>(nullptr);
+    }
+#  endif
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(nullptr_t) _NOEXCEPT
@@ -512,10 +547,27 @@ protected:
   _LIBCPP_COMPRESSED_PAIR(__begin_node, __before_begin_, __node_allocator, __alloc_);
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __before_begin() _NOEXCEPT {
+#  ifdef _LIBCPP_CXX03_LANG
     return pointer_traits<__begin_node_pointer>::pointer_to(__before_begin_);
+#  else
+    if constexpr (std::is_pointer<__begin_node_pointer>::value) {
+      return std::addressof(__before_begin_);
+    } else {
+      return __begin_node_pointer::pointer_to(*std::addressof(__before_begin_));
+    }
+#  endif
   }
+
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __before_begin() const _NOEXCEPT {
+#  ifdef _LIBCPP_CXX03_LANG
     return pointer_traits<__begin_node_pointer>::pointer_to(const_cast<__begin_node&>(__before_begin_));
+#  else
+    if constexpr (std::is_pointer<__begin_node_pointer>::value) {
+      return const_cast<__begin_node*>(std::addressof(__before_begin_));
+    } else {
+      return __begin_node_pointer::pointer_to(*const_cast<__begin_node*>(std::addressof(__before_begin_)));
+    }
+#  endif
   }
 
   typedef __forward_list_iterator<__node_pointer> iterator;

>From 9787e279bcba58e718823e29c1b68d36cba5920e Mon Sep 17 00:00:00 2001
From: Peng Liu <winner245 at hotmail.com>
Date: Tue, 4 Mar 2025 10:18:30 -0500
Subject: [PATCH 4/7] Revert to libc++ pointer_traits::pointer_to with
 necessary cast

---
 libcxx/include/forward_list | 70 ++++++-------------------------------
 1 file changed, 11 insertions(+), 59 deletions(-)

diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index d0622ba392a3c..49ae514b7d04d 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -296,16 +296,8 @@ struct __forward_node_traits {
 #  endif
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI static __begin_node_pointer __as_iter_node(__node_pointer __p) {
-#  ifdef _LIBCPP_CXX03_LANG
-    return static_cast<__begin_node_pointer>(__p);
-#  else
-    if constexpr (std::is_pointer<__begin_node_pointer>::value) {
-      return static_cast<__begin_node_pointer>(__p);
-    } else {
-      return __p ? __begin_node_pointer::pointer_to(*static_cast<__begin_node*>(std::addressof(*__p)))
-                 : static_cast<__begin_node_pointer>(nullptr);
-    }
-#  endif
+    return __p ? pointer_traits<__begin_node_pointer>::pointer_to(*static_cast<__begin_node*>(std::addressof(*__p)))
+               : static_cast<__begin_node_pointer>(nullptr);
   }
 };
 
@@ -320,16 +312,9 @@ struct __forward_begin_node {
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_begin_node(pointer __n) : __next_(__n) {}
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __next_as_begin() const {
-#  ifdef _LIBCPP_CXX03_LANG
-    return static_cast<__begin_node_pointer>(__next_);
-#  else
-    if constexpr (std::is_pointer<__begin_node_pointer>::value) {
-      return static_cast<__begin_node_pointer>(__next_);
-    } else {
-      return __next_ ? __begin_node_pointer::pointer_to(*static_cast<__forward_begin_node*>(std::addressof(*__next_)))
-                     : static_cast<__begin_node_pointer>(nullptr);
-    }
-#  endif
+    return __next_ ? pointer_traits<__begin_node_pointer>::pointer_to(
+                         *static_cast<__forward_begin_node*>(std::addressof(*__next_)))
+                   : static_cast<__begin_node_pointer>(nullptr);
   }
 };
 
@@ -385,17 +370,8 @@ class __forward_list_iterator {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-#  ifdef _LIBCPP_CXX03_LANG
-    return static_cast<__node_pointer>(__ptr_);
-#  else
-    if constexpr (std::is_pointer<__node_pointer>::value) {
-      return static_cast<__node_pointer>(__ptr_);
-    } else {
-      return __ptr_ ? __node_pointer::pointer_to(
-                          *static_cast<__node_type*>(const_cast<__begin_node_type*>(std::addressof(*__ptr_))))
-                    : static_cast<__node_pointer>(nullptr);
-    }
-#  endif
+    return __ptr_ ? pointer_traits<__node_pointer>::pointer_to(*static_cast<__node_type*>(std::addressof(*__ptr_)))
+                  : static_cast<__node_pointer>(nullptr);
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(nullptr_t) _NOEXCEPT
@@ -464,17 +440,8 @@ class __forward_list_const_iterator {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-#  ifdef _LIBCPP_CXX03_LANG
-    return static_cast<__node_pointer>(__ptr_);
-#  else
-    if constexpr (std::is_pointer<__node_pointer>::value) {
-      return static_cast<__node_pointer>(__ptr_);
-    } else {
-      return __ptr_ ? __node_pointer::pointer_to(
-                          *static_cast<__node_type*>(const_cast<__begin_node_type*>(std::addressof(*__ptr_))))
-                    : static_cast<__node_pointer>(nullptr);
-    }
-#  endif
+    return __ptr_ ? pointer_traits<__node_pointer>::pointer_to(*static_cast<__node_type*>(std::addressof(*__ptr_)))
+                  : static_cast<__node_pointer>(nullptr);
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(nullptr_t) _NOEXCEPT
@@ -547,27 +514,12 @@ protected:
   _LIBCPP_COMPRESSED_PAIR(__begin_node, __before_begin_, __node_allocator, __alloc_);
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __before_begin() _NOEXCEPT {
-#  ifdef _LIBCPP_CXX03_LANG
     return pointer_traits<__begin_node_pointer>::pointer_to(__before_begin_);
-#  else
-    if constexpr (std::is_pointer<__begin_node_pointer>::value) {
-      return std::addressof(__before_begin_);
-    } else {
-      return __begin_node_pointer::pointer_to(*std::addressof(__before_begin_));
-    }
-#  endif
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __before_begin() const _NOEXCEPT {
-#  ifdef _LIBCPP_CXX03_LANG
-    return pointer_traits<__begin_node_pointer>::pointer_to(const_cast<__begin_node&>(__before_begin_));
-#  else
-    if constexpr (std::is_pointer<__begin_node_pointer>::value) {
-      return const_cast<__begin_node*>(std::addressof(__before_begin_));
-    } else {
-      return __begin_node_pointer::pointer_to(*const_cast<__begin_node*>(std::addressof(__before_begin_)));
-    }
-#  endif
+    return pointer_traits<__begin_node_pointer>::pointer_to(
+        *const_cast<__begin_node*>(std::addressof(__before_begin_)));
   }
 
   typedef __forward_list_iterator<__node_pointer> iterator;

>From a02e294dad9af4881b07378e4ad7db8ff64a34ca Mon Sep 17 00:00:00 2001
From: Peng Liu <winner245 at hotmail.com>
Date: Tue, 4 Mar 2025 12:49:09 -0500
Subject: [PATCH 5/7] Add __static_fancy_pointer_cast

---
 libcxx/include/__memory/pointer_traits.h | 12 ++++++++++--
 libcxx/include/forward_list              | 13 ++++---------
 2 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/libcxx/include/__memory/pointer_traits.h b/libcxx/include/__memory/pointer_traits.h
index 4ba50898fb37d..3a7de082e8821 100644
--- a/libcxx/include/__memory/pointer_traits.h
+++ b/libcxx/include/__memory/pointer_traits.h
@@ -245,8 +245,8 @@ inline _LIBCPP_HIDE_FROM_ABI constexpr auto to_address(_Tp* __p) noexcept {
 }
 
 template <class _Pointer>
-inline _LIBCPP_HIDE_FROM_ABI constexpr auto
-to_address(const _Pointer& __p) noexcept -> decltype(std::__to_address(__p)) {
+inline _LIBCPP_HIDE_FROM_ABI constexpr auto to_address(const _Pointer& __p) noexcept
+    -> decltype(std::__to_address(__p)) {
   return std::__to_address(__p);
 }
 #endif
@@ -302,6 +302,14 @@ concept __resettable_smart_pointer_with_args = requires(_Smart __s, _Pointer __p
 
 #endif
 
+template <class _PtrTo, class _PtrFrom>
+_LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI _PtrTo __static_fancy_pointer_cast(const _PtrFrom& __p) {
+  using __ptr_traits   = pointer_traits<_PtrTo>;
+  using __element_type = typename __ptr_traits::element_type;
+  return __p ? __ptr_traits::pointer_to(*static_cast<__element_type*>(std::addressof(*__p)))
+             : static_cast<_PtrTo>(nullptr);
+}
+
 _LIBCPP_END_NAMESPACE_STD
 
 _LIBCPP_POP_MACROS
diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index 49ae514b7d04d..704ea15907c46 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -296,8 +296,7 @@ struct __forward_node_traits {
 #  endif
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI static __begin_node_pointer __as_iter_node(__node_pointer __p) {
-    return __p ? pointer_traits<__begin_node_pointer>::pointer_to(*static_cast<__begin_node*>(std::addressof(*__p)))
-               : static_cast<__begin_node_pointer>(nullptr);
+    return __static_fancy_pointer_cast<__begin_node_pointer>(__p);
   }
 };
 
@@ -312,9 +311,7 @@ struct __forward_begin_node {
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_begin_node(pointer __n) : __next_(__n) {}
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __next_as_begin() const {
-    return __next_ ? pointer_traits<__begin_node_pointer>::pointer_to(
-                         *static_cast<__forward_begin_node*>(std::addressof(*__next_)))
-                   : static_cast<__begin_node_pointer>(nullptr);
+    return __static_fancy_pointer_cast<__begin_node_pointer>(__next_);
   }
 };
 
@@ -370,8 +367,7 @@ class __forward_list_iterator {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-    return __ptr_ ? pointer_traits<__node_pointer>::pointer_to(*static_cast<__node_type*>(std::addressof(*__ptr_)))
-                  : static_cast<__node_pointer>(nullptr);
+    return __static_fancy_pointer_cast<__node_pointer>(__ptr_);
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(nullptr_t) _NOEXCEPT
@@ -440,8 +436,7 @@ class __forward_list_const_iterator {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-    return __ptr_ ? pointer_traits<__node_pointer>::pointer_to(*static_cast<__node_type*>(std::addressof(*__ptr_)))
-                  : static_cast<__node_pointer>(nullptr);
+    return __static_fancy_pointer_cast<__node_pointer>(__ptr_);
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(nullptr_t) _NOEXCEPT

>From 9b60d59c351b1a3b05ce1c72737c1982d6e7c0a2 Mon Sep 17 00:00:00 2001
From: Peng Liu <winner245 at hotmail.com>
Date: Tue, 4 Mar 2025 13:26:43 -0500
Subject: [PATCH 6/7] Fix ADL call

---
 libcxx/include/forward_list               |  8 ++++----
 libcxx/test/support/counting_predicates.h | 24 ++++-------------------
 2 files changed, 8 insertions(+), 24 deletions(-)

diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list
index 704ea15907c46..123565a52be01 100644
--- a/libcxx/include/forward_list
+++ b/libcxx/include/forward_list
@@ -296,7 +296,7 @@ struct __forward_node_traits {
 #  endif
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI static __begin_node_pointer __as_iter_node(__node_pointer __p) {
-    return __static_fancy_pointer_cast<__begin_node_pointer>(__p);
+    return std::__static_fancy_pointer_cast<__begin_node_pointer>(__p);
   }
 };
 
@@ -311,7 +311,7 @@ struct __forward_begin_node {
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_begin_node(pointer __n) : __next_(__n) {}
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __next_as_begin() const {
-    return __static_fancy_pointer_cast<__begin_node_pointer>(__next_);
+    return std::__static_fancy_pointer_cast<__begin_node_pointer>(__next_);
   }
 };
 
@@ -367,7 +367,7 @@ class __forward_list_iterator {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-    return __static_fancy_pointer_cast<__node_pointer>(__ptr_);
+    return std::__static_fancy_pointer_cast<__node_pointer>(__ptr_);
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_iterator(nullptr_t) _NOEXCEPT
@@ -436,7 +436,7 @@ class __forward_list_const_iterator {
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __begin_node_pointer __get_begin() const { return __ptr_; }
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI __node_pointer __get_unsafe_node_pointer() const {
-    return __static_fancy_pointer_cast<__node_pointer>(__ptr_);
+    return std::__static_fancy_pointer_cast<__node_pointer>(__ptr_);
   }
 
   _LIBCPP_CONSTEXPR_SINCE_CXX26 _LIBCPP_HIDE_FROM_ABI explicit __forward_list_const_iterator(nullptr_t) _NOEXCEPT
diff --git a/libcxx/test/support/counting_predicates.h b/libcxx/test/support/counting_predicates.h
index 514e70ec9c736..8fb2db1af70d3 100644
--- a/libcxx/test/support/counting_predicates.h
+++ b/libcxx/test/support/counting_predicates.h
@@ -43,33 +43,17 @@ struct binary_counting_predicate {
   typedef Arg2 second_argument_type;
   typedef bool result_type;
 
-<<<<<<< HEAD
-    TEST_CONSTEXPR binary_counting_predicate(Predicate p) : p_(p), count_(0) {}
-    TEST_CONSTEXPR_CXX14 bool operator()(const Arg1& a1, const Arg2& a2) const {
-      ++count_;
-      return p_(a1, a2);
-    }
-    TEST_CONSTEXPR std::size_t count() const { return count_; }
-    TEST_CONSTEXPR_CXX14 void reset() { count_ = 0; }
-
-  private:
-    Predicate p_;
-    mutable std::size_t count_;
-=======
-  binary_counting_predicate(Predicate p) : p_(p), count_(0) {}
-  ~binary_counting_predicate() {}
-
-  bool operator()(const Arg1& a1, const Arg2& a2) const {
+  TEST_CONSTEXPR binary_counting_predicate(Predicate p) : p_(p), count_(0) {}
+  TEST_CONSTEXPR_CXX14 bool operator()(const Arg1& a1, const Arg2& a2) const {
     ++count_;
     return p_(a1, a2);
   }
-  std::size_t count() const { return count_; }
-  void reset() { count_ = 0; }
+  TEST_CONSTEXPR std::size_t count() const { return count_; }
+  TEST_CONSTEXPR_CXX14 void reset() { count_ = 0; }
 
 private:
   Predicate p_;
   mutable std::size_t count_;
->>>>>>> 577d8638ae21 (Make forward_list constexpr as part of P3372R3)
 };
 
 #if TEST_STD_VER > 14

>From 7dfee3d499f362c199d2405ad8b4f43815a1e46f Mon Sep 17 00:00:00 2001
From: Peng Liu <winner245 at hotmail.com>
Date: Thu, 8 May 2025 11:28:19 -0400
Subject: [PATCH 7/7] Rebase onto main to resolve conflicts

---
 libcxx/docs/FeatureTestMacroTable.rst         |    4 +-
 .../forward_list.version.compile.pass.cpp     |   27 +
 .../version.version.compile.pass.cpp          | 6675 +----------------
 3 files changed, 54 insertions(+), 6652 deletions(-)

diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index aac4ee22989a1..3e6fd643f620c 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -418,11 +418,9 @@ Status
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_bitset``                                       ``202306L``
     ---------------------------------------------------------- -----------------
-<<<<<<< HEAD
     ``__cpp_lib_constexpr_algorithms``                         ``202306L``
-=======
+    ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_forward_list``                       ``202502L``
->>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
     ---------------------------------------------------------- -----------------
     ``__cpp_lib_constexpr_new``                                ``202406L``
     ---------------------------------------------------------- -----------------
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 31b3e900aabcd..05f903dccafe7 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
@@ -24,6 +24,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list 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
@@ -54,6 +58,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list 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
@@ -87,6 +95,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list 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
@@ -126,6 +138,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list 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
@@ -171,6 +187,10 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list 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
@@ -219,6 +239,13 @@
 #    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
 #  endif
 
+#  ifndef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should be defined in c++26"
+#  endif
+#  if __cpp_lib_constexpr_forward_list != 202502L
+#    error "__cpp_lib_constexpr_forward_list should have the value 202502L in c++26"
+#  endif
+
 #  ifndef __cpp_lib_containers_ranges
 #    error "__cpp_lib_containers_ranges should be defined in c++26"
 #  endif
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 a8774e6ac76e1..a13edacd1e46a 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
@@ -13,248 +13,7 @@
 
 // Test the feature test macros defined by <version>
 
-<<<<<<< HEAD
 // clang-format off
-=======
-/*  Constant                                                Value
-    __cpp_lib_adaptor_iterator_pair_constructor             202106L [C++23]
-    __cpp_lib_addressof_constexpr                           201603L [C++17]
-    __cpp_lib_allocate_at_least                             202302L [C++23]
-    __cpp_lib_allocator_traits_is_always_equal              201411L [C++17]
-    __cpp_lib_any                                           201606L [C++17]
-    __cpp_lib_apply                                         201603L [C++17]
-    __cpp_lib_array_constexpr                               201603L [C++17]
-                                                            201811L [C++20]
-    __cpp_lib_as_const                                      201510L [C++17]
-    __cpp_lib_associative_heterogeneous_erasure             202110L [C++23]
-    __cpp_lib_associative_heterogeneous_insertion           202306L [C++26]
-    __cpp_lib_assume_aligned                                201811L [C++20]
-    __cpp_lib_atomic_flag_test                              201907L [C++20]
-    __cpp_lib_atomic_float                                  201711L [C++20]
-    __cpp_lib_atomic_is_always_lock_free                    201603L [C++17]
-    __cpp_lib_atomic_lock_free_type_aliases                 201907L [C++20]
-    __cpp_lib_atomic_min_max                                202403L [C++26]
-    __cpp_lib_atomic_ref                                    201806L [C++20]
-    __cpp_lib_atomic_shared_ptr                             201711L [C++20]
-    __cpp_lib_atomic_value_initialization                   201911L [C++20]
-    __cpp_lib_atomic_wait                                   201907L [C++20]
-    __cpp_lib_barrier                                       201907L [C++20]
-    __cpp_lib_bind_back                                     202202L [C++23]
-    __cpp_lib_bind_front                                    201907L [C++20]
-                                                            202306L [C++26]
-    __cpp_lib_bit_cast                                      201806L [C++20]
-    __cpp_lib_bitops                                        201907L [C++20]
-    __cpp_lib_bitset                                        202306L [C++26]
-    __cpp_lib_bool_constant                                 201505L [C++17]
-    __cpp_lib_bounded_array_traits                          201902L [C++20]
-    __cpp_lib_boyer_moore_searcher                          201603L [C++17]
-    __cpp_lib_byte                                          201603L [C++17]
-    __cpp_lib_byteswap                                      202110L [C++23]
-    __cpp_lib_char8_t                                       201907L [C++20]
-    __cpp_lib_chrono                                        201611L [C++17]
-    __cpp_lib_chrono_udls                                   201304L [C++14]
-    __cpp_lib_clamp                                         201603L [C++17]
-    __cpp_lib_complex_udls                                  201309L [C++14]
-    __cpp_lib_concepts                                      202002L [C++20]
-    __cpp_lib_constexpr_algorithms                          201806L [C++20]
-    __cpp_lib_constexpr_bitset                              202207L [C++23]
-    __cpp_lib_constexpr_charconv                            202207L [C++23]
-    __cpp_lib_constexpr_cmath                               202202L [C++23]
-    __cpp_lib_constexpr_complex                             201711L [C++20]
-    __cpp_lib_constexpr_dynamic_alloc                       201907L [C++20]
-    __cpp_lib_constexpr_forward_list                        202502L [C++26]
-    __cpp_lib_constexpr_functional                          201907L [C++20]
-    __cpp_lib_constexpr_iterator                            201811L [C++20]
-    __cpp_lib_constexpr_memory                              201811L [C++20]
-                                                            202202L [C++23]
-    __cpp_lib_constexpr_new                                 202406L [C++26]
-    __cpp_lib_constexpr_numeric                             201911L [C++20]
-    __cpp_lib_constexpr_string                              201907L [C++20]
-    __cpp_lib_constexpr_string_view                         201811L [C++20]
-    __cpp_lib_constexpr_tuple                               201811L [C++20]
-    __cpp_lib_constexpr_typeinfo                            202106L [C++23]
-    __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]
-    __cpp_lib_default_template_type_for_algorithm_values    202403L [C++26]
-    __cpp_lib_destroying_delete                             201806L [C++20]
-    __cpp_lib_enable_shared_from_this                       201603L [C++17]
-    __cpp_lib_endian                                        201907L [C++20]
-    __cpp_lib_erase_if                                      202002L [C++20]
-    __cpp_lib_exchange_function                             201304L [C++14]
-    __cpp_lib_execution                                     201603L [C++17]
-                                                            201902L [C++20]
-    __cpp_lib_expected                                      202211L [C++23]
-    __cpp_lib_filesystem                                    201703L [C++17]
-    __cpp_lib_flat_map                                      202207L [C++23]
-    __cpp_lib_flat_set                                      202207L [C++23]
-    __cpp_lib_format                                        202110L [C++20]
-    __cpp_lib_format_path                                   202403L [C++26]
-    __cpp_lib_format_ranges                                 202207L [C++23]
-    __cpp_lib_format_uchar                                  202311L [C++20]
-    __cpp_lib_formatters                                    202302L [C++23]
-    __cpp_lib_forward_like                                  202207L [C++23]
-    __cpp_lib_freestanding_algorithm                        202311L [C++26]
-    __cpp_lib_freestanding_array                            202311L [C++26]
-    __cpp_lib_freestanding_cstring                          202306L [C++26]
-    __cpp_lib_freestanding_expected                         202311L [C++26]
-    __cpp_lib_freestanding_mdspan                           202311L [C++26]
-    __cpp_lib_freestanding_optional                         202311L [C++26]
-    __cpp_lib_freestanding_string_view                      202311L [C++26]
-    __cpp_lib_freestanding_variant                          202311L [C++26]
-    __cpp_lib_fstream_native_handle                         202306L [C++26]
-    __cpp_lib_function_ref                                  202306L [C++26]
-    __cpp_lib_gcd_lcm                                       201606L [C++17]
-    __cpp_lib_generate_random                               202403L [C++26]
-    __cpp_lib_generic_associative_lookup                    201304L [C++14]
-    __cpp_lib_generic_unordered_lookup                      201811L [C++20]
-    __cpp_lib_hardware_interference_size                    201703L [C++17]
-    __cpp_lib_has_unique_object_representations             201606L [C++17]
-    __cpp_lib_hazard_pointer                                202306L [C++26]
-    __cpp_lib_hypot                                         201603L [C++17]
-    __cpp_lib_incomplete_container_elements                 201505L [C++17]
-    __cpp_lib_inplace_vector                                202406L [C++26]
-    __cpp_lib_int_pow2                                      202002L [C++20]
-    __cpp_lib_integer_comparison_functions                  202002L [C++20]
-    __cpp_lib_integer_sequence                              201304L [C++14]
-    __cpp_lib_integral_constant_callable                    201304L [C++14]
-    __cpp_lib_interpolate                                   201902L [C++20]
-    __cpp_lib_invoke                                        201411L [C++17]
-    __cpp_lib_invoke_r                                      202106L [C++23]
-    __cpp_lib_ios_noreplace                                 202207L [C++23]
-    __cpp_lib_is_aggregate                                  201703L [C++17]
-    __cpp_lib_is_constant_evaluated                         201811L [C++20]
-    __cpp_lib_is_final                                      201402L [C++14]
-    __cpp_lib_is_implicit_lifetime                          202302L [C++23]
-    __cpp_lib_is_invocable                                  201703L [C++17]
-    __cpp_lib_is_layout_compatible                          201907L [C++20]
-    __cpp_lib_is_nothrow_convertible                        201806L [C++20]
-    __cpp_lib_is_null_pointer                               201309L [C++14]
-    __cpp_lib_is_pointer_interconvertible                   201907L [C++20]
-    __cpp_lib_is_scoped_enum                                202011L [C++23]
-    __cpp_lib_is_swappable                                  201603L [C++17]
-    __cpp_lib_is_virtual_base_of                            202406L [C++26]
-    __cpp_lib_is_within_lifetime                            202306L [C++26]
-    __cpp_lib_jthread                                       201911L [C++20]
-    __cpp_lib_latch                                         201907L [C++20]
-    __cpp_lib_launder                                       201606L [C++17]
-    __cpp_lib_linalg                                        202311L [C++26]
-    __cpp_lib_list_remove_return_type                       201806L [C++20]
-    __cpp_lib_logical_traits                                201510L [C++17]
-    __cpp_lib_make_from_tuple                               201606L [C++17]
-    __cpp_lib_make_reverse_iterator                         201402L [C++14]
-    __cpp_lib_make_unique                                   201304L [C++14]
-    __cpp_lib_map_try_emplace                               201411L [C++17]
-    __cpp_lib_math_constants                                201907L [C++20]
-    __cpp_lib_math_special_functions                        201603L [C++17]
-    __cpp_lib_mdspan                                        202207L [C++23]
-                                                            202406L [C++26]
-    __cpp_lib_memory_resource                               201603L [C++17]
-    __cpp_lib_modules                                       202207L [C++23]
-    __cpp_lib_move_iterator_concept                         202207L [C++20]
-    __cpp_lib_move_only_function                            202110L [C++23]
-    __cpp_lib_node_extract                                  201606L [C++17]
-    __cpp_lib_nonmember_container_access                    201411L [C++17]
-    __cpp_lib_not_fn                                        201603L [C++17]
-                                                            202306L [C++26]
-    __cpp_lib_null_iterators                                201304L [C++14]
-    __cpp_lib_optional                                      201606L [C++17]
-                                                            202106L [C++20]
-                                                            202110L [C++23]
-    __cpp_lib_optional_range_support                        202406L [C++26]
-    __cpp_lib_out_ptr                                       202106L [C++23]
-                                                            202311L [C++26]
-    __cpp_lib_parallel_algorithm                            201603L [C++17]
-    __cpp_lib_philox_engine                                 202406L [C++26]
-    __cpp_lib_polymorphic_allocator                         201902L [C++20]
-    __cpp_lib_print                                         202207L [C++23]
-    __cpp_lib_quoted_string_io                              201304L [C++14]
-    __cpp_lib_ranges                                        202110L [C++20]
-                                                            202406L [C++23]
-    __cpp_lib_ranges_as_const                               202207L [C++23]
-    __cpp_lib_ranges_as_rvalue                              202207L [C++23]
-    __cpp_lib_ranges_chunk                                  202202L [C++23]
-    __cpp_lib_ranges_chunk_by                               202202L [C++23]
-    __cpp_lib_ranges_concat                                 202403L [C++26]
-    __cpp_lib_ranges_contains                               202207L [C++23]
-    __cpp_lib_ranges_find_last                              202207L [C++23]
-    __cpp_lib_ranges_iota                                   202202L [C++23]
-    __cpp_lib_ranges_join_with                              202202L [C++23]
-    __cpp_lib_ranges_repeat                                 202207L [C++23]
-    __cpp_lib_ranges_slide                                  202202L [C++23]
-    __cpp_lib_ranges_starts_ends_with                       202106L [C++23]
-    __cpp_lib_ranges_to_container                           202202L [C++23]
-    __cpp_lib_ranges_zip                                    202110L [C++23]
-    __cpp_lib_ratio                                         202306L [C++26]
-    __cpp_lib_raw_memory_algorithms                         201606L [C++17]
-    __cpp_lib_rcu                                           202306L [C++26]
-    __cpp_lib_reference_from_temporary                      202202L [C++23]
-    __cpp_lib_reference_wrapper                             202403L [C++26]
-    __cpp_lib_remove_cvref                                  201711L [C++20]
-    __cpp_lib_result_of_sfinae                              201210L [C++14]
-    __cpp_lib_robust_nonmodifying_seq_ops                   201304L [C++14]
-    __cpp_lib_sample                                        201603L [C++17]
-    __cpp_lib_saturation_arithmetic                         202311L [C++26]
-    __cpp_lib_scoped_lock                                   201703L [C++17]
-    __cpp_lib_semaphore                                     201907L [C++20]
-    __cpp_lib_senders                                       202406L [C++26]
-    __cpp_lib_shared_mutex                                  201505L [C++17]
-    __cpp_lib_shared_ptr_arrays                             201611L [C++17]
-                                                            201707L [C++20]
-    __cpp_lib_shared_ptr_weak_type                          201606L [C++17]
-    __cpp_lib_shared_timed_mutex                            201402L [C++14]
-    __cpp_lib_shift                                         201806L [C++20]
-    __cpp_lib_smart_ptr_for_overwrite                       202002L [C++20]
-    __cpp_lib_smart_ptr_owner_equality                      202306L [C++26]
-    __cpp_lib_source_location                               201907L [C++20]
-    __cpp_lib_span                                          202002L [C++20]
-    __cpp_lib_span_at                                       202311L [C++26]
-    __cpp_lib_span_initializer_list                         202311L [C++26]
-    __cpp_lib_spanstream                                    202106L [C++23]
-    __cpp_lib_ssize                                         201902L [C++20]
-    __cpp_lib_sstream_from_string_view                      202306L [C++26]
-    __cpp_lib_stacktrace                                    202011L [C++23]
-    __cpp_lib_starts_ends_with                              201711L [C++20]
-    __cpp_lib_stdatomic_h                                   202011L [C++23]
-    __cpp_lib_string_contains                               202011L [C++23]
-    __cpp_lib_string_resize_and_overwrite                   202110L [C++23]
-    __cpp_lib_string_udls                                   201304L [C++14]
-    __cpp_lib_string_view                                   201606L [C++17]
-                                                            201803L [C++20]
-                                                            202403L [C++26]
-    __cpp_lib_submdspan                                     202306L [C++26]
-    __cpp_lib_syncbuf                                       201803L [C++20]
-    __cpp_lib_text_encoding                                 202306L [C++26]
-    __cpp_lib_three_way_comparison                          201907L [C++20]
-    __cpp_lib_to_address                                    201711L [C++20]
-    __cpp_lib_to_array                                      201907L [C++20]
-    __cpp_lib_to_chars                                      201611L [C++17]
-                                                            202306L [C++26]
-    __cpp_lib_to_string                                     202306L [C++26]
-    __cpp_lib_to_underlying                                 202102L [C++23]
-    __cpp_lib_transformation_trait_aliases                  201304L [C++14]
-    __cpp_lib_transparent_operators                         201210L [C++14]
-                                                            201510L [C++17]
-    __cpp_lib_tuple_element_t                               201402L [C++14]
-    __cpp_lib_tuple_like                                    202207L [C++23]
-                                                            202311L [C++26]
-    __cpp_lib_tuples_by_type                                201304L [C++14]
-    __cpp_lib_type_identity                                 201806L [C++20]
-    __cpp_lib_type_trait_variable_templates                 201510L [C++17]
-    __cpp_lib_uncaught_exceptions                           201411L [C++17]
-    __cpp_lib_unordered_map_try_emplace                     201411L [C++17]
-    __cpp_lib_unreachable                                   202202L [C++23]
-    __cpp_lib_unwrap_ref                                    201811L [C++20]
-    __cpp_lib_variant                                       202102L [C++17]
-                                                            202106L [C++20]
-                                                            202306L [C++26]
-    __cpp_lib_void_t                                        201411L [C++17]
-*/
->>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
 
 #include <version>
 #include "test_macros.h"
@@ -433,19 +192,13 @@
 #    error "__cpp_lib_constexpr_complex should not be defined before c++20"
 #  endif
 
-<<<<<<< HEAD
 #  ifdef __cpp_lib_constexpr_dynamic_alloc
 #    error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
 #  endif
-=======
-# ifdef __cpp_lib_constexpr_forward_list
-#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
-# endif
 
-# ifdef __cpp_lib_constexpr_functional
-#   error "__cpp_lib_constexpr_functional should not be defined before c++20"
-# endif
->>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+#  endif
 
 #  ifdef __cpp_lib_constexpr_functional
 #    error "__cpp_lib_constexpr_functional should not be defined before c++20"
@@ -1185,233 +938,9 @@
 #    error "__cpp_lib_array_constexpr should not be defined before c++17"
 #  endif
 
-<<<<<<< HEAD
 #  ifdef __cpp_lib_as_const
 #    error "__cpp_lib_as_const should not be defined before c++17"
 #  endif
-=======
-# ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_associative_heterogeneous_insertion
-#   error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_assume_aligned
-#   error "__cpp_lib_assume_aligned should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_flag_test
-#   error "__cpp_lib_atomic_flag_test should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_float
-#   error "__cpp_lib_atomic_float should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_is_always_lock_free
-#   error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17"
-# endif
-
-# ifdef __cpp_lib_atomic_lock_free_type_aliases
-#   error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_min_max
-#   error "__cpp_lib_atomic_min_max should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_atomic_ref
-#   error "__cpp_lib_atomic_ref should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_shared_ptr
-#   error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_value_initialization
-#   error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_wait
-#   error "__cpp_lib_atomic_wait should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_barrier
-#   error "__cpp_lib_barrier should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_bind_front
-#   error "__cpp_lib_bind_front should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_bit_cast
-#   error "__cpp_lib_bit_cast should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_bitops
-#   error "__cpp_lib_bitops should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_bitset
-#   error "__cpp_lib_bitset should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_bool_constant
-#   error "__cpp_lib_bool_constant should not be defined before c++17"
-# endif
-
-# ifdef __cpp_lib_bounded_array_traits
-#   error "__cpp_lib_bounded_array_traits should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_boyer_moore_searcher
-#   error "__cpp_lib_boyer_moore_searcher should not be defined before c++17"
-# endif
-
-# ifdef __cpp_lib_byte
-#   error "__cpp_lib_byte should not be defined before c++17"
-# endif
-
-# ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_char8_t
-#   error "__cpp_lib_char8_t should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_chrono
-#   error "__cpp_lib_chrono should not be defined before c++17"
-# endif
-
-# ifndef __cpp_lib_chrono_udls
-#   error "__cpp_lib_chrono_udls should be defined in c++14"
-# endif
-# if __cpp_lib_chrono_udls != 201304L
-#   error "__cpp_lib_chrono_udls should have the value 201304L in c++14"
-# endif
-
-# ifdef __cpp_lib_clamp
-#   error "__cpp_lib_clamp should not be defined before c++17"
-# endif
-
-# ifndef __cpp_lib_complex_udls
-#   error "__cpp_lib_complex_udls should be defined in c++14"
-# endif
-# if __cpp_lib_complex_udls != 201309L
-#   error "__cpp_lib_complex_udls should have the value 201309L in c++14"
-# endif
-
-# ifdef __cpp_lib_concepts
-#   error "__cpp_lib_concepts should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_algorithms
-#   error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_complex
-#   error "__cpp_lib_constexpr_complex should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_dynamic_alloc
-#   error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_forward_list
-#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_constexpr_functional
-#   error "__cpp_lib_constexpr_functional should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_iterator
-#   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_memory
-#   error "__cpp_lib_constexpr_memory should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_new
-#   error "__cpp_lib_constexpr_new should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_constexpr_numeric
-#   error "__cpp_lib_constexpr_numeric should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_string
-#   error "__cpp_lib_constexpr_string should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_string_view
-#   error "__cpp_lib_constexpr_string_view should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_tuple
-#   error "__cpp_lib_constexpr_tuple should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_utility
-#   error "__cpp_lib_constexpr_utility should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_vector
-#   error "__cpp_lib_constexpr_vector should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constrained_equality
-#   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
-
-# ifdef __cpp_lib_coroutine
-#   error "__cpp_lib_coroutine should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_debugging
-#   error "__cpp_lib_debugging should not be defined before c++26"
-# 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
-
-# ifdef __cpp_lib_destroying_delete
-#   error "__cpp_lib_destroying_delete should not be defined before c++20"
-# endif
->>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
 
 #  ifdef __cpp_lib_associative_heterogeneous_erasure
 #    error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
@@ -1559,6 +1088,10 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_functional
 #    error "__cpp_lib_constexpr_functional should not be defined before c++20"
 #  endif
@@ -2331,7 +1864,6 @@
 
 #elif TEST_STD_VER == 17
 
-<<<<<<< HEAD
 #  ifdef __cpp_lib_adaptor_iterator_pair_constructor
 #    error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 #  endif
@@ -2550,6 +2082,10 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+#  endif
+
 #  ifdef __cpp_lib_constexpr_functional
 #    error "__cpp_lib_constexpr_functional should not be defined before c++20"
 #  endif
@@ -3780,6 +3316,10 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_functional
 #    error "__cpp_lib_constexpr_functional should be defined in c++20"
 #  endif
@@ -5232,6 +4772,10 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23"
 #  endif
 
+#  ifdef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_functional
 #    error "__cpp_lib_constexpr_functional should be defined in c++23"
 #  endif
@@ -6903,6 +6447,13 @@
 #    error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26"
 #  endif
 
+#  ifndef __cpp_lib_constexpr_forward_list
+#    error "__cpp_lib_constexpr_forward_list should be defined in c++26"
+#  endif
+#  if __cpp_lib_constexpr_forward_list != 202502L
+#    error "__cpp_lib_constexpr_forward_list should have the value 202502L in c++26"
+#  endif
+
 #  ifndef __cpp_lib_constexpr_functional
 #    error "__cpp_lib_constexpr_functional should be defined in c++26"
 #  endif
@@ -8518,6180 +8069,6 @@
 #  if __cpp_lib_void_t != 201411L
 #    error "__cpp_lib_void_t should have the value 201411L in c++26"
 #  endif
-=======
-# ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_addressof_constexpr
-#   error "__cpp_lib_addressof_constexpr should be defined in c++17"
-# endif
-# if __cpp_lib_addressof_constexpr != 201603L
-#   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17"
-# endif
-
-# ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17"
-# endif
-# if __cpp_lib_allocator_traits_is_always_equal != 201411L
-#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
-# endif
-
-# ifndef __cpp_lib_any
-#   error "__cpp_lib_any should be defined in c++17"
-# endif
-# if __cpp_lib_any != 201606L
-#   error "__cpp_lib_any should have the value 201606L in c++17"
-# endif
-
-# ifndef __cpp_lib_apply
-#   error "__cpp_lib_apply should be defined in c++17"
-# endif
-# if __cpp_lib_apply != 201603L
-#   error "__cpp_lib_apply should have the value 201603L in c++17"
-# endif
-
-# ifndef __cpp_lib_array_constexpr
-#   error "__cpp_lib_array_constexpr should be defined in c++17"
-# endif
-# if __cpp_lib_array_constexpr != 201603L
-#   error "__cpp_lib_array_constexpr should have the value 201603L in c++17"
-# endif
-
-# ifndef __cpp_lib_as_const
-#   error "__cpp_lib_as_const should be defined in c++17"
-# endif
-# if __cpp_lib_as_const != 201510L
-#   error "__cpp_lib_as_const should have the value 201510L in c++17"
-# endif
-
-# ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_associative_heterogeneous_insertion
-#   error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_assume_aligned
-#   error "__cpp_lib_assume_aligned should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_flag_test
-#   error "__cpp_lib_atomic_flag_test should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_float
-#   error "__cpp_lib_atomic_float should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_atomic_is_always_lock_free
-#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17"
-# endif
-# if __cpp_lib_atomic_is_always_lock_free != 201603L
-#   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17"
-# endif
-
-# ifdef __cpp_lib_atomic_lock_free_type_aliases
-#   error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_min_max
-#   error "__cpp_lib_atomic_min_max should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_atomic_ref
-#   error "__cpp_lib_atomic_ref should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_shared_ptr
-#   error "__cpp_lib_atomic_shared_ptr should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_value_initialization
-#   error "__cpp_lib_atomic_value_initialization should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_wait
-#   error "__cpp_lib_atomic_wait should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_barrier
-#   error "__cpp_lib_barrier should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_bind_front
-#   error "__cpp_lib_bind_front should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_bit_cast
-#   error "__cpp_lib_bit_cast should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_bitops
-#   error "__cpp_lib_bitops should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_bitset
-#   error "__cpp_lib_bitset should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_bool_constant
-#   error "__cpp_lib_bool_constant should be defined in c++17"
-# endif
-# if __cpp_lib_bool_constant != 201505L
-#   error "__cpp_lib_bool_constant should have the value 201505L in c++17"
-# endif
-
-# ifdef __cpp_lib_bounded_array_traits
-#   error "__cpp_lib_bounded_array_traits should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_boyer_moore_searcher
-#   error "__cpp_lib_boyer_moore_searcher should be defined in c++17"
-# endif
-# if __cpp_lib_boyer_moore_searcher != 201603L
-#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17"
-# endif
-
-# ifndef __cpp_lib_byte
-#   error "__cpp_lib_byte should be defined in c++17"
-# endif
-# if __cpp_lib_byte != 201603L
-#   error "__cpp_lib_byte should have the value 201603L in c++17"
-# endif
-
-# ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_char8_t
-#   error "__cpp_lib_char8_t should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_chrono
-#   error "__cpp_lib_chrono should be defined in c++17"
-# endif
-# if __cpp_lib_chrono != 201611L
-#   error "__cpp_lib_chrono should have the value 201611L in c++17"
-# endif
-
-# ifndef __cpp_lib_chrono_udls
-#   error "__cpp_lib_chrono_udls should be defined in c++17"
-# endif
-# if __cpp_lib_chrono_udls != 201304L
-#   error "__cpp_lib_chrono_udls should have the value 201304L in c++17"
-# endif
-
-# ifndef __cpp_lib_clamp
-#   error "__cpp_lib_clamp should be defined in c++17"
-# endif
-# if __cpp_lib_clamp != 201603L
-#   error "__cpp_lib_clamp should have the value 201603L in c++17"
-# endif
-
-# ifndef __cpp_lib_complex_udls
-#   error "__cpp_lib_complex_udls should be defined in c++17"
-# endif
-# if __cpp_lib_complex_udls != 201309L
-#   error "__cpp_lib_complex_udls should have the value 201309L in c++17"
-# endif
-
-# ifdef __cpp_lib_concepts
-#   error "__cpp_lib_concepts should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_algorithms
-#   error "__cpp_lib_constexpr_algorithms should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_complex
-#   error "__cpp_lib_constexpr_complex should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_dynamic_alloc
-#   error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_forward_list
-#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_constexpr_functional
-#   error "__cpp_lib_constexpr_functional should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_iterator
-#   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_memory
-#   error "__cpp_lib_constexpr_memory should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_new
-#   error "__cpp_lib_constexpr_new should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_constexpr_numeric
-#   error "__cpp_lib_constexpr_numeric should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_string
-#   error "__cpp_lib_constexpr_string should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_string_view
-#   error "__cpp_lib_constexpr_string_view should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_tuple
-#   error "__cpp_lib_constexpr_tuple should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_utility
-#   error "__cpp_lib_constexpr_utility should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_vector
-#   error "__cpp_lib_constexpr_vector should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_constrained_equality
-#   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
-
-# ifdef __cpp_lib_coroutine
-#   error "__cpp_lib_coroutine should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_debugging
-#   error "__cpp_lib_debugging should not be defined before c++26"
-# 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
-
-# ifdef __cpp_lib_destroying_delete
-#   error "__cpp_lib_destroying_delete should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_enable_shared_from_this
-#   error "__cpp_lib_enable_shared_from_this should be defined in c++17"
-# endif
-# if __cpp_lib_enable_shared_from_this != 201603L
-#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17"
-# endif
-
-# ifdef __cpp_lib_endian
-#   error "__cpp_lib_endian should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_exchange_function
-#   error "__cpp_lib_exchange_function should be defined in c++17"
-# endif
-# if __cpp_lib_exchange_function != 201304L
-#   error "__cpp_lib_exchange_function should have the value 201304L in c++17"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_execution
-#     error "__cpp_lib_execution should be defined in c++17"
-#   endif
-#   if __cpp_lib_execution != 201603L
-#     error "__cpp_lib_execution should have the value 201603L in c++17"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_execution
-#     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
-#   ifndef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should be defined in c++17"
-#   endif
-#   if __cpp_lib_filesystem != 201703L
-#     error "__cpp_lib_filesystem should have the value 201703L in c++17"
-#   endif
-# else
-#   ifdef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_flat_map
-#   error "__cpp_lib_flat_map should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_flat_set
-#   error "__cpp_lib_flat_set should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_format
-#   error "__cpp_lib_format should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_format_path
-#   error "__cpp_lib_format_path should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_format_uchar
-#   error "__cpp_lib_format_uchar should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_freestanding_algorithm
-#   error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_array
-#   error "__cpp_lib_freestanding_array should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_cstring
-#   error "__cpp_lib_freestanding_cstring should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_expected
-#   error "__cpp_lib_freestanding_expected should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_mdspan
-#   error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_optional
-#   error "__cpp_lib_freestanding_optional should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_string_view
-#   error "__cpp_lib_freestanding_string_view should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_variant
-#   error "__cpp_lib_freestanding_variant should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_fstream_native_handle
-#   error "__cpp_lib_fstream_native_handle should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_function_ref
-#   error "__cpp_lib_function_ref should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_gcd_lcm
-#   error "__cpp_lib_gcd_lcm should be defined in c++17"
-# endif
-# if __cpp_lib_gcd_lcm != 201606L
-#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++17"
-# endif
-
-# ifdef __cpp_lib_generate_random
-#   error "__cpp_lib_generate_random should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_generic_associative_lookup
-#   error "__cpp_lib_generic_associative_lookup should be defined in c++17"
-# endif
-# if __cpp_lib_generic_associative_lookup != 201304L
-#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17"
-# endif
-
-# ifdef __cpp_lib_generic_unordered_lookup
-#   error "__cpp_lib_generic_unordered_lookup should not be defined before c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
-#   ifndef __cpp_lib_hardware_interference_size
-#     error "__cpp_lib_hardware_interference_size should be defined in c++17"
-#   endif
-#   if __cpp_lib_hardware_interference_size != 201703L
-#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17"
-#   endif
-# else
-#   ifdef __cpp_lib_hardware_interference_size
-#     error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_has_unique_object_representations
-#   error "__cpp_lib_has_unique_object_representations should be defined in c++17"
-# endif
-# if __cpp_lib_has_unique_object_representations != 201606L
-#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
-# endif
-
-# ifdef __cpp_lib_hazard_pointer
-#   error "__cpp_lib_hazard_pointer should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_hypot
-#   error "__cpp_lib_hypot should be defined in c++17"
-# endif
-# if __cpp_lib_hypot != 201603L
-#   error "__cpp_lib_hypot should have the value 201603L in c++17"
-# endif
-
-# ifndef __cpp_lib_incomplete_container_elements
-#   error "__cpp_lib_incomplete_container_elements should be defined in c++17"
-# endif
-# if __cpp_lib_incomplete_container_elements != 201505L
-#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17"
-# endif
-
-# ifdef __cpp_lib_inplace_vector
-#   error "__cpp_lib_inplace_vector should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_int_pow2
-#   error "__cpp_lib_int_pow2 should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_integer_comparison_functions
-#   error "__cpp_lib_integer_comparison_functions should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_integer_sequence
-#   error "__cpp_lib_integer_sequence should be defined in c++17"
-# endif
-# if __cpp_lib_integer_sequence != 201304L
-#   error "__cpp_lib_integer_sequence should have the value 201304L in c++17"
-# endif
-
-# ifndef __cpp_lib_integral_constant_callable
-#   error "__cpp_lib_integral_constant_callable should be defined in c++17"
-# endif
-# if __cpp_lib_integral_constant_callable != 201304L
-#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17"
-# endif
-
-# ifdef __cpp_lib_interpolate
-#   error "__cpp_lib_interpolate should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_invoke
-#   error "__cpp_lib_invoke should be defined in c++17"
-# endif
-# if __cpp_lib_invoke != 201411L
-#   error "__cpp_lib_invoke should have the value 201411L in c++17"
-# endif
-
-# ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ios_noreplace
-#   error "__cpp_lib_ios_noreplace should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_is_aggregate
-#   error "__cpp_lib_is_aggregate should be defined in c++17"
-# endif
-# if __cpp_lib_is_aggregate != 201703L
-#   error "__cpp_lib_is_aggregate should have the value 201703L in c++17"
-# endif
-
-# ifdef __cpp_lib_is_constant_evaluated
-#   error "__cpp_lib_is_constant_evaluated should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_is_final
-#   error "__cpp_lib_is_final should be defined in c++17"
-# endif
-# if __cpp_lib_is_final != 201402L
-#   error "__cpp_lib_is_final should have the value 201402L in c++17"
-# endif
-
-# ifdef __cpp_lib_is_implicit_lifetime
-#   error "__cpp_lib_is_implicit_lifetime should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_is_invocable
-#   error "__cpp_lib_is_invocable should be defined in c++17"
-# endif
-# if __cpp_lib_is_invocable != 201703L
-#   error "__cpp_lib_is_invocable should have the value 201703L in c++17"
-# endif
-
-# ifdef __cpp_lib_is_layout_compatible
-#   error "__cpp_lib_is_layout_compatible should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_is_nothrow_convertible
-#   error "__cpp_lib_is_nothrow_convertible should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_is_null_pointer
-#   error "__cpp_lib_is_null_pointer should be defined in c++17"
-# endif
-# if __cpp_lib_is_null_pointer != 201309L
-#   error "__cpp_lib_is_null_pointer should have the value 201309L in c++17"
-# endif
-
-# ifdef __cpp_lib_is_pointer_interconvertible
-#   error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_is_swappable
-#   error "__cpp_lib_is_swappable should be defined in c++17"
-# endif
-# if __cpp_lib_is_swappable != 201603L
-#   error "__cpp_lib_is_swappable should have the value 201603L in c++17"
-# endif
-
-# ifdef __cpp_lib_is_virtual_base_of
-#   error "__cpp_lib_is_virtual_base_of should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_is_within_lifetime
-#   error "__cpp_lib_is_within_lifetime should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_jthread
-#   error "__cpp_lib_jthread should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_latch
-#   error "__cpp_lib_latch should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_launder
-#   error "__cpp_lib_launder should be defined in c++17"
-# endif
-# if __cpp_lib_launder != 201606L
-#   error "__cpp_lib_launder should have the value 201606L in c++17"
-# endif
-
-# ifdef __cpp_lib_linalg
-#   error "__cpp_lib_linalg should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_list_remove_return_type
-#   error "__cpp_lib_list_remove_return_type should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_logical_traits
-#   error "__cpp_lib_logical_traits should be defined in c++17"
-# endif
-# if __cpp_lib_logical_traits != 201510L
-#   error "__cpp_lib_logical_traits should have the value 201510L in c++17"
-# endif
-
-# ifndef __cpp_lib_make_from_tuple
-#   error "__cpp_lib_make_from_tuple should be defined in c++17"
-# endif
-# if __cpp_lib_make_from_tuple != 201606L
-#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++17"
-# endif
-
-# ifndef __cpp_lib_make_reverse_iterator
-#   error "__cpp_lib_make_reverse_iterator should be defined in c++17"
-# endif
-# if __cpp_lib_make_reverse_iterator != 201402L
-#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17"
-# endif
-
-# ifndef __cpp_lib_make_unique
-#   error "__cpp_lib_make_unique should be defined in c++17"
-# endif
-# if __cpp_lib_make_unique != 201304L
-#   error "__cpp_lib_make_unique should have the value 201304L in c++17"
-# endif
-
-# ifndef __cpp_lib_map_try_emplace
-#   error "__cpp_lib_map_try_emplace should be defined in c++17"
-# endif
-# if __cpp_lib_map_try_emplace != 201411L
-#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++17"
-# endif
-
-# ifdef __cpp_lib_math_constants
-#   error "__cpp_lib_math_constants should not be defined before c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_math_special_functions
-#     error "__cpp_lib_math_special_functions should be defined in c++17"
-#   endif
-#   if __cpp_lib_math_special_functions != 201603L
-#     error "__cpp_lib_math_special_functions should have the value 201603L in c++17"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_math_special_functions
-#     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
-#   ifndef __cpp_lib_memory_resource
-#     error "__cpp_lib_memory_resource should be defined in c++17"
-#   endif
-#   if __cpp_lib_memory_resource != 201603L
-#     error "__cpp_lib_memory_resource should have the value 201603L in c++17"
-#   endif
-# else
-#   ifdef __cpp_lib_memory_resource
-#     error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_modules
-#   error "__cpp_lib_modules should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_move_iterator_concept
-#   error "__cpp_lib_move_iterator_concept should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++17"
-# endif
-# if __cpp_lib_node_extract != 201606L
-#   error "__cpp_lib_node_extract should have the value 201606L in c++17"
-# endif
-
-# ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++17"
-# endif
-# if __cpp_lib_nonmember_container_access != 201411L
-#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
-# endif
-
-# ifndef __cpp_lib_not_fn
-#   error "__cpp_lib_not_fn should be defined in c++17"
-# endif
-# if __cpp_lib_not_fn != 201603L
-#   error "__cpp_lib_not_fn should have the value 201603L in c++17"
-# endif
-
-# ifndef __cpp_lib_null_iterators
-#   error "__cpp_lib_null_iterators should be defined in c++17"
-# endif
-# if __cpp_lib_null_iterators != 201304L
-#   error "__cpp_lib_null_iterators should have the value 201304L in c++17"
-# endif
-
-# ifndef __cpp_lib_optional
-#   error "__cpp_lib_optional should be defined in c++17"
-# endif
-# if __cpp_lib_optional != 201606L
-#   error "__cpp_lib_optional should have the value 201606L in c++17"
-# endif
-
-# ifdef __cpp_lib_optional_range_support
-#   error "__cpp_lib_optional_range_support should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should be defined in c++17"
-#   endif
-#   if __cpp_lib_parallel_algorithm != 201603L
-#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_philox_engine
-#   error "__cpp_lib_philox_engine should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_polymorphic_allocator
-#   error "__cpp_lib_polymorphic_allocator should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_print
-#   error "__cpp_lib_print should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
-#   ifndef __cpp_lib_quoted_string_io
-#     error "__cpp_lib_quoted_string_io should be defined in c++17"
-#   endif
-#   if __cpp_lib_quoted_string_io != 201304L
-#     error "__cpp_lib_quoted_string_io should have the value 201304L in c++17"
-#   endif
-# else
-#   ifdef __cpp_lib_quoted_string_io
-#     error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_ranges_as_const
-#   error "__cpp_lib_ranges_as_const should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_chunk
-#   error "__cpp_lib_ranges_chunk should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_chunk_by
-#   error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_concat
-#   error "__cpp_lib_ranges_concat should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_ranges_contains
-#   error "__cpp_lib_ranges_contains should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_find_last
-#   error "__cpp_lib_ranges_find_last should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_join_with
-#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_repeat
-#   error "__cpp_lib_ranges_repeat should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_starts_ends_with
-#   error "__cpp_lib_ranges_starts_ends_with 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"
-# endif
-
-# ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ratio
-#   error "__cpp_lib_ratio should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_raw_memory_algorithms
-#   error "__cpp_lib_raw_memory_algorithms should be defined in c++17"
-# endif
-# if __cpp_lib_raw_memory_algorithms != 201606L
-#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17"
-# endif
-
-# ifdef __cpp_lib_rcu
-#   error "__cpp_lib_rcu should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_reference_wrapper
-#   error "__cpp_lib_reference_wrapper should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_remove_cvref
-#   error "__cpp_lib_remove_cvref should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_result_of_sfinae
-#   error "__cpp_lib_result_of_sfinae should be defined in c++17"
-# endif
-# if __cpp_lib_result_of_sfinae != 201210L
-#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17"
-# endif
-
-# ifndef __cpp_lib_robust_nonmodifying_seq_ops
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17"
-# endif
-# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17"
-# endif
-
-# ifndef __cpp_lib_sample
-#   error "__cpp_lib_sample should be defined in c++17"
-# endif
-# if __cpp_lib_sample != 201603L
-#   error "__cpp_lib_sample should have the value 201603L in c++17"
-# endif
-
-# ifdef __cpp_lib_saturation_arithmetic
-#   error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_scoped_lock
-#     error "__cpp_lib_scoped_lock should be defined in c++17"
-#   endif
-#   if __cpp_lib_scoped_lock != 201703L
-#     error "__cpp_lib_scoped_lock should have the value 201703L in c++17"
-#   endif
-# else
-#   ifdef __cpp_lib_scoped_lock
-#     error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_semaphore
-#   error "__cpp_lib_semaphore should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_senders
-#   error "__cpp_lib_senders should not be defined before c++26"
-# endif
-
-# if _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should be defined in c++17"
-#   endif
-#   if __cpp_lib_shared_mutex != 201505L
-#     error "__cpp_lib_shared_mutex should have the value 201505L in c++17"
-#   endif
-# else
-#   ifdef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_shared_ptr_arrays
-#   error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
-# endif
-# if __cpp_lib_shared_ptr_arrays != 201611L
-#   error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
-# endif
-
-# ifndef __cpp_lib_shared_ptr_weak_type
-#   error "__cpp_lib_shared_ptr_weak_type should be defined in c++17"
-# endif
-# if __cpp_lib_shared_ptr_weak_type != 201606L
-#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17"
-# endif
-
-# if _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should be defined in c++17"
-#   endif
-#   if __cpp_lib_shared_timed_mutex != 201402L
-#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17"
-#   endif
-# else
-#   ifdef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_shift
-#   error "__cpp_lib_shift should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_smart_ptr_for_overwrite
-#   error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_smart_ptr_owner_equality
-#   error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_source_location
-#   error "__cpp_lib_source_location should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_span
-#   error "__cpp_lib_span should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_span_at
-#   error "__cpp_lib_span_at should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_span_initializer_list
-#   error "__cpp_lib_span_initializer_list should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_spanstream
-#   error "__cpp_lib_spanstream should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ssize
-#   error "__cpp_lib_ssize should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_sstream_from_string_view
-#   error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_stacktrace
-#   error "__cpp_lib_stacktrace 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
-
-# ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_string_resize_and_overwrite
-#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_string_udls
-#   error "__cpp_lib_string_udls should be defined in c++17"
-# endif
-# if __cpp_lib_string_udls != 201304L
-#   error "__cpp_lib_string_udls should have the value 201304L in c++17"
-# endif
-
-# ifndef __cpp_lib_string_view
-#   error "__cpp_lib_string_view should be defined in c++17"
-# endif
-# if __cpp_lib_string_view != 201606L
-#   error "__cpp_lib_string_view should have the value 201606L in c++17"
-# endif
-
-# ifdef __cpp_lib_submdspan
-#   error "__cpp_lib_submdspan should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_syncbuf
-#   error "__cpp_lib_syncbuf should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_text_encoding
-#   error "__cpp_lib_text_encoding should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_three_way_comparison
-#   error "__cpp_lib_three_way_comparison should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_to_address
-#   error "__cpp_lib_to_address should not be defined before c++20"
-# endif
-
-# ifdef __cpp_lib_to_array
-#   error "__cpp_lib_to_array should not be defined before c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should be defined in c++17"
-#   endif
-#   if __cpp_lib_to_chars != 201611L
-#     error "__cpp_lib_to_chars should have the value 201611L in c++17"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_to_string
-#   error "__cpp_lib_to_string should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_transformation_trait_aliases
-#   error "__cpp_lib_transformation_trait_aliases should be defined in c++17"
-# endif
-# if __cpp_lib_transformation_trait_aliases != 201304L
-#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17"
-# endif
-
-# ifndef __cpp_lib_transparent_operators
-#   error "__cpp_lib_transparent_operators should be defined in c++17"
-# endif
-# if __cpp_lib_transparent_operators != 201510L
-#   error "__cpp_lib_transparent_operators should have the value 201510L in c++17"
-# endif
-
-# ifndef __cpp_lib_tuple_element_t
-#   error "__cpp_lib_tuple_element_t should be defined in c++17"
-# endif
-# if __cpp_lib_tuple_element_t != 201402L
-#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++17"
-# endif
-
-# ifdef __cpp_lib_tuple_like
-#   error "__cpp_lib_tuple_like should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_tuples_by_type
-#   error "__cpp_lib_tuples_by_type should be defined in c++17"
-# endif
-# if __cpp_lib_tuples_by_type != 201304L
-#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++17"
-# endif
-
-# ifdef __cpp_lib_type_identity
-#   error "__cpp_lib_type_identity should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_type_trait_variable_templates
-#   error "__cpp_lib_type_trait_variable_templates should be defined in c++17"
-# endif
-# if __cpp_lib_type_trait_variable_templates != 201510L
-#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17"
-# endif
-
-# ifndef __cpp_lib_uncaught_exceptions
-#   error "__cpp_lib_uncaught_exceptions should be defined in c++17"
-# endif
-# if __cpp_lib_uncaught_exceptions != 201411L
-#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17"
-# endif
-
-# ifndef __cpp_lib_unordered_map_try_emplace
-#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++17"
-# endif
-# if __cpp_lib_unordered_map_try_emplace != 201411L
-#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17"
-# endif
-
-# ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_unwrap_ref
-#   error "__cpp_lib_unwrap_ref should not be defined before c++20"
-# endif
-
-# ifndef __cpp_lib_variant
-#   error "__cpp_lib_variant should be defined in c++17"
-# endif
-# if __cpp_lib_variant != 202102L
-#   error "__cpp_lib_variant should have the value 202102L in c++17"
-# endif
-
-# ifndef __cpp_lib_void_t
-#   error "__cpp_lib_void_t should be defined in c++17"
-# endif
-# if __cpp_lib_void_t != 201411L
-#   error "__cpp_lib_void_t should have the value 201411L in c++17"
-# endif
-
-#elif TEST_STD_VER == 20
-
-# ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_addressof_constexpr
-#   error "__cpp_lib_addressof_constexpr should be defined in c++20"
-# endif
-# if __cpp_lib_addressof_constexpr != 201603L
-#   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20"
-# endif
-
-# ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20"
-# endif
-# if __cpp_lib_allocator_traits_is_always_equal != 201411L
-#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"
-# endif
-
-# ifndef __cpp_lib_any
-#   error "__cpp_lib_any should be defined in c++20"
-# endif
-# if __cpp_lib_any != 201606L
-#   error "__cpp_lib_any should have the value 201606L in c++20"
-# endif
-
-# ifndef __cpp_lib_apply
-#   error "__cpp_lib_apply should be defined in c++20"
-# endif
-# if __cpp_lib_apply != 201603L
-#   error "__cpp_lib_apply should have the value 201603L in c++20"
-# endif
-
-# ifndef __cpp_lib_array_constexpr
-#   error "__cpp_lib_array_constexpr should be defined in c++20"
-# endif
-# if __cpp_lib_array_constexpr != 201811L
-#   error "__cpp_lib_array_constexpr should have the value 201811L in c++20"
-# endif
-
-# ifndef __cpp_lib_as_const
-#   error "__cpp_lib_as_const should be defined in c++20"
-# endif
-# if __cpp_lib_as_const != 201510L
-#   error "__cpp_lib_as_const should have the value 201510L in c++20"
-# endif
-
-# ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_associative_heterogeneous_insertion
-#   error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_assume_aligned
-#   error "__cpp_lib_assume_aligned should be defined in c++20"
-# endif
-# if __cpp_lib_assume_aligned != 201811L
-#   error "__cpp_lib_assume_aligned should have the value 201811L in c++20"
-# endif
-
-# ifndef __cpp_lib_atomic_flag_test
-#   error "__cpp_lib_atomic_flag_test should be defined in c++20"
-# endif
-# if __cpp_lib_atomic_flag_test != 201907L
-#   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20"
-# endif
-
-# ifndef __cpp_lib_atomic_float
-#   error "__cpp_lib_atomic_float should be defined in c++20"
-# endif
-# if __cpp_lib_atomic_float != 201711L
-#   error "__cpp_lib_atomic_float should have the value 201711L in c++20"
-# endif
-
-# ifndef __cpp_lib_atomic_is_always_lock_free
-#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20"
-# endif
-# if __cpp_lib_atomic_is_always_lock_free != 201603L
-#   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20"
-# endif
-
-# ifndef __cpp_lib_atomic_lock_free_type_aliases
-#   error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20"
-# endif
-# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
-#   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20"
-# endif
-
-# ifdef __cpp_lib_atomic_min_max
-#   error "__cpp_lib_atomic_min_max should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_atomic_ref
-#   error "__cpp_lib_atomic_ref should be defined in c++20"
-# endif
-# if __cpp_lib_atomic_ref != 201806L
-#   error "__cpp_lib_atomic_ref should have the value 201806L in c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_atomic_shared_ptr
-#     error "__cpp_lib_atomic_shared_ptr should be defined in c++20"
-#   endif
-#   if __cpp_lib_atomic_shared_ptr != 201711L
-#     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_atomic_shared_ptr
-#     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_atomic_value_initialization
-#   error "__cpp_lib_atomic_value_initialization should be defined in c++20"
-# endif
-# if __cpp_lib_atomic_value_initialization != 201911L
-#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
-#   ifndef __cpp_lib_atomic_wait
-#     error "__cpp_lib_atomic_wait should be defined in c++20"
-#   endif
-#   if __cpp_lib_atomic_wait != 201907L
-#     error "__cpp_lib_atomic_wait should have the value 201907L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_atomic_wait
-#     error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_barrier
-#     error "__cpp_lib_barrier should be defined in c++20"
-#   endif
-#   if __cpp_lib_barrier != 201907L
-#     error "__cpp_lib_barrier should have the value 201907L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_barrier
-#     error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_bind_front
-#   error "__cpp_lib_bind_front should be defined in c++20"
-# endif
-# if __cpp_lib_bind_front != 201907L
-#   error "__cpp_lib_bind_front should have the value 201907L in c++20"
-# endif
-
-# ifndef __cpp_lib_bit_cast
-#   error "__cpp_lib_bit_cast should be defined in c++20"
-# endif
-# if __cpp_lib_bit_cast != 201806L
-#   error "__cpp_lib_bit_cast should have the value 201806L in c++20"
-# endif
-
-# ifndef __cpp_lib_bitops
-#   error "__cpp_lib_bitops should be defined in c++20"
-# endif
-# if __cpp_lib_bitops != 201907L
-#   error "__cpp_lib_bitops should have the value 201907L in c++20"
-# endif
-
-# ifdef __cpp_lib_bitset
-#   error "__cpp_lib_bitset should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_bool_constant
-#   error "__cpp_lib_bool_constant should be defined in c++20"
-# endif
-# if __cpp_lib_bool_constant != 201505L
-#   error "__cpp_lib_bool_constant should have the value 201505L in c++20"
-# endif
-
-# ifndef __cpp_lib_bounded_array_traits
-#   error "__cpp_lib_bounded_array_traits should be defined in c++20"
-# endif
-# if __cpp_lib_bounded_array_traits != 201902L
-#   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20"
-# endif
-
-# ifndef __cpp_lib_boyer_moore_searcher
-#   error "__cpp_lib_boyer_moore_searcher should be defined in c++20"
-# endif
-# if __cpp_lib_boyer_moore_searcher != 201603L
-#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20"
-# endif
-
-# ifndef __cpp_lib_byte
-#   error "__cpp_lib_byte should be defined in c++20"
-# endif
-# if __cpp_lib_byte != 201603L
-#   error "__cpp_lib_byte should have the value 201603L in c++20"
-# endif
-
-# ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++23"
-# endif
-
-# if defined(__cpp_char8_t)
-#   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++20"
-#   endif
-#   if __cpp_lib_char8_t != 201907L
-#     error "__cpp_lib_char8_t should have the value 201907L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_chrono
-#   error "__cpp_lib_chrono should be defined in c++20"
-# endif
-# if __cpp_lib_chrono != 201611L
-#   error "__cpp_lib_chrono should have the value 201611L in c++20"
-# endif
-
-# ifndef __cpp_lib_chrono_udls
-#   error "__cpp_lib_chrono_udls should be defined in c++20"
-# endif
-# if __cpp_lib_chrono_udls != 201304L
-#   error "__cpp_lib_chrono_udls should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_clamp
-#   error "__cpp_lib_clamp should be defined in c++20"
-# endif
-# if __cpp_lib_clamp != 201603L
-#   error "__cpp_lib_clamp should have the value 201603L in c++20"
-# endif
-
-# ifndef __cpp_lib_complex_udls
-#   error "__cpp_lib_complex_udls should be defined in c++20"
-# endif
-# if __cpp_lib_complex_udls != 201309L
-#   error "__cpp_lib_complex_udls should have the value 201309L in c++20"
-# endif
-
-# ifndef __cpp_lib_concepts
-#   error "__cpp_lib_concepts should be defined in c++20"
-# endif
-# if __cpp_lib_concepts != 202002L
-#   error "__cpp_lib_concepts should have the value 202002L in c++20"
-# endif
-
-# ifndef __cpp_lib_constexpr_algorithms
-#   error "__cpp_lib_constexpr_algorithms should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_algorithms != 201806L
-#   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_complex
-#   error "__cpp_lib_constexpr_complex should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_complex != 201711L
-#   error "__cpp_lib_constexpr_complex should have the value 201711L in c++20"
-# endif
-
-# ifndef __cpp_lib_constexpr_dynamic_alloc
-#   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_dynamic_alloc != 201907L
-#   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_forward_list
-#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_functional
-#   error "__cpp_lib_constexpr_functional should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_functional != 201907L
-#   error "__cpp_lib_constexpr_functional should have the value 201907L in c++20"
-# endif
-
-# ifndef __cpp_lib_constexpr_iterator
-#   error "__cpp_lib_constexpr_iterator should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_iterator != 201811L
-#   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20"
-# endif
-
-# ifndef __cpp_lib_constexpr_memory
-#   error "__cpp_lib_constexpr_memory should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_memory != 201811L
-#   error "__cpp_lib_constexpr_memory should have the value 201811L in c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_new
-#   error "__cpp_lib_constexpr_new should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_numeric
-#   error "__cpp_lib_constexpr_numeric should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_numeric != 201911L
-#   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20"
-# endif
-
-# ifndef __cpp_lib_constexpr_string
-#   error "__cpp_lib_constexpr_string should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_string != 201907L
-#   error "__cpp_lib_constexpr_string should have the value 201907L in c++20"
-# endif
-
-# ifndef __cpp_lib_constexpr_string_view
-#   error "__cpp_lib_constexpr_string_view should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_string_view != 201811L
-#   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20"
-# endif
-
-# ifndef __cpp_lib_constexpr_tuple
-#   error "__cpp_lib_constexpr_tuple should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_tuple != 201811L
-#   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20"
-# endif
-
-# ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_utility
-#   error "__cpp_lib_constexpr_utility should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_utility != 201811L
-#   error "__cpp_lib_constexpr_utility should have the value 201811L in c++20"
-# endif
-
-# ifndef __cpp_lib_constexpr_vector
-#   error "__cpp_lib_constexpr_vector should be defined in c++20"
-# endif
-# if __cpp_lib_constexpr_vector != 201907L
-#   error "__cpp_lib_constexpr_vector should have the value 201907L in c++20"
-# endif
-
-# ifdef __cpp_lib_constrained_equality
-#   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
-
-# ifndef __cpp_lib_coroutine
-#   error "__cpp_lib_coroutine should be defined in c++20"
-# endif
-# if __cpp_lib_coroutine != 201902L
-#   error "__cpp_lib_coroutine should have the value 201902L in c++20"
-# endif
-
-# ifdef __cpp_lib_debugging
-#   error "__cpp_lib_debugging should not be defined before c++26"
-# 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
-
-# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
-#   ifndef __cpp_lib_destroying_delete
-#     error "__cpp_lib_destroying_delete should be defined in c++20"
-#   endif
-#   if __cpp_lib_destroying_delete != 201806L
-#     error "__cpp_lib_destroying_delete should have the value 201806L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_destroying_delete
-#     error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_enable_shared_from_this
-#   error "__cpp_lib_enable_shared_from_this should be defined in c++20"
-# endif
-# if __cpp_lib_enable_shared_from_this != 201603L
-#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20"
-# endif
-
-# ifndef __cpp_lib_endian
-#   error "__cpp_lib_endian should be defined in c++20"
-# endif
-# if __cpp_lib_endian != 201907L
-#   error "__cpp_lib_endian should have the value 201907L in c++20"
-# endif
-
-# ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++20"
-# endif
-# if __cpp_lib_erase_if != 202002L
-#   error "__cpp_lib_erase_if should have the value 202002L in c++20"
-# endif
-
-# ifndef __cpp_lib_exchange_function
-#   error "__cpp_lib_exchange_function should be defined in c++20"
-# endif
-# if __cpp_lib_exchange_function != 201304L
-#   error "__cpp_lib_exchange_function should have the value 201304L in c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_execution
-#     error "__cpp_lib_execution should be defined in c++20"
-#   endif
-#   if __cpp_lib_execution != 201902L
-#     error "__cpp_lib_execution should have the value 201902L in c++20"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_execution
-#     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
-#   ifndef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should be defined in c++20"
-#   endif
-#   if __cpp_lib_filesystem != 201703L
-#     error "__cpp_lib_filesystem should have the value 201703L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_flat_map
-#   error "__cpp_lib_flat_map should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_flat_set
-#   error "__cpp_lib_flat_set should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
-#   ifndef __cpp_lib_format
-#     error "__cpp_lib_format should be defined in c++20"
-#   endif
-#   if __cpp_lib_format != 202110L
-#     error "__cpp_lib_format should have the value 202110L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_format
-#     error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_format_path
-#   error "__cpp_lib_format_path should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_format_uchar
-#   error "__cpp_lib_format_uchar should be defined in c++20"
-# endif
-# if __cpp_lib_format_uchar != 202311L
-#   error "__cpp_lib_format_uchar should have the value 202311L in c++20"
-# endif
-
-# ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_freestanding_algorithm
-#   error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_array
-#   error "__cpp_lib_freestanding_array should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_cstring
-#   error "__cpp_lib_freestanding_cstring should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_expected
-#   error "__cpp_lib_freestanding_expected should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_mdspan
-#   error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_optional
-#   error "__cpp_lib_freestanding_optional should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_string_view
-#   error "__cpp_lib_freestanding_string_view should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_variant
-#   error "__cpp_lib_freestanding_variant should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_fstream_native_handle
-#   error "__cpp_lib_fstream_native_handle should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_function_ref
-#   error "__cpp_lib_function_ref should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_gcd_lcm
-#   error "__cpp_lib_gcd_lcm should be defined in c++20"
-# endif
-# if __cpp_lib_gcd_lcm != 201606L
-#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++20"
-# endif
-
-# ifdef __cpp_lib_generate_random
-#   error "__cpp_lib_generate_random should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_generic_associative_lookup
-#   error "__cpp_lib_generic_associative_lookup should be defined in c++20"
-# endif
-# if __cpp_lib_generic_associative_lookup != 201304L
-#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_generic_unordered_lookup
-#   error "__cpp_lib_generic_unordered_lookup should be defined in c++20"
-# endif
-# if __cpp_lib_generic_unordered_lookup != 201811L
-#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
-#   ifndef __cpp_lib_hardware_interference_size
-#     error "__cpp_lib_hardware_interference_size should be defined in c++20"
-#   endif
-#   if __cpp_lib_hardware_interference_size != 201703L
-#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_hardware_interference_size
-#     error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_has_unique_object_representations
-#   error "__cpp_lib_has_unique_object_representations should be defined in c++20"
-# endif
-# if __cpp_lib_has_unique_object_representations != 201606L
-#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20"
-# endif
-
-# ifdef __cpp_lib_hazard_pointer
-#   error "__cpp_lib_hazard_pointer should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_hypot
-#   error "__cpp_lib_hypot should be defined in c++20"
-# endif
-# if __cpp_lib_hypot != 201603L
-#   error "__cpp_lib_hypot should have the value 201603L in c++20"
-# endif
-
-# ifndef __cpp_lib_incomplete_container_elements
-#   error "__cpp_lib_incomplete_container_elements should be defined in c++20"
-# endif
-# if __cpp_lib_incomplete_container_elements != 201505L
-#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20"
-# endif
-
-# ifdef __cpp_lib_inplace_vector
-#   error "__cpp_lib_inplace_vector should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_int_pow2
-#   error "__cpp_lib_int_pow2 should be defined in c++20"
-# endif
-# if __cpp_lib_int_pow2 != 202002L
-#   error "__cpp_lib_int_pow2 should have the value 202002L in c++20"
-# endif
-
-# ifndef __cpp_lib_integer_comparison_functions
-#   error "__cpp_lib_integer_comparison_functions should be defined in c++20"
-# endif
-# if __cpp_lib_integer_comparison_functions != 202002L
-#   error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20"
-# endif
-
-# ifndef __cpp_lib_integer_sequence
-#   error "__cpp_lib_integer_sequence should be defined in c++20"
-# endif
-# if __cpp_lib_integer_sequence != 201304L
-#   error "__cpp_lib_integer_sequence should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_integral_constant_callable
-#   error "__cpp_lib_integral_constant_callable should be defined in c++20"
-# endif
-# if __cpp_lib_integral_constant_callable != 201304L
-#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_interpolate
-#   error "__cpp_lib_interpolate should be defined in c++20"
-# endif
-# if __cpp_lib_interpolate != 201902L
-#   error "__cpp_lib_interpolate should have the value 201902L in c++20"
-# endif
-
-# ifndef __cpp_lib_invoke
-#   error "__cpp_lib_invoke should be defined in c++20"
-# endif
-# if __cpp_lib_invoke != 201411L
-#   error "__cpp_lib_invoke should have the value 201411L in c++20"
-# endif
-
-# ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ios_noreplace
-#   error "__cpp_lib_ios_noreplace should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_is_aggregate
-#   error "__cpp_lib_is_aggregate should be defined in c++20"
-# endif
-# if __cpp_lib_is_aggregate != 201703L
-#   error "__cpp_lib_is_aggregate should have the value 201703L in c++20"
-# endif
-
-# ifndef __cpp_lib_is_constant_evaluated
-#   error "__cpp_lib_is_constant_evaluated should be defined in c++20"
-# endif
-# if __cpp_lib_is_constant_evaluated != 201811L
-#   error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20"
-# endif
-
-# ifndef __cpp_lib_is_final
-#   error "__cpp_lib_is_final should be defined in c++20"
-# endif
-# if __cpp_lib_is_final != 201402L
-#   error "__cpp_lib_is_final should have the value 201402L in c++20"
-# endif
-
-# ifdef __cpp_lib_is_implicit_lifetime
-#   error "__cpp_lib_is_implicit_lifetime should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_is_invocable
-#   error "__cpp_lib_is_invocable should be defined in c++20"
-# endif
-# if __cpp_lib_is_invocable != 201703L
-#   error "__cpp_lib_is_invocable should have the value 201703L in c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_is_layout_compatible
-#     error "__cpp_lib_is_layout_compatible should be defined in c++20"
-#   endif
-#   if __cpp_lib_is_layout_compatible != 201907L
-#     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_is_layout_compatible
-#     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_is_nothrow_convertible
-#   error "__cpp_lib_is_nothrow_convertible should be defined in c++20"
-# endif
-# if __cpp_lib_is_nothrow_convertible != 201806L
-#   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20"
-# endif
-
-# ifndef __cpp_lib_is_null_pointer
-#   error "__cpp_lib_is_null_pointer should be defined in c++20"
-# endif
-# if __cpp_lib_is_null_pointer != 201309L
-#   error "__cpp_lib_is_null_pointer should have the value 201309L in c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_is_pointer_interconvertible
-#     error "__cpp_lib_is_pointer_interconvertible should be defined in c++20"
-#   endif
-#   if __cpp_lib_is_pointer_interconvertible != 201907L
-#     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_is_pointer_interconvertible
-#     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_is_swappable
-#   error "__cpp_lib_is_swappable should be defined in c++20"
-# endif
-# if __cpp_lib_is_swappable != 201603L
-#   error "__cpp_lib_is_swappable should have the value 201603L in c++20"
-# endif
-
-# ifdef __cpp_lib_is_virtual_base_of
-#   error "__cpp_lib_is_virtual_base_of should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_is_within_lifetime
-#   error "__cpp_lib_is_within_lifetime should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_jthread
-#     error "__cpp_lib_jthread should be defined in c++20"
-#   endif
-#   if __cpp_lib_jthread != 201911L
-#     error "__cpp_lib_jthread should have the value 201911L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_jthread
-#     error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_latch
-#     error "__cpp_lib_latch should be defined in c++20"
-#   endif
-#   if __cpp_lib_latch != 201907L
-#     error "__cpp_lib_latch should have the value 201907L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_latch
-#     error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_launder
-#   error "__cpp_lib_launder should be defined in c++20"
-# endif
-# if __cpp_lib_launder != 201606L
-#   error "__cpp_lib_launder should have the value 201606L in c++20"
-# endif
-
-# ifdef __cpp_lib_linalg
-#   error "__cpp_lib_linalg should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_list_remove_return_type
-#   error "__cpp_lib_list_remove_return_type should be defined in c++20"
-# endif
-# if __cpp_lib_list_remove_return_type != 201806L
-#   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20"
-# endif
-
-# ifndef __cpp_lib_logical_traits
-#   error "__cpp_lib_logical_traits should be defined in c++20"
-# endif
-# if __cpp_lib_logical_traits != 201510L
-#   error "__cpp_lib_logical_traits should have the value 201510L in c++20"
-# endif
-
-# ifndef __cpp_lib_make_from_tuple
-#   error "__cpp_lib_make_from_tuple should be defined in c++20"
-# endif
-# if __cpp_lib_make_from_tuple != 201606L
-#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++20"
-# endif
-
-# ifndef __cpp_lib_make_reverse_iterator
-#   error "__cpp_lib_make_reverse_iterator should be defined in c++20"
-# endif
-# if __cpp_lib_make_reverse_iterator != 201402L
-#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20"
-# endif
-
-# ifndef __cpp_lib_make_unique
-#   error "__cpp_lib_make_unique should be defined in c++20"
-# endif
-# if __cpp_lib_make_unique != 201304L
-#   error "__cpp_lib_make_unique should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_map_try_emplace
-#   error "__cpp_lib_map_try_emplace should be defined in c++20"
-# endif
-# if __cpp_lib_map_try_emplace != 201411L
-#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++20"
-# endif
-
-# ifndef __cpp_lib_math_constants
-#   error "__cpp_lib_math_constants should be defined in c++20"
-# endif
-# if __cpp_lib_math_constants != 201907L
-#   error "__cpp_lib_math_constants should have the value 201907L in c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_math_special_functions
-#     error "__cpp_lib_math_special_functions should be defined in c++20"
-#   endif
-#   if __cpp_lib_math_special_functions != 201603L
-#     error "__cpp_lib_math_special_functions should have the value 201603L in c++20"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_math_special_functions
-#     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
-#   ifndef __cpp_lib_memory_resource
-#     error "__cpp_lib_memory_resource should be defined in c++20"
-#   endif
-#   if __cpp_lib_memory_resource != 201603L
-#     error "__cpp_lib_memory_resource should have the value 201603L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_memory_resource
-#     error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_modules
-#   error "__cpp_lib_modules should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_move_iterator_concept
-#   error "__cpp_lib_move_iterator_concept should be defined in c++20"
-# endif
-# if __cpp_lib_move_iterator_concept != 202207L
-#   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++20"
-# endif
-
-# ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++20"
-# endif
-# if __cpp_lib_node_extract != 201606L
-#   error "__cpp_lib_node_extract should have the value 201606L in c++20"
-# endif
-
-# ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++20"
-# endif
-# if __cpp_lib_nonmember_container_access != 201411L
-#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
-# endif
-
-# ifndef __cpp_lib_not_fn
-#   error "__cpp_lib_not_fn should be defined in c++20"
-# endif
-# if __cpp_lib_not_fn != 201603L
-#   error "__cpp_lib_not_fn should have the value 201603L in c++20"
-# endif
-
-# ifndef __cpp_lib_null_iterators
-#   error "__cpp_lib_null_iterators should be defined in c++20"
-# endif
-# if __cpp_lib_null_iterators != 201304L
-#   error "__cpp_lib_null_iterators should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_optional
-#   error "__cpp_lib_optional should be defined in c++20"
-# endif
-# if __cpp_lib_optional != 202106L
-#   error "__cpp_lib_optional should have the value 202106L in c++20"
-# endif
-
-# ifdef __cpp_lib_optional_range_support
-#   error "__cpp_lib_optional_range_support should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should be defined in c++20"
-#   endif
-#   if __cpp_lib_parallel_algorithm != 201603L
-#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_philox_engine
-#   error "__cpp_lib_philox_engine should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
-#   ifndef __cpp_lib_polymorphic_allocator
-#     error "__cpp_lib_polymorphic_allocator should be defined in c++20"
-#   endif
-#   if __cpp_lib_polymorphic_allocator != 201902L
-#     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_polymorphic_allocator
-#     error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_print
-#   error "__cpp_lib_print should not be defined before c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
-#   ifndef __cpp_lib_quoted_string_io
-#     error "__cpp_lib_quoted_string_io should be defined in c++20"
-#   endif
-#   if __cpp_lib_quoted_string_io != 201304L
-#     error "__cpp_lib_quoted_string_io should have the value 201304L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_quoted_string_io
-#     error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++20"
-# endif
-# if __cpp_lib_ranges != 202110L
-#   error "__cpp_lib_ranges should have the value 202110L in c++20"
-# endif
-
-# ifdef __cpp_lib_ranges_as_const
-#   error "__cpp_lib_ranges_as_const should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_chunk
-#   error "__cpp_lib_ranges_chunk should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_chunk_by
-#   error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_concat
-#   error "__cpp_lib_ranges_concat should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_ranges_contains
-#   error "__cpp_lib_ranges_contains should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_find_last
-#   error "__cpp_lib_ranges_find_last should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_join_with
-#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_repeat
-#   error "__cpp_lib_ranges_repeat should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_starts_ends_with
-#   error "__cpp_lib_ranges_starts_ends_with 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"
-# endif
-
-# ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_ratio
-#   error "__cpp_lib_ratio should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_raw_memory_algorithms
-#   error "__cpp_lib_raw_memory_algorithms should be defined in c++20"
-# endif
-# if __cpp_lib_raw_memory_algorithms != 201606L
-#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20"
-# endif
-
-# ifdef __cpp_lib_rcu
-#   error "__cpp_lib_rcu should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_reference_wrapper
-#   error "__cpp_lib_reference_wrapper should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_remove_cvref
-#   error "__cpp_lib_remove_cvref should be defined in c++20"
-# endif
-# if __cpp_lib_remove_cvref != 201711L
-#   error "__cpp_lib_remove_cvref should have the value 201711L in c++20"
-# endif
-
-# ifndef __cpp_lib_result_of_sfinae
-#   error "__cpp_lib_result_of_sfinae should be defined in c++20"
-# endif
-# if __cpp_lib_result_of_sfinae != 201210L
-#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20"
-# endif
-
-# ifndef __cpp_lib_robust_nonmodifying_seq_ops
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20"
-# endif
-# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_sample
-#   error "__cpp_lib_sample should be defined in c++20"
-# endif
-# if __cpp_lib_sample != 201603L
-#   error "__cpp_lib_sample should have the value 201603L in c++20"
-# endif
-
-# ifdef __cpp_lib_saturation_arithmetic
-#   error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_scoped_lock
-#     error "__cpp_lib_scoped_lock should be defined in c++20"
-#   endif
-#   if __cpp_lib_scoped_lock != 201703L
-#     error "__cpp_lib_scoped_lock should have the value 201703L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_scoped_lock
-#     error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_semaphore
-#     error "__cpp_lib_semaphore should be defined in c++20"
-#   endif
-#   if __cpp_lib_semaphore != 201907L
-#     error "__cpp_lib_semaphore should have the value 201907L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_semaphore
-#     error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_senders
-#   error "__cpp_lib_senders should not be defined before c++26"
-# endif
-
-# if _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should be defined in c++20"
-#   endif
-#   if __cpp_lib_shared_mutex != 201505L
-#     error "__cpp_lib_shared_mutex should have the value 201505L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_shared_ptr_arrays
-#   error "__cpp_lib_shared_ptr_arrays should be defined in c++20"
-# endif
-# if __cpp_lib_shared_ptr_arrays != 201707L
-#   error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++20"
-# endif
-
-# ifndef __cpp_lib_shared_ptr_weak_type
-#   error "__cpp_lib_shared_ptr_weak_type should be defined in c++20"
-# endif
-# if __cpp_lib_shared_ptr_weak_type != 201606L
-#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20"
-# endif
-
-# if _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should be defined in c++20"
-#   endif
-#   if __cpp_lib_shared_timed_mutex != 201402L
-#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_shift
-#   error "__cpp_lib_shift should be defined in c++20"
-# endif
-# if __cpp_lib_shift != 201806L
-#   error "__cpp_lib_shift should have the value 201806L in c++20"
-# endif
-
-# ifndef __cpp_lib_smart_ptr_for_overwrite
-#   error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20"
-# endif
-# if __cpp_lib_smart_ptr_for_overwrite != 202002L
-#   error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20"
-# endif
-
-# ifdef __cpp_lib_smart_ptr_owner_equality
-#   error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_source_location
-#   error "__cpp_lib_source_location should be defined in c++20"
-# endif
-# if __cpp_lib_source_location != 201907L
-#   error "__cpp_lib_source_location should have the value 201907L in c++20"
-# endif
-
-# ifndef __cpp_lib_span
-#   error "__cpp_lib_span should be defined in c++20"
-# endif
-# if __cpp_lib_span != 202002L
-#   error "__cpp_lib_span should have the value 202002L in c++20"
-# endif
-
-# ifdef __cpp_lib_span_at
-#   error "__cpp_lib_span_at should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_span_initializer_list
-#   error "__cpp_lib_span_initializer_list should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_spanstream
-#   error "__cpp_lib_spanstream should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_ssize
-#   error "__cpp_lib_ssize should be defined in c++20"
-# endif
-# if __cpp_lib_ssize != 201902L
-#   error "__cpp_lib_ssize should have the value 201902L in c++20"
-# endif
-
-# ifdef __cpp_lib_sstream_from_string_view
-#   error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_stacktrace
-#   error "__cpp_lib_stacktrace 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
-# if __cpp_lib_starts_ends_with != 201711L
-#   error "__cpp_lib_starts_ends_with should have the value 201711L in c++20"
-# endif
-
-# ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++23"
-# endif
-
-# ifdef __cpp_lib_string_resize_and_overwrite
-#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_string_udls
-#   error "__cpp_lib_string_udls should be defined in c++20"
-# endif
-# if __cpp_lib_string_udls != 201304L
-#   error "__cpp_lib_string_udls should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_string_view
-#   error "__cpp_lib_string_view should be defined in c++20"
-# endif
-# if __cpp_lib_string_view != 201803L
-#   error "__cpp_lib_string_view should have the value 201803L in c++20"
-# endif
-
-# ifdef __cpp_lib_submdspan
-#   error "__cpp_lib_submdspan should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
-#   ifndef __cpp_lib_syncbuf
-#     error "__cpp_lib_syncbuf should be defined in c++20"
-#   endif
-#   if __cpp_lib_syncbuf != 201803L
-#     error "__cpp_lib_syncbuf should have the value 201803L in c++20"
-#   endif
-# else
-#   ifdef __cpp_lib_syncbuf
-#     error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_text_encoding
-#   error "__cpp_lib_text_encoding should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_three_way_comparison
-#   error "__cpp_lib_three_way_comparison should be defined in c++20"
-# endif
-# if __cpp_lib_three_way_comparison != 201907L
-#   error "__cpp_lib_three_way_comparison should have the value 201907L in c++20"
-# endif
-
-# ifndef __cpp_lib_to_address
-#   error "__cpp_lib_to_address should be defined in c++20"
-# endif
-# if __cpp_lib_to_address != 201711L
-#   error "__cpp_lib_to_address should have the value 201711L in c++20"
-# endif
-
-# ifndef __cpp_lib_to_array
-#   error "__cpp_lib_to_array should be defined in c++20"
-# endif
-# if __cpp_lib_to_array != 201907L
-#   error "__cpp_lib_to_array should have the value 201907L in c++20"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should be defined in c++20"
-#   endif
-#   if __cpp_lib_to_chars != 201611L
-#     error "__cpp_lib_to_chars should have the value 201611L in c++20"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_to_string
-#   error "__cpp_lib_to_string should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_transformation_trait_aliases
-#   error "__cpp_lib_transformation_trait_aliases should be defined in c++20"
-# endif
-# if __cpp_lib_transformation_trait_aliases != 201304L
-#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_transparent_operators
-#   error "__cpp_lib_transparent_operators should be defined in c++20"
-# endif
-# if __cpp_lib_transparent_operators != 201510L
-#   error "__cpp_lib_transparent_operators should have the value 201510L in c++20"
-# endif
-
-# ifndef __cpp_lib_tuple_element_t
-#   error "__cpp_lib_tuple_element_t should be defined in c++20"
-# endif
-# if __cpp_lib_tuple_element_t != 201402L
-#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++20"
-# endif
-
-# ifdef __cpp_lib_tuple_like
-#   error "__cpp_lib_tuple_like should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_tuples_by_type
-#   error "__cpp_lib_tuples_by_type should be defined in c++20"
-# endif
-# if __cpp_lib_tuples_by_type != 201304L
-#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++20"
-# endif
-
-# ifndef __cpp_lib_type_identity
-#   error "__cpp_lib_type_identity should be defined in c++20"
-# endif
-# if __cpp_lib_type_identity != 201806L
-#   error "__cpp_lib_type_identity should have the value 201806L in c++20"
-# endif
-
-# ifndef __cpp_lib_type_trait_variable_templates
-#   error "__cpp_lib_type_trait_variable_templates should be defined in c++20"
-# endif
-# if __cpp_lib_type_trait_variable_templates != 201510L
-#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20"
-# endif
-
-# ifndef __cpp_lib_uncaught_exceptions
-#   error "__cpp_lib_uncaught_exceptions should be defined in c++20"
-# endif
-# if __cpp_lib_uncaught_exceptions != 201411L
-#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20"
-# endif
-
-# ifndef __cpp_lib_unordered_map_try_emplace
-#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++20"
-# endif
-# if __cpp_lib_unordered_map_try_emplace != 201411L
-#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20"
-# endif
-
-# ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++23"
-# endif
-
-# ifndef __cpp_lib_unwrap_ref
-#   error "__cpp_lib_unwrap_ref should be defined in c++20"
-# endif
-# if __cpp_lib_unwrap_ref != 201811L
-#   error "__cpp_lib_unwrap_ref should have the value 201811L in c++20"
-# endif
-
-# ifndef __cpp_lib_variant
-#   error "__cpp_lib_variant should be defined in c++20"
-# endif
-# if __cpp_lib_variant != 202106L
-#   error "__cpp_lib_variant should have the value 202106L in c++20"
-# endif
-
-# ifndef __cpp_lib_void_t
-#   error "__cpp_lib_void_t should be defined in c++20"
-# endif
-# if __cpp_lib_void_t != 201411L
-#   error "__cpp_lib_void_t should have the value 201411L in c++20"
-# endif
-
-#elif TEST_STD_VER == 23
-
-# ifndef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23"
-# endif
-# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
-# endif
-
-# ifndef __cpp_lib_addressof_constexpr
-#   error "__cpp_lib_addressof_constexpr should be defined in c++23"
-# endif
-# if __cpp_lib_addressof_constexpr != 201603L
-#   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should be defined in c++23"
-# endif
-# if __cpp_lib_allocate_at_least != 202302L
-#   error "__cpp_lib_allocate_at_least should have the value 202302L in c++23"
-# endif
-
-# ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23"
-# endif
-# if __cpp_lib_allocator_traits_is_always_equal != 201411L
-#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
-# endif
-
-# ifndef __cpp_lib_any
-#   error "__cpp_lib_any should be defined in c++23"
-# endif
-# if __cpp_lib_any != 201606L
-#   error "__cpp_lib_any should have the value 201606L in c++23"
-# endif
-
-# ifndef __cpp_lib_apply
-#   error "__cpp_lib_apply should be defined in c++23"
-# endif
-# if __cpp_lib_apply != 201603L
-#   error "__cpp_lib_apply should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_array_constexpr
-#   error "__cpp_lib_array_constexpr should be defined in c++23"
-# endif
-# if __cpp_lib_array_constexpr != 201811L
-#   error "__cpp_lib_array_constexpr should have the value 201811L in c++23"
-# endif
-
-# ifndef __cpp_lib_as_const
-#   error "__cpp_lib_as_const should be defined in c++23"
-# endif
-# if __cpp_lib_as_const != 201510L
-#   error "__cpp_lib_as_const should have the value 201510L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_associative_heterogeneous_erasure
-#     error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23"
-#   endif
-#   if __cpp_lib_associative_heterogeneous_erasure != 202110L
-#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_associative_heterogeneous_erasure
-#     error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_associative_heterogeneous_insertion
-#   error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_assume_aligned
-#   error "__cpp_lib_assume_aligned should be defined in c++23"
-# endif
-# if __cpp_lib_assume_aligned != 201811L
-#   error "__cpp_lib_assume_aligned should have the value 201811L in c++23"
-# endif
-
-# ifndef __cpp_lib_atomic_flag_test
-#   error "__cpp_lib_atomic_flag_test should be defined in c++23"
-# endif
-# if __cpp_lib_atomic_flag_test != 201907L
-#   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23"
-# endif
-
-# ifndef __cpp_lib_atomic_float
-#   error "__cpp_lib_atomic_float should be defined in c++23"
-# endif
-# if __cpp_lib_atomic_float != 201711L
-#   error "__cpp_lib_atomic_float should have the value 201711L in c++23"
-# endif
-
-# ifndef __cpp_lib_atomic_is_always_lock_free
-#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++23"
-# endif
-# if __cpp_lib_atomic_is_always_lock_free != 201603L
-#   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_atomic_lock_free_type_aliases
-#   error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++23"
-# endif
-# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
-#   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23"
-# endif
-
-# ifdef __cpp_lib_atomic_min_max
-#   error "__cpp_lib_atomic_min_max should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_atomic_ref
-#   error "__cpp_lib_atomic_ref should be defined in c++23"
-# endif
-# if __cpp_lib_atomic_ref != 201806L
-#   error "__cpp_lib_atomic_ref should have the value 201806L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_atomic_shared_ptr
-#     error "__cpp_lib_atomic_shared_ptr should be defined in c++23"
-#   endif
-#   if __cpp_lib_atomic_shared_ptr != 201711L
-#     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_atomic_shared_ptr
-#     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_atomic_value_initialization
-#   error "__cpp_lib_atomic_value_initialization should be defined in c++23"
-# endif
-# if __cpp_lib_atomic_value_initialization != 201911L
-#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
-#   ifndef __cpp_lib_atomic_wait
-#     error "__cpp_lib_atomic_wait should be defined in c++23"
-#   endif
-#   if __cpp_lib_atomic_wait != 201907L
-#     error "__cpp_lib_atomic_wait should have the value 201907L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_atomic_wait
-#     error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_barrier
-#     error "__cpp_lib_barrier should be defined in c++23"
-#   endif
-#   if __cpp_lib_barrier != 201907L
-#     error "__cpp_lib_barrier should have the value 201907L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_barrier
-#     error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should be defined in c++23"
-# endif
-# if __cpp_lib_bind_back != 202202L
-#   error "__cpp_lib_bind_back should have the value 202202L in c++23"
-# endif
-
-# ifndef __cpp_lib_bind_front
-#   error "__cpp_lib_bind_front should be defined in c++23"
-# endif
-# if __cpp_lib_bind_front != 201907L
-#   error "__cpp_lib_bind_front should have the value 201907L in c++23"
-# endif
-
-# ifndef __cpp_lib_bit_cast
-#   error "__cpp_lib_bit_cast should be defined in c++23"
-# endif
-# if __cpp_lib_bit_cast != 201806L
-#   error "__cpp_lib_bit_cast should have the value 201806L in c++23"
-# endif
-
-# ifndef __cpp_lib_bitops
-#   error "__cpp_lib_bitops should be defined in c++23"
-# endif
-# if __cpp_lib_bitops != 201907L
-#   error "__cpp_lib_bitops should have the value 201907L in c++23"
-# endif
-
-# ifdef __cpp_lib_bitset
-#   error "__cpp_lib_bitset should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_bool_constant
-#   error "__cpp_lib_bool_constant should be defined in c++23"
-# endif
-# if __cpp_lib_bool_constant != 201505L
-#   error "__cpp_lib_bool_constant should have the value 201505L in c++23"
-# endif
-
-# ifndef __cpp_lib_bounded_array_traits
-#   error "__cpp_lib_bounded_array_traits should be defined in c++23"
-# endif
-# if __cpp_lib_bounded_array_traits != 201902L
-#   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++23"
-# endif
-
-# ifndef __cpp_lib_boyer_moore_searcher
-#   error "__cpp_lib_boyer_moore_searcher should be defined in c++23"
-# endif
-# if __cpp_lib_boyer_moore_searcher != 201603L
-#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_byte
-#   error "__cpp_lib_byte should be defined in c++23"
-# endif
-# if __cpp_lib_byte != 201603L
-#   error "__cpp_lib_byte should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should be defined in c++23"
-# endif
-# if __cpp_lib_byteswap != 202110L
-#   error "__cpp_lib_byteswap should have the value 202110L in c++23"
-# endif
-
-# if defined(__cpp_char8_t)
-#   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++23"
-#   endif
-#   if __cpp_lib_char8_t != 201907L
-#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_chrono
-#   error "__cpp_lib_chrono should be defined in c++23"
-# endif
-# if __cpp_lib_chrono != 201611L
-#   error "__cpp_lib_chrono should have the value 201611L in c++23"
-# endif
-
-# ifndef __cpp_lib_chrono_udls
-#   error "__cpp_lib_chrono_udls should be defined in c++23"
-# endif
-# if __cpp_lib_chrono_udls != 201304L
-#   error "__cpp_lib_chrono_udls should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_clamp
-#   error "__cpp_lib_clamp should be defined in c++23"
-# endif
-# if __cpp_lib_clamp != 201603L
-#   error "__cpp_lib_clamp should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_complex_udls
-#   error "__cpp_lib_complex_udls should be defined in c++23"
-# endif
-# if __cpp_lib_complex_udls != 201309L
-#   error "__cpp_lib_complex_udls should have the value 201309L in c++23"
-# endif
-
-# ifndef __cpp_lib_concepts
-#   error "__cpp_lib_concepts should be defined in c++23"
-# endif
-# if __cpp_lib_concepts != 202002L
-#   error "__cpp_lib_concepts should have the value 202002L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_algorithms
-#   error "__cpp_lib_constexpr_algorithms should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_algorithms != 201806L
-#   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_bitset != 202207L
-#   error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_charconv != 202207L
-#   error "__cpp_lib_constexpr_charconv should have the value 202207L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_constexpr_cmath
-#     error "__cpp_lib_constexpr_cmath should be defined in c++23"
-#   endif
-#   if __cpp_lib_constexpr_cmath != 202202L
-#     error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_constexpr_cmath
-#     error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_constexpr_complex
-#   error "__cpp_lib_constexpr_complex should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_complex != 201711L
-#   error "__cpp_lib_constexpr_complex should have the value 201711L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_dynamic_alloc
-#   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_dynamic_alloc != 201907L
-#   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_forward_list
-#   error "__cpp_lib_constexpr_forward_list should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_functional
-#   error "__cpp_lib_constexpr_functional should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_functional != 201907L
-#   error "__cpp_lib_constexpr_functional should have the value 201907L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_iterator
-#   error "__cpp_lib_constexpr_iterator should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_iterator != 201811L
-#   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_memory
-#   error "__cpp_lib_constexpr_memory should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_memory != 202202L
-#   error "__cpp_lib_constexpr_memory should have the value 202202L in c++23"
-# endif
-
-# ifdef __cpp_lib_constexpr_new
-#   error "__cpp_lib_constexpr_new should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_numeric
-#   error "__cpp_lib_constexpr_numeric should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_numeric != 201911L
-#   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_string
-#   error "__cpp_lib_constexpr_string should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_string != 201907L
-#   error "__cpp_lib_constexpr_string should have the value 201907L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_string_view
-#   error "__cpp_lib_constexpr_string_view should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_string_view != 201811L
-#   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_tuple
-#   error "__cpp_lib_constexpr_tuple should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_tuple != 201811L
-#   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_typeinfo != 202106L
-#   error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_utility
-#   error "__cpp_lib_constexpr_utility should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_utility != 201811L
-#   error "__cpp_lib_constexpr_utility should have the value 201811L in c++23"
-# endif
-
-# ifndef __cpp_lib_constexpr_vector
-#   error "__cpp_lib_constexpr_vector should be defined in c++23"
-# endif
-# if __cpp_lib_constexpr_vector != 201907L
-#   error "__cpp_lib_constexpr_vector should have the value 201907L in c++23"
-# endif
-
-# ifdef __cpp_lib_constrained_equality
-#   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
-
-# ifndef __cpp_lib_coroutine
-#   error "__cpp_lib_coroutine should be defined in c++23"
-# endif
-# if __cpp_lib_coroutine != 201902L
-#   error "__cpp_lib_coroutine should have the value 201902L in c++23"
-# endif
-
-# ifdef __cpp_lib_debugging
-#   error "__cpp_lib_debugging should not be defined before c++26"
-# 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
-
-# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
-#   ifndef __cpp_lib_destroying_delete
-#     error "__cpp_lib_destroying_delete should be defined in c++23"
-#   endif
-#   if __cpp_lib_destroying_delete != 201806L
-#     error "__cpp_lib_destroying_delete should have the value 201806L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_destroying_delete
-#     error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_enable_shared_from_this
-#   error "__cpp_lib_enable_shared_from_this should be defined in c++23"
-# endif
-# if __cpp_lib_enable_shared_from_this != 201603L
-#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_endian
-#   error "__cpp_lib_endian should be defined in c++23"
-# endif
-# if __cpp_lib_endian != 201907L
-#   error "__cpp_lib_endian should have the value 201907L in c++23"
-# endif
-
-# ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++23"
-# endif
-# if __cpp_lib_erase_if != 202002L
-#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
-# endif
-
-# ifndef __cpp_lib_exchange_function
-#   error "__cpp_lib_exchange_function should be defined in c++23"
-# endif
-# if __cpp_lib_exchange_function != 201304L
-#   error "__cpp_lib_exchange_function should have the value 201304L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_execution
-#     error "__cpp_lib_execution should be defined in c++23"
-#   endif
-#   if __cpp_lib_execution != 201902L
-#     error "__cpp_lib_execution should have the value 201902L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_execution
-#     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_expected
-#   error "__cpp_lib_expected should be defined in c++23"
-# endif
-# if __cpp_lib_expected != 202211L
-#   error "__cpp_lib_expected should have the value 202211L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
-#   ifndef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should be defined in c++23"
-#   endif
-#   if __cpp_lib_filesystem != 201703L
-#     error "__cpp_lib_filesystem should have the value 201703L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_flat_map
-#   error "__cpp_lib_flat_map should be defined in c++23"
-# endif
-# if __cpp_lib_flat_map != 202207L
-#   error "__cpp_lib_flat_map should have the value 202207L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   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"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_flat_set
-#     error "__cpp_lib_flat_set should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
-#   ifndef __cpp_lib_format
-#     error "__cpp_lib_format should be defined in c++23"
-#   endif
-#   if __cpp_lib_format != 202110L
-#     error "__cpp_lib_format should have the value 202110L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_format
-#     error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_format_path
-#   error "__cpp_lib_format_path should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should be defined in c++23"
-# endif
-# if __cpp_lib_format_ranges != 202207L
-#   error "__cpp_lib_format_ranges should have the value 202207L in c++23"
-# endif
-
-# ifndef __cpp_lib_format_uchar
-#   error "__cpp_lib_format_uchar should be defined in c++23"
-# endif
-# if __cpp_lib_format_uchar != 202311L
-#   error "__cpp_lib_format_uchar should have the value 202311L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_formatters
-#     error "__cpp_lib_formatters should be defined in c++23"
-#   endif
-#   if __cpp_lib_formatters != 202302L
-#     error "__cpp_lib_formatters should have the value 202302L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_formatters
-#     error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should be defined in c++23"
-# endif
-# if __cpp_lib_forward_like != 202207L
-#   error "__cpp_lib_forward_like should have the value 202207L in c++23"
-# endif
-
-# ifdef __cpp_lib_freestanding_algorithm
-#   error "__cpp_lib_freestanding_algorithm should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_array
-#   error "__cpp_lib_freestanding_array should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_cstring
-#   error "__cpp_lib_freestanding_cstring should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_expected
-#   error "__cpp_lib_freestanding_expected should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_mdspan
-#   error "__cpp_lib_freestanding_mdspan should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_optional
-#   error "__cpp_lib_freestanding_optional should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_string_view
-#   error "__cpp_lib_freestanding_string_view should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_freestanding_variant
-#   error "__cpp_lib_freestanding_variant should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_fstream_native_handle
-#   error "__cpp_lib_fstream_native_handle should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_function_ref
-#   error "__cpp_lib_function_ref should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_gcd_lcm
-#   error "__cpp_lib_gcd_lcm should be defined in c++23"
-# endif
-# if __cpp_lib_gcd_lcm != 201606L
-#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++23"
-# endif
-
-# ifdef __cpp_lib_generate_random
-#   error "__cpp_lib_generate_random should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_generic_associative_lookup
-#   error "__cpp_lib_generic_associative_lookup should be defined in c++23"
-# endif
-# if __cpp_lib_generic_associative_lookup != 201304L
-#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_generic_unordered_lookup
-#   error "__cpp_lib_generic_unordered_lookup should be defined in c++23"
-# endif
-# if __cpp_lib_generic_unordered_lookup != 201811L
-#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
-#   ifndef __cpp_lib_hardware_interference_size
-#     error "__cpp_lib_hardware_interference_size should be defined in c++23"
-#   endif
-#   if __cpp_lib_hardware_interference_size != 201703L
-#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_hardware_interference_size
-#     error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_has_unique_object_representations
-#   error "__cpp_lib_has_unique_object_representations should be defined in c++23"
-# endif
-# if __cpp_lib_has_unique_object_representations != 201606L
-#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23"
-# endif
-
-# ifdef __cpp_lib_hazard_pointer
-#   error "__cpp_lib_hazard_pointer should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_hypot
-#   error "__cpp_lib_hypot should be defined in c++23"
-# endif
-# if __cpp_lib_hypot != 201603L
-#   error "__cpp_lib_hypot should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_incomplete_container_elements
-#   error "__cpp_lib_incomplete_container_elements should be defined in c++23"
-# endif
-# if __cpp_lib_incomplete_container_elements != 201505L
-#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23"
-# endif
-
-# ifdef __cpp_lib_inplace_vector
-#   error "__cpp_lib_inplace_vector should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_int_pow2
-#   error "__cpp_lib_int_pow2 should be defined in c++23"
-# endif
-# if __cpp_lib_int_pow2 != 202002L
-#   error "__cpp_lib_int_pow2 should have the value 202002L in c++23"
-# endif
-
-# ifndef __cpp_lib_integer_comparison_functions
-#   error "__cpp_lib_integer_comparison_functions should be defined in c++23"
-# endif
-# if __cpp_lib_integer_comparison_functions != 202002L
-#   error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++23"
-# endif
-
-# ifndef __cpp_lib_integer_sequence
-#   error "__cpp_lib_integer_sequence should be defined in c++23"
-# endif
-# if __cpp_lib_integer_sequence != 201304L
-#   error "__cpp_lib_integer_sequence should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_integral_constant_callable
-#   error "__cpp_lib_integral_constant_callable should be defined in c++23"
-# endif
-# if __cpp_lib_integral_constant_callable != 201304L
-#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_interpolate
-#   error "__cpp_lib_interpolate should be defined in c++23"
-# endif
-# if __cpp_lib_interpolate != 201902L
-#   error "__cpp_lib_interpolate should have the value 201902L in c++23"
-# endif
-
-# ifndef __cpp_lib_invoke
-#   error "__cpp_lib_invoke should be defined in c++23"
-# endif
-# if __cpp_lib_invoke != 201411L
-#   error "__cpp_lib_invoke should have the value 201411L in c++23"
-# endif
-
-# ifndef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should be defined in c++23"
-# endif
-# if __cpp_lib_invoke_r != 202106L
-#   error "__cpp_lib_invoke_r should have the value 202106L in c++23"
-# endif
-
-# ifndef __cpp_lib_ios_noreplace
-#   error "__cpp_lib_ios_noreplace should be defined in c++23"
-# endif
-# if __cpp_lib_ios_noreplace != 202207L
-#   error "__cpp_lib_ios_noreplace should have the value 202207L in c++23"
-# endif
-
-# ifndef __cpp_lib_is_aggregate
-#   error "__cpp_lib_is_aggregate should be defined in c++23"
-# endif
-# if __cpp_lib_is_aggregate != 201703L
-#   error "__cpp_lib_is_aggregate should have the value 201703L in c++23"
-# endif
-
-# ifndef __cpp_lib_is_constant_evaluated
-#   error "__cpp_lib_is_constant_evaluated should be defined in c++23"
-# endif
-# if __cpp_lib_is_constant_evaluated != 201811L
-#   error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++23"
-# endif
-
-# ifndef __cpp_lib_is_final
-#   error "__cpp_lib_is_final should be defined in c++23"
-# endif
-# if __cpp_lib_is_final != 201402L
-#   error "__cpp_lib_is_final should have the value 201402L in c++23"
-# endif
-
-# if __has_builtin(__builtin_is_implicit_lifetime)
-#   ifndef __cpp_lib_is_implicit_lifetime
-#     error "__cpp_lib_is_implicit_lifetime should be defined in c++23"
-#   endif
-#   if __cpp_lib_is_implicit_lifetime != 202302L
-#     error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_is_implicit_lifetime
-#     error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_is_invocable
-#   error "__cpp_lib_is_invocable should be defined in c++23"
-# endif
-# if __cpp_lib_is_invocable != 201703L
-#   error "__cpp_lib_is_invocable should have the value 201703L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_is_layout_compatible
-#     error "__cpp_lib_is_layout_compatible should be defined in c++23"
-#   endif
-#   if __cpp_lib_is_layout_compatible != 201907L
-#     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_is_layout_compatible
-#     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_is_nothrow_convertible
-#   error "__cpp_lib_is_nothrow_convertible should be defined in c++23"
-# endif
-# if __cpp_lib_is_nothrow_convertible != 201806L
-#   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++23"
-# endif
-
-# ifndef __cpp_lib_is_null_pointer
-#   error "__cpp_lib_is_null_pointer should be defined in c++23"
-# endif
-# if __cpp_lib_is_null_pointer != 201309L
-#   error "__cpp_lib_is_null_pointer should have the value 201309L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_is_pointer_interconvertible
-#     error "__cpp_lib_is_pointer_interconvertible should be defined in c++23"
-#   endif
-#   if __cpp_lib_is_pointer_interconvertible != 201907L
-#     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_is_pointer_interconvertible
-#     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should be defined in c++23"
-# endif
-# if __cpp_lib_is_scoped_enum != 202011L
-#   error "__cpp_lib_is_scoped_enum should have the value 202011L in c++23"
-# endif
-
-# ifndef __cpp_lib_is_swappable
-#   error "__cpp_lib_is_swappable should be defined in c++23"
-# endif
-# if __cpp_lib_is_swappable != 201603L
-#   error "__cpp_lib_is_swappable should have the value 201603L in c++23"
-# endif
-
-# ifdef __cpp_lib_is_virtual_base_of
-#   error "__cpp_lib_is_virtual_base_of should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_is_within_lifetime
-#   error "__cpp_lib_is_within_lifetime should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_jthread
-#     error "__cpp_lib_jthread should be defined in c++23"
-#   endif
-#   if __cpp_lib_jthread != 201911L
-#     error "__cpp_lib_jthread should have the value 201911L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_jthread
-#     error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_latch
-#     error "__cpp_lib_latch should be defined in c++23"
-#   endif
-#   if __cpp_lib_latch != 201907L
-#     error "__cpp_lib_latch should have the value 201907L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_latch
-#     error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_launder
-#   error "__cpp_lib_launder should be defined in c++23"
-# endif
-# if __cpp_lib_launder != 201606L
-#   error "__cpp_lib_launder should have the value 201606L in c++23"
-# endif
-
-# ifdef __cpp_lib_linalg
-#   error "__cpp_lib_linalg should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_list_remove_return_type
-#   error "__cpp_lib_list_remove_return_type should be defined in c++23"
-# endif
-# if __cpp_lib_list_remove_return_type != 201806L
-#   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23"
-# endif
-
-# ifndef __cpp_lib_logical_traits
-#   error "__cpp_lib_logical_traits should be defined in c++23"
-# endif
-# if __cpp_lib_logical_traits != 201510L
-#   error "__cpp_lib_logical_traits should have the value 201510L in c++23"
-# endif
-
-# ifndef __cpp_lib_make_from_tuple
-#   error "__cpp_lib_make_from_tuple should be defined in c++23"
-# endif
-# if __cpp_lib_make_from_tuple != 201606L
-#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++23"
-# endif
-
-# ifndef __cpp_lib_make_reverse_iterator
-#   error "__cpp_lib_make_reverse_iterator should be defined in c++23"
-# endif
-# if __cpp_lib_make_reverse_iterator != 201402L
-#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23"
-# endif
-
-# ifndef __cpp_lib_make_unique
-#   error "__cpp_lib_make_unique should be defined in c++23"
-# endif
-# if __cpp_lib_make_unique != 201304L
-#   error "__cpp_lib_make_unique should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_map_try_emplace
-#   error "__cpp_lib_map_try_emplace should be defined in c++23"
-# endif
-# if __cpp_lib_map_try_emplace != 201411L
-#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++23"
-# endif
-
-# ifndef __cpp_lib_math_constants
-#   error "__cpp_lib_math_constants should be defined in c++23"
-# endif
-# if __cpp_lib_math_constants != 201907L
-#   error "__cpp_lib_math_constants should have the value 201907L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_math_special_functions
-#     error "__cpp_lib_math_special_functions should be defined in c++23"
-#   endif
-#   if __cpp_lib_math_special_functions != 201603L
-#     error "__cpp_lib_math_special_functions should have the value 201603L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_math_special_functions
-#     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should be defined in c++23"
-# endif
-# if __cpp_lib_mdspan != 202207L
-#   error "__cpp_lib_mdspan should have the value 202207L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
-#   ifndef __cpp_lib_memory_resource
-#     error "__cpp_lib_memory_resource should be defined in c++23"
-#   endif
-#   if __cpp_lib_memory_resource != 201603L
-#     error "__cpp_lib_memory_resource should have the value 201603L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_memory_resource
-#     error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_modules
-#   error "__cpp_lib_modules should be defined in c++23"
-# endif
-# if __cpp_lib_modules != 202207L
-#   error "__cpp_lib_modules should have the value 202207L in c++23"
-# endif
-
-# ifndef __cpp_lib_move_iterator_concept
-#   error "__cpp_lib_move_iterator_concept should be defined in c++23"
-# endif
-# if __cpp_lib_move_iterator_concept != 202207L
-#   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_move_only_function
-#     error "__cpp_lib_move_only_function should be defined in c++23"
-#   endif
-#   if __cpp_lib_move_only_function != 202110L
-#     error "__cpp_lib_move_only_function should have the value 202110L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_move_only_function
-#     error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++23"
-# endif
-# if __cpp_lib_node_extract != 201606L
-#   error "__cpp_lib_node_extract should have the value 201606L in c++23"
-# endif
-
-# ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++23"
-# endif
-# if __cpp_lib_nonmember_container_access != 201411L
-#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
-# endif
-
-# ifndef __cpp_lib_not_fn
-#   error "__cpp_lib_not_fn should be defined in c++23"
-# endif
-# if __cpp_lib_not_fn != 201603L
-#   error "__cpp_lib_not_fn should have the value 201603L in c++23"
-# endif
-
-# ifndef __cpp_lib_null_iterators
-#   error "__cpp_lib_null_iterators should be defined in c++23"
-# endif
-# if __cpp_lib_null_iterators != 201304L
-#   error "__cpp_lib_null_iterators should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_optional
-#   error "__cpp_lib_optional should be defined in c++23"
-# endif
-# if __cpp_lib_optional != 202110L
-#   error "__cpp_lib_optional should have the value 202110L in c++23"
-# endif
-
-# ifdef __cpp_lib_optional_range_support
-#   error "__cpp_lib_optional_range_support should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should be defined in c++23"
-# endif
-# if __cpp_lib_out_ptr != 202106L
-#   error "__cpp_lib_out_ptr should have the value 202106L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should be defined in c++23"
-#   endif
-#   if __cpp_lib_parallel_algorithm != 201603L
-#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_philox_engine
-#   error "__cpp_lib_philox_engine should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
-#   ifndef __cpp_lib_polymorphic_allocator
-#     error "__cpp_lib_polymorphic_allocator should be defined in c++23"
-#   endif
-#   if __cpp_lib_polymorphic_allocator != 201902L
-#     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_polymorphic_allocator
-#     error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
-#   ifndef __cpp_lib_print
-#     error "__cpp_lib_print should be defined in c++23"
-#   endif
-#   if __cpp_lib_print != 202207L
-#     error "__cpp_lib_print should have the value 202207L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_print
-#     error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
-#   ifndef __cpp_lib_quoted_string_io
-#     error "__cpp_lib_quoted_string_io should be defined in c++23"
-#   endif
-#   if __cpp_lib_quoted_string_io != 201304L
-#     error "__cpp_lib_quoted_string_io should have the value 201304L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_quoted_string_io
-#     error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++23"
-# endif
-# if __cpp_lib_ranges != 202406L
-#   error "__cpp_lib_ranges should have the value 202406L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_as_const
-#     error "__cpp_lib_ranges_as_const should be defined in c++23"
-#   endif
-#   if __cpp_lib_ranges_as_const != 202207L
-#     error "__cpp_lib_ranges_as_const should have the value 202207L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_as_const
-#     error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_as_rvalue != 202207L
-#   error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_chunk
-#     error "__cpp_lib_ranges_chunk should be defined in c++23"
-#   endif
-#   if __cpp_lib_ranges_chunk != 202202L
-#     error "__cpp_lib_ranges_chunk should have the value 202202L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_chunk
-#     error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_chunk_by
-#   error "__cpp_lib_ranges_chunk_by should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_chunk_by != 202202L
-#   error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23"
-# endif
-
-# ifdef __cpp_lib_ranges_concat
-#   error "__cpp_lib_ranges_concat should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_ranges_contains
-#   error "__cpp_lib_ranges_contains should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_contains != 202207L
-#   error "__cpp_lib_ranges_contains should have the value 202207L in c++23"
-# endif
-
-# ifndef __cpp_lib_ranges_find_last
-#   error "__cpp_lib_ranges_find_last should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_find_last != 202207L
-#   error "__cpp_lib_ranges_find_last should have the value 202207L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_iota
-#     error "__cpp_lib_ranges_iota should be defined in c++23"
-#   endif
-#   if __cpp_lib_ranges_iota != 202202L
-#     error "__cpp_lib_ranges_iota should have the value 202202L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_iota
-#     error "__cpp_lib_ranges_iota should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_join_with
-#     error "__cpp_lib_ranges_join_with should be defined in c++23"
-#   endif
-#   if __cpp_lib_ranges_join_with != 202202L
-#     error "__cpp_lib_ranges_join_with should have the value 202202L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_join_with
-#     error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_repeat
-#   error "__cpp_lib_ranges_repeat should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_repeat != 202207L
-#   error "__cpp_lib_ranges_repeat should have the value 202207L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_slide
-#     error "__cpp_lib_ranges_slide should be defined in c++23"
-#   endif
-#   if __cpp_lib_ranges_slide != 202202L
-#     error "__cpp_lib_ranges_slide should have the value 202202L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_slide
-#     error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_starts_ends_with
-#   error "__cpp_lib_ranges_starts_ends_with should be defined in c++23"
-# endif
-# if __cpp_lib_ranges_starts_ends_with != 202106L
-#   error "__cpp_lib_ranges_starts_ends_with 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"
-# 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_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 // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_zip
-#     error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_ratio
-#   error "__cpp_lib_ratio should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_raw_memory_algorithms
-#   error "__cpp_lib_raw_memory_algorithms should be defined in c++23"
-# endif
-# if __cpp_lib_raw_memory_algorithms != 201606L
-#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23"
-# endif
-
-# ifdef __cpp_lib_rcu
-#   error "__cpp_lib_rcu should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_reference_from_temporary
-#     error "__cpp_lib_reference_from_temporary should be defined in c++23"
-#   endif
-#   if __cpp_lib_reference_from_temporary != 202202L
-#     error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_reference_from_temporary
-#     error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_reference_wrapper
-#   error "__cpp_lib_reference_wrapper should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_remove_cvref
-#   error "__cpp_lib_remove_cvref should be defined in c++23"
-# endif
-# if __cpp_lib_remove_cvref != 201711L
-#   error "__cpp_lib_remove_cvref should have the value 201711L in c++23"
-# endif
-
-# ifndef __cpp_lib_result_of_sfinae
-#   error "__cpp_lib_result_of_sfinae should be defined in c++23"
-# endif
-# if __cpp_lib_result_of_sfinae != 201210L
-#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23"
-# endif
-
-# ifndef __cpp_lib_robust_nonmodifying_seq_ops
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++23"
-# endif
-# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_sample
-#   error "__cpp_lib_sample should be defined in c++23"
-# endif
-# if __cpp_lib_sample != 201603L
-#   error "__cpp_lib_sample should have the value 201603L in c++23"
-# endif
-
-# ifdef __cpp_lib_saturation_arithmetic
-#   error "__cpp_lib_saturation_arithmetic should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_scoped_lock
-#     error "__cpp_lib_scoped_lock should be defined in c++23"
-#   endif
-#   if __cpp_lib_scoped_lock != 201703L
-#     error "__cpp_lib_scoped_lock should have the value 201703L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_scoped_lock
-#     error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_semaphore
-#     error "__cpp_lib_semaphore should be defined in c++23"
-#   endif
-#   if __cpp_lib_semaphore != 201907L
-#     error "__cpp_lib_semaphore should have the value 201907L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_semaphore
-#     error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_senders
-#   error "__cpp_lib_senders should not be defined before c++26"
-# endif
-
-# if _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should be defined in c++23"
-#   endif
-#   if __cpp_lib_shared_mutex != 201505L
-#     error "__cpp_lib_shared_mutex should have the value 201505L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_shared_ptr_arrays
-#   error "__cpp_lib_shared_ptr_arrays should be defined in c++23"
-# endif
-# if __cpp_lib_shared_ptr_arrays != 201707L
-#   error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++23"
-# endif
-
-# ifndef __cpp_lib_shared_ptr_weak_type
-#   error "__cpp_lib_shared_ptr_weak_type should be defined in c++23"
-# endif
-# if __cpp_lib_shared_ptr_weak_type != 201606L
-#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23"
-# endif
-
-# if _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should be defined in c++23"
-#   endif
-#   if __cpp_lib_shared_timed_mutex != 201402L
-#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_shift
-#   error "__cpp_lib_shift should be defined in c++23"
-# endif
-# if __cpp_lib_shift != 201806L
-#   error "__cpp_lib_shift should have the value 201806L in c++23"
-# endif
-
-# ifndef __cpp_lib_smart_ptr_for_overwrite
-#   error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++23"
-# endif
-# if __cpp_lib_smart_ptr_for_overwrite != 202002L
-#   error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23"
-# endif
-
-# ifdef __cpp_lib_smart_ptr_owner_equality
-#   error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_source_location
-#   error "__cpp_lib_source_location should be defined in c++23"
-# endif
-# if __cpp_lib_source_location != 201907L
-#   error "__cpp_lib_source_location should have the value 201907L in c++23"
-# endif
-
-# ifndef __cpp_lib_span
-#   error "__cpp_lib_span should be defined in c++23"
-# endif
-# if __cpp_lib_span != 202002L
-#   error "__cpp_lib_span should have the value 202002L in c++23"
-# endif
-
-# ifdef __cpp_lib_span_at
-#   error "__cpp_lib_span_at should not be defined before c++26"
-# endif
-
-# ifdef __cpp_lib_span_initializer_list
-#   error "__cpp_lib_span_initializer_list should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_spanstream
-#     error "__cpp_lib_spanstream should be defined in c++23"
-#   endif
-#   if __cpp_lib_spanstream != 202106L
-#     error "__cpp_lib_spanstream should have the value 202106L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_spanstream
-#     error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ssize
-#   error "__cpp_lib_ssize should be defined in c++23"
-# endif
-# if __cpp_lib_ssize != 201902L
-#   error "__cpp_lib_ssize should have the value 201902L in c++23"
-# endif
-
-# ifdef __cpp_lib_sstream_from_string_view
-#   error "__cpp_lib_sstream_from_string_view should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_stacktrace
-#     error "__cpp_lib_stacktrace should be defined in c++23"
-#   endif
-#   if __cpp_lib_stacktrace != 202011L
-#     error "__cpp_lib_stacktrace should have the value 202011L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_stacktrace
-#     error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_starts_ends_with
-#   error "__cpp_lib_starts_ends_with should be defined in c++23"
-# endif
-# if __cpp_lib_starts_ends_with != 201711L
-#   error "__cpp_lib_starts_ends_with should have the value 201711L in c++23"
-# endif
-
-# ifndef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should be defined in c++23"
-# endif
-# if __cpp_lib_stdatomic_h != 202011L
-#   error "__cpp_lib_stdatomic_h should have the value 202011L in c++23"
-# endif
-
-# ifndef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should be defined in c++23"
-# endif
-# if __cpp_lib_string_contains != 202011L
-#   error "__cpp_lib_string_contains should have the value 202011L in c++23"
-# endif
-
-# ifndef __cpp_lib_string_resize_and_overwrite
-#   error "__cpp_lib_string_resize_and_overwrite should be defined in c++23"
-# endif
-# if __cpp_lib_string_resize_and_overwrite != 202110L
-#   error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++23"
-# endif
-
-# ifndef __cpp_lib_string_udls
-#   error "__cpp_lib_string_udls should be defined in c++23"
-# endif
-# if __cpp_lib_string_udls != 201304L
-#   error "__cpp_lib_string_udls should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_string_view
-#   error "__cpp_lib_string_view should be defined in c++23"
-# endif
-# if __cpp_lib_string_view != 201803L
-#   error "__cpp_lib_string_view should have the value 201803L in c++23"
-# endif
-
-# ifdef __cpp_lib_submdspan
-#   error "__cpp_lib_submdspan should not be defined before c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
-#   ifndef __cpp_lib_syncbuf
-#     error "__cpp_lib_syncbuf should be defined in c++23"
-#   endif
-#   if __cpp_lib_syncbuf != 201803L
-#     error "__cpp_lib_syncbuf should have the value 201803L in c++23"
-#   endif
-# else
-#   ifdef __cpp_lib_syncbuf
-#     error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_text_encoding
-#   error "__cpp_lib_text_encoding should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_three_way_comparison
-#   error "__cpp_lib_three_way_comparison should be defined in c++23"
-# endif
-# if __cpp_lib_three_way_comparison != 201907L
-#   error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
-# endif
-
-# ifndef __cpp_lib_to_address
-#   error "__cpp_lib_to_address should be defined in c++23"
-# endif
-# if __cpp_lib_to_address != 201711L
-#   error "__cpp_lib_to_address should have the value 201711L in c++23"
-# endif
-
-# ifndef __cpp_lib_to_array
-#   error "__cpp_lib_to_array should be defined in c++23"
-# endif
-# if __cpp_lib_to_array != 201907L
-#   error "__cpp_lib_to_array should have the value 201907L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should be defined in c++23"
-#   endif
-#   if __cpp_lib_to_chars != 201611L
-#     error "__cpp_lib_to_chars should have the value 201611L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifdef __cpp_lib_to_string
-#   error "__cpp_lib_to_string should not be defined before c++26"
-# endif
-
-# ifndef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should be defined in c++23"
-# endif
-# if __cpp_lib_to_underlying != 202102L
-#   error "__cpp_lib_to_underlying should have the value 202102L in c++23"
-# endif
-
-# ifndef __cpp_lib_transformation_trait_aliases
-#   error "__cpp_lib_transformation_trait_aliases should be defined in c++23"
-# endif
-# if __cpp_lib_transformation_trait_aliases != 201304L
-#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_transparent_operators
-#   error "__cpp_lib_transparent_operators should be defined in c++23"
-# endif
-# if __cpp_lib_transparent_operators != 201510L
-#   error "__cpp_lib_transparent_operators should have the value 201510L in c++23"
-# endif
-
-# ifndef __cpp_lib_tuple_element_t
-#   error "__cpp_lib_tuple_element_t should be defined in c++23"
-# endif
-# if __cpp_lib_tuple_element_t != 201402L
-#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++23"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_tuple_like
-#     error "__cpp_lib_tuple_like should be defined in c++23"
-#   endif
-#   if __cpp_lib_tuple_like != 202207L
-#     error "__cpp_lib_tuple_like should have the value 202207L in c++23"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_tuple_like
-#     error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_tuples_by_type
-#   error "__cpp_lib_tuples_by_type should be defined in c++23"
-# endif
-# if __cpp_lib_tuples_by_type != 201304L
-#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++23"
-# endif
-
-# ifndef __cpp_lib_type_identity
-#   error "__cpp_lib_type_identity should be defined in c++23"
-# endif
-# if __cpp_lib_type_identity != 201806L
-#   error "__cpp_lib_type_identity should have the value 201806L in c++23"
-# endif
-
-# ifndef __cpp_lib_type_trait_variable_templates
-#   error "__cpp_lib_type_trait_variable_templates should be defined in c++23"
-# endif
-# if __cpp_lib_type_trait_variable_templates != 201510L
-#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++23"
-# endif
-
-# ifndef __cpp_lib_uncaught_exceptions
-#   error "__cpp_lib_uncaught_exceptions should be defined in c++23"
-# endif
-# if __cpp_lib_uncaught_exceptions != 201411L
-#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23"
-# endif
-
-# ifndef __cpp_lib_unordered_map_try_emplace
-#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++23"
-# endif
-# if __cpp_lib_unordered_map_try_emplace != 201411L
-#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23"
-# endif
-
-# ifndef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should be defined in c++23"
-# endif
-# if __cpp_lib_unreachable != 202202L
-#   error "__cpp_lib_unreachable should have the value 202202L in c++23"
-# endif
-
-# ifndef __cpp_lib_unwrap_ref
-#   error "__cpp_lib_unwrap_ref should be defined in c++23"
-# endif
-# if __cpp_lib_unwrap_ref != 201811L
-#   error "__cpp_lib_unwrap_ref should have the value 201811L in c++23"
-# endif
-
-# ifndef __cpp_lib_variant
-#   error "__cpp_lib_variant should be defined in c++23"
-# endif
-# if __cpp_lib_variant != 202106L
-#   error "__cpp_lib_variant should have the value 202106L in c++23"
-# endif
-
-# ifndef __cpp_lib_void_t
-#   error "__cpp_lib_void_t should be defined in c++23"
-# endif
-# if __cpp_lib_void_t != 201411L
-#   error "__cpp_lib_void_t should have the value 201411L in c++23"
-# endif
-
-#elif TEST_STD_VER > 23
-
-# ifndef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26"
-# endif
-# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26"
-# endif
-
-# ifndef __cpp_lib_addressof_constexpr
-#   error "__cpp_lib_addressof_constexpr should be defined in c++26"
-# endif
-# if __cpp_lib_addressof_constexpr != 201603L
-#   error "__cpp_lib_addressof_constexpr should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should be defined in c++26"
-# endif
-# if __cpp_lib_allocate_at_least != 202302L
-#   error "__cpp_lib_allocate_at_least should have the value 202302L in c++26"
-# endif
-
-# ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"
-# endif
-# if __cpp_lib_allocator_traits_is_always_equal != 201411L
-#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"
-# endif
-
-# ifndef __cpp_lib_any
-#   error "__cpp_lib_any should be defined in c++26"
-# endif
-# if __cpp_lib_any != 201606L
-#   error "__cpp_lib_any should have the value 201606L in c++26"
-# endif
-
-# ifndef __cpp_lib_apply
-#   error "__cpp_lib_apply should be defined in c++26"
-# endif
-# if __cpp_lib_apply != 201603L
-#   error "__cpp_lib_apply should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_array_constexpr
-#   error "__cpp_lib_array_constexpr should be defined in c++26"
-# endif
-# if __cpp_lib_array_constexpr != 201811L
-#   error "__cpp_lib_array_constexpr should have the value 201811L in c++26"
-# endif
-
-# ifndef __cpp_lib_as_const
-#   error "__cpp_lib_as_const should be defined in c++26"
-# endif
-# if __cpp_lib_as_const != 201510L
-#   error "__cpp_lib_as_const should have the value 201510L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_associative_heterogeneous_erasure
-#     error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26"
-#   endif
-#   if __cpp_lib_associative_heterogeneous_erasure != 202110L
-#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_associative_heterogeneous_erasure
-#     error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_associative_heterogeneous_insertion
-#     error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26"
-#   endif
-#   if __cpp_lib_associative_heterogeneous_insertion != 202306L
-#     error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_associative_heterogeneous_insertion
-#     error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_assume_aligned
-#   error "__cpp_lib_assume_aligned should be defined in c++26"
-# endif
-# if __cpp_lib_assume_aligned != 201811L
-#   error "__cpp_lib_assume_aligned should have the value 201811L in c++26"
-# endif
-
-# ifndef __cpp_lib_atomic_flag_test
-#   error "__cpp_lib_atomic_flag_test should be defined in c++26"
-# endif
-# if __cpp_lib_atomic_flag_test != 201907L
-#   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26"
-# endif
-
-# ifndef __cpp_lib_atomic_float
-#   error "__cpp_lib_atomic_float should be defined in c++26"
-# endif
-# if __cpp_lib_atomic_float != 201711L
-#   error "__cpp_lib_atomic_float should have the value 201711L in c++26"
-# endif
-
-# ifndef __cpp_lib_atomic_is_always_lock_free
-#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++26"
-# endif
-# if __cpp_lib_atomic_is_always_lock_free != 201603L
-#   error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_atomic_lock_free_type_aliases
-#   error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++26"
-# endif
-# if __cpp_lib_atomic_lock_free_type_aliases != 201907L
-#   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_atomic_min_max
-#     error "__cpp_lib_atomic_min_max should be defined in c++26"
-#   endif
-#   if __cpp_lib_atomic_min_max != 202403L
-#     error "__cpp_lib_atomic_min_max should have the value 202403L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_atomic_min_max
-#     error "__cpp_lib_atomic_min_max should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_atomic_ref
-#   error "__cpp_lib_atomic_ref should be defined in c++26"
-# endif
-# if __cpp_lib_atomic_ref != 201806L
-#   error "__cpp_lib_atomic_ref should have the value 201806L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_atomic_shared_ptr
-#     error "__cpp_lib_atomic_shared_ptr should be defined in c++26"
-#   endif
-#   if __cpp_lib_atomic_shared_ptr != 201711L
-#     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_atomic_shared_ptr
-#     error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_atomic_value_initialization
-#   error "__cpp_lib_atomic_value_initialization should be defined in c++26"
-# endif
-# if __cpp_lib_atomic_value_initialization != 201911L
-#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC
-#   ifndef __cpp_lib_atomic_wait
-#     error "__cpp_lib_atomic_wait should be defined in c++26"
-#   endif
-#   if __cpp_lib_atomic_wait != 201907L
-#     error "__cpp_lib_atomic_wait should have the value 201907L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_atomic_wait
-#     error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_barrier
-#     error "__cpp_lib_barrier should be defined in c++26"
-#   endif
-#   if __cpp_lib_barrier != 201907L
-#     error "__cpp_lib_barrier should have the value 201907L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_barrier
-#     error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should be defined in c++26"
-# endif
-# if __cpp_lib_bind_back != 202202L
-#   error "__cpp_lib_bind_back should have the value 202202L in c++26"
-# endif
-
-# ifndef __cpp_lib_bind_front
-#   error "__cpp_lib_bind_front should be defined in c++26"
-# endif
-# if __cpp_lib_bind_front != 202306L
-#   error "__cpp_lib_bind_front should have the value 202306L in c++26"
-# endif
-
-# ifndef __cpp_lib_bit_cast
-#   error "__cpp_lib_bit_cast should be defined in c++26"
-# endif
-# if __cpp_lib_bit_cast != 201806L
-#   error "__cpp_lib_bit_cast should have the value 201806L in c++26"
-# endif
-
-# ifndef __cpp_lib_bitops
-#   error "__cpp_lib_bitops should be defined in c++26"
-# endif
-# if __cpp_lib_bitops != 201907L
-#   error "__cpp_lib_bitops should have the value 201907L in c++26"
-# endif
-
-# ifndef __cpp_lib_bitset
-#   error "__cpp_lib_bitset should be defined in c++26"
-# endif
-# if __cpp_lib_bitset != 202306L
-#   error "__cpp_lib_bitset should have the value 202306L in c++26"
-# endif
-
-# ifndef __cpp_lib_bool_constant
-#   error "__cpp_lib_bool_constant should be defined in c++26"
-# endif
-# if __cpp_lib_bool_constant != 201505L
-#   error "__cpp_lib_bool_constant should have the value 201505L in c++26"
-# endif
-
-# ifndef __cpp_lib_bounded_array_traits
-#   error "__cpp_lib_bounded_array_traits should be defined in c++26"
-# endif
-# if __cpp_lib_bounded_array_traits != 201902L
-#   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++26"
-# endif
-
-# ifndef __cpp_lib_boyer_moore_searcher
-#   error "__cpp_lib_boyer_moore_searcher should be defined in c++26"
-# endif
-# if __cpp_lib_boyer_moore_searcher != 201603L
-#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_byte
-#   error "__cpp_lib_byte should be defined in c++26"
-# endif
-# if __cpp_lib_byte != 201603L
-#   error "__cpp_lib_byte should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should be defined in c++26"
-# endif
-# if __cpp_lib_byteswap != 202110L
-#   error "__cpp_lib_byteswap should have the value 202110L in c++26"
-# endif
-
-# if defined(__cpp_char8_t)
-#   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++26"
-#   endif
-#   if __cpp_lib_char8_t != 201907L
-#     error "__cpp_lib_char8_t should have the value 201907L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_chrono
-#   error "__cpp_lib_chrono should be defined in c++26"
-# endif
-# if __cpp_lib_chrono != 201611L
-#   error "__cpp_lib_chrono should have the value 201611L in c++26"
-# endif
-
-# ifndef __cpp_lib_chrono_udls
-#   error "__cpp_lib_chrono_udls should be defined in c++26"
-# endif
-# if __cpp_lib_chrono_udls != 201304L
-#   error "__cpp_lib_chrono_udls should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_clamp
-#   error "__cpp_lib_clamp should be defined in c++26"
-# endif
-# if __cpp_lib_clamp != 201603L
-#   error "__cpp_lib_clamp should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_complex_udls
-#   error "__cpp_lib_complex_udls should be defined in c++26"
-# endif
-# if __cpp_lib_complex_udls != 201309L
-#   error "__cpp_lib_complex_udls should have the value 201309L in c++26"
-# endif
-
-# ifndef __cpp_lib_concepts
-#   error "__cpp_lib_concepts should be defined in c++26"
-# endif
-# if __cpp_lib_concepts != 202002L
-#   error "__cpp_lib_concepts should have the value 202002L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_algorithms
-#   error "__cpp_lib_constexpr_algorithms should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_algorithms != 201806L
-#   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_bitset != 202207L
-#   error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_charconv != 202207L
-#   error "__cpp_lib_constexpr_charconv should have the value 202207L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_constexpr_cmath
-#     error "__cpp_lib_constexpr_cmath should be defined in c++26"
-#   endif
-#   if __cpp_lib_constexpr_cmath != 202202L
-#     error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_constexpr_cmath
-#     error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_constexpr_complex
-#   error "__cpp_lib_constexpr_complex should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_complex != 201711L
-#   error "__cpp_lib_constexpr_complex should have the value 201711L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_dynamic_alloc
-#   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_dynamic_alloc != 201907L
-#   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_forward_list
-#   error "__cpp_lib_constexpr_forward_list should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_forward_list != 202502L
-#   error "__cpp_lib_constexpr_forward_list should have the value 202502L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_functional
-#   error "__cpp_lib_constexpr_functional should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_functional != 201907L
-#   error "__cpp_lib_constexpr_functional should have the value 201907L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_iterator
-#   error "__cpp_lib_constexpr_iterator should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_iterator != 201811L
-#   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_memory
-#   error "__cpp_lib_constexpr_memory should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_memory != 202202L
-#   error "__cpp_lib_constexpr_memory should have the value 202202L in c++26"
-# endif
-
-# if !defined(_LIBCPP_ABI_VCRUNTIME)
-#   ifndef __cpp_lib_constexpr_new
-#     error "__cpp_lib_constexpr_new should be defined in c++26"
-#   endif
-#   if __cpp_lib_constexpr_new != 202406L
-#     error "__cpp_lib_constexpr_new should have the value 202406L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_constexpr_new
-#     error "__cpp_lib_constexpr_new should not be defined when the requirement '!defined(_LIBCPP_ABI_VCRUNTIME)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_constexpr_numeric
-#   error "__cpp_lib_constexpr_numeric should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_numeric != 201911L
-#   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_string
-#   error "__cpp_lib_constexpr_string should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_string != 201907L
-#   error "__cpp_lib_constexpr_string should have the value 201907L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_string_view
-#   error "__cpp_lib_constexpr_string_view should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_string_view != 201811L
-#   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_tuple
-#   error "__cpp_lib_constexpr_tuple should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_tuple != 201811L
-#   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_typeinfo != 202106L
-#   error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_utility
-#   error "__cpp_lib_constexpr_utility should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_utility != 201811L
-#   error "__cpp_lib_constexpr_utility should have the value 201811L in c++26"
-# endif
-
-# ifndef __cpp_lib_constexpr_vector
-#   error "__cpp_lib_constexpr_vector should be defined in c++26"
-# endif
-# if __cpp_lib_constexpr_vector != 201907L
-#   error "__cpp_lib_constexpr_vector should have the value 201907L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_constrained_equality
-#     error "__cpp_lib_constrained_equality should be defined in c++26"
-#   endif
-#   if __cpp_lib_constrained_equality != 202403L
-#     error "__cpp_lib_constrained_equality should have the value 202403L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_constrained_equality
-#     error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!"
-#   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"
-#   endif
-#   if __cpp_lib_copyable_function != 202306L
-#     error "__cpp_lib_copyable_function should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_copyable_function
-#     error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_coroutine
-#   error "__cpp_lib_coroutine should be defined in c++26"
-# endif
-# if __cpp_lib_coroutine != 201902L
-#   error "__cpp_lib_coroutine should have the value 201902L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_debugging
-#     error "__cpp_lib_debugging should be defined in c++26"
-#   endif
-#   if __cpp_lib_debugging != 202311L
-#     error "__cpp_lib_debugging should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_debugging
-#     error "__cpp_lib_debugging should not be defined because it is unimplemented in libc++!"
-#   endif
-# 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"
-#   endif
-#   if __cpp_lib_default_template_type_for_algorithm_values != 202403L
-#     error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_default_template_type_for_algorithm_values
-#     error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L
-#   ifndef __cpp_lib_destroying_delete
-#     error "__cpp_lib_destroying_delete should be defined in c++26"
-#   endif
-#   if __cpp_lib_destroying_delete != 201806L
-#     error "__cpp_lib_destroying_delete should have the value 201806L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_destroying_delete
-#     error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_enable_shared_from_this
-#   error "__cpp_lib_enable_shared_from_this should be defined in c++26"
-# endif
-# if __cpp_lib_enable_shared_from_this != 201603L
-#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_endian
-#   error "__cpp_lib_endian should be defined in c++26"
-# endif
-# if __cpp_lib_endian != 201907L
-#   error "__cpp_lib_endian should have the value 201907L in c++26"
-# endif
-
-# ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++26"
-# endif
-# if __cpp_lib_erase_if != 202002L
-#   error "__cpp_lib_erase_if should have the value 202002L in c++26"
-# endif
-
-# ifndef __cpp_lib_exchange_function
-#   error "__cpp_lib_exchange_function should be defined in c++26"
-# endif
-# if __cpp_lib_exchange_function != 201304L
-#   error "__cpp_lib_exchange_function should have the value 201304L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_execution
-#     error "__cpp_lib_execution should be defined in c++26"
-#   endif
-#   if __cpp_lib_execution != 201902L
-#     error "__cpp_lib_execution should have the value 201902L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_execution
-#     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_expected
-#   error "__cpp_lib_expected should be defined in c++26"
-# endif
-# if __cpp_lib_expected != 202211L
-#   error "__cpp_lib_expected should have the value 202211L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)
-#   ifndef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should be defined in c++26"
-#   endif
-#   if __cpp_lib_filesystem != 201703L
-#     error "__cpp_lib_filesystem should have the value 201703L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_flat_map
-#   error "__cpp_lib_flat_map should be defined in c++26"
-# endif
-# if __cpp_lib_flat_map != 202207L
-#   error "__cpp_lib_flat_map should have the value 202207L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   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"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_flat_set
-#     error "__cpp_lib_flat_set should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
-#   ifndef __cpp_lib_format
-#     error "__cpp_lib_format should be defined in c++26"
-#   endif
-#   if __cpp_lib_format != 202110L
-#     error "__cpp_lib_format should have the value 202110L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_format
-#     error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_format_path
-#     error "__cpp_lib_format_path should be defined in c++26"
-#   endif
-#   if __cpp_lib_format_path != 202403L
-#     error "__cpp_lib_format_path should have the value 202403L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_format_path
-#     error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should be defined in c++26"
-# endif
-# if __cpp_lib_format_ranges != 202207L
-#   error "__cpp_lib_format_ranges should have the value 202207L in c++26"
-# endif
-
-# ifndef __cpp_lib_format_uchar
-#   error "__cpp_lib_format_uchar should be defined in c++26"
-# endif
-# if __cpp_lib_format_uchar != 202311L
-#   error "__cpp_lib_format_uchar should have the value 202311L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_formatters
-#     error "__cpp_lib_formatters should be defined in c++26"
-#   endif
-#   if __cpp_lib_formatters != 202302L
-#     error "__cpp_lib_formatters should have the value 202302L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_formatters
-#     error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should be defined in c++26"
-# endif
-# if __cpp_lib_forward_like != 202207L
-#   error "__cpp_lib_forward_like should have the value 202207L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_freestanding_algorithm
-#     error "__cpp_lib_freestanding_algorithm should be defined in c++26"
-#   endif
-#   if __cpp_lib_freestanding_algorithm != 202311L
-#     error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_freestanding_algorithm
-#     error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_freestanding_array
-#     error "__cpp_lib_freestanding_array should be defined in c++26"
-#   endif
-#   if __cpp_lib_freestanding_array != 202311L
-#     error "__cpp_lib_freestanding_array should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_freestanding_array
-#     error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_freestanding_cstring
-#     error "__cpp_lib_freestanding_cstring should be defined in c++26"
-#   endif
-#   if __cpp_lib_freestanding_cstring != 202306L
-#     error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_freestanding_cstring
-#     error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_freestanding_expected
-#     error "__cpp_lib_freestanding_expected should be defined in c++26"
-#   endif
-#   if __cpp_lib_freestanding_expected != 202311L
-#     error "__cpp_lib_freestanding_expected should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_freestanding_expected
-#     error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_freestanding_mdspan
-#     error "__cpp_lib_freestanding_mdspan should be defined in c++26"
-#   endif
-#   if __cpp_lib_freestanding_mdspan != 202311L
-#     error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_freestanding_mdspan
-#     error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_freestanding_optional
-#     error "__cpp_lib_freestanding_optional should be defined in c++26"
-#   endif
-#   if __cpp_lib_freestanding_optional != 202311L
-#     error "__cpp_lib_freestanding_optional should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_freestanding_optional
-#     error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_freestanding_string_view
-#     error "__cpp_lib_freestanding_string_view should be defined in c++26"
-#   endif
-#   if __cpp_lib_freestanding_string_view != 202311L
-#     error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_freestanding_string_view
-#     error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_freestanding_variant
-#     error "__cpp_lib_freestanding_variant should be defined in c++26"
-#   endif
-#   if __cpp_lib_freestanding_variant != 202311L
-#     error "__cpp_lib_freestanding_variant should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_freestanding_variant
-#     error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)
-#   ifndef __cpp_lib_fstream_native_handle
-#     error "__cpp_lib_fstream_native_handle should be defined in c++26"
-#   endif
-#   if __cpp_lib_fstream_native_handle != 202306L
-#     error "__cpp_lib_fstream_native_handle should have the value 202306L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_fstream_native_handle
-#     error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_function_ref
-#     error "__cpp_lib_function_ref should be defined in c++26"
-#   endif
-#   if __cpp_lib_function_ref != 202306L
-#     error "__cpp_lib_function_ref should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_function_ref
-#     error "__cpp_lib_function_ref should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_gcd_lcm
-#   error "__cpp_lib_gcd_lcm should be defined in c++26"
-# endif
-# if __cpp_lib_gcd_lcm != 201606L
-#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_generate_random
-#     error "__cpp_lib_generate_random should be defined in c++26"
-#   endif
-#   if __cpp_lib_generate_random != 202403L
-#     error "__cpp_lib_generate_random should have the value 202403L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_generate_random
-#     error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_generic_associative_lookup
-#   error "__cpp_lib_generic_associative_lookup should be defined in c++26"
-# endif
-# if __cpp_lib_generic_associative_lookup != 201304L
-#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_generic_unordered_lookup
-#   error "__cpp_lib_generic_unordered_lookup should be defined in c++26"
-# endif
-# if __cpp_lib_generic_unordered_lookup != 201811L
-#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))
-#   ifndef __cpp_lib_hardware_interference_size
-#     error "__cpp_lib_hardware_interference_size should be defined in c++26"
-#   endif
-#   if __cpp_lib_hardware_interference_size != 201703L
-#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_hardware_interference_size
-#     error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_has_unique_object_representations
-#   error "__cpp_lib_has_unique_object_representations should be defined in c++26"
-# endif
-# if __cpp_lib_has_unique_object_representations != 201606L
-#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_hazard_pointer
-#     error "__cpp_lib_hazard_pointer should be defined in c++26"
-#   endif
-#   if __cpp_lib_hazard_pointer != 202306L
-#     error "__cpp_lib_hazard_pointer should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_hazard_pointer
-#     error "__cpp_lib_hazard_pointer should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_hypot
-#   error "__cpp_lib_hypot should be defined in c++26"
-# endif
-# if __cpp_lib_hypot != 201603L
-#   error "__cpp_lib_hypot should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_incomplete_container_elements
-#   error "__cpp_lib_incomplete_container_elements should be defined in c++26"
-# endif
-# if __cpp_lib_incomplete_container_elements != 201505L
-#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_inplace_vector
-#     error "__cpp_lib_inplace_vector should be defined in c++26"
-#   endif
-#   if __cpp_lib_inplace_vector != 202406L
-#     error "__cpp_lib_inplace_vector should have the value 202406L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_inplace_vector
-#     error "__cpp_lib_inplace_vector should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_int_pow2
-#   error "__cpp_lib_int_pow2 should be defined in c++26"
-# endif
-# if __cpp_lib_int_pow2 != 202002L
-#   error "__cpp_lib_int_pow2 should have the value 202002L in c++26"
-# endif
-
-# ifndef __cpp_lib_integer_comparison_functions
-#   error "__cpp_lib_integer_comparison_functions should be defined in c++26"
-# endif
-# if __cpp_lib_integer_comparison_functions != 202002L
-#   error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++26"
-# endif
-
-# ifndef __cpp_lib_integer_sequence
-#   error "__cpp_lib_integer_sequence should be defined in c++26"
-# endif
-# if __cpp_lib_integer_sequence != 201304L
-#   error "__cpp_lib_integer_sequence should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_integral_constant_callable
-#   error "__cpp_lib_integral_constant_callable should be defined in c++26"
-# endif
-# if __cpp_lib_integral_constant_callable != 201304L
-#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_interpolate
-#   error "__cpp_lib_interpolate should be defined in c++26"
-# endif
-# if __cpp_lib_interpolate != 201902L
-#   error "__cpp_lib_interpolate should have the value 201902L in c++26"
-# endif
-
-# ifndef __cpp_lib_invoke
-#   error "__cpp_lib_invoke should be defined in c++26"
-# endif
-# if __cpp_lib_invoke != 201411L
-#   error "__cpp_lib_invoke should have the value 201411L in c++26"
-# endif
-
-# ifndef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should be defined in c++26"
-# endif
-# if __cpp_lib_invoke_r != 202106L
-#   error "__cpp_lib_invoke_r should have the value 202106L in c++26"
-# endif
-
-# ifndef __cpp_lib_ios_noreplace
-#   error "__cpp_lib_ios_noreplace should be defined in c++26"
-# endif
-# if __cpp_lib_ios_noreplace != 202207L
-#   error "__cpp_lib_ios_noreplace should have the value 202207L in c++26"
-# endif
-
-# ifndef __cpp_lib_is_aggregate
-#   error "__cpp_lib_is_aggregate should be defined in c++26"
-# endif
-# if __cpp_lib_is_aggregate != 201703L
-#   error "__cpp_lib_is_aggregate should have the value 201703L in c++26"
-# endif
-
-# ifndef __cpp_lib_is_constant_evaluated
-#   error "__cpp_lib_is_constant_evaluated should be defined in c++26"
-# endif
-# if __cpp_lib_is_constant_evaluated != 201811L
-#   error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++26"
-# endif
-
-# ifndef __cpp_lib_is_final
-#   error "__cpp_lib_is_final should be defined in c++26"
-# endif
-# if __cpp_lib_is_final != 201402L
-#   error "__cpp_lib_is_final should have the value 201402L in c++26"
-# endif
-
-# if __has_builtin(__builtin_is_implicit_lifetime)
-#   ifndef __cpp_lib_is_implicit_lifetime
-#     error "__cpp_lib_is_implicit_lifetime should be defined in c++26"
-#   endif
-#   if __cpp_lib_is_implicit_lifetime != 202302L
-#     error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_is_implicit_lifetime
-#     error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_is_invocable
-#   error "__cpp_lib_is_invocable should be defined in c++26"
-# endif
-# if __cpp_lib_is_invocable != 201703L
-#   error "__cpp_lib_is_invocable should have the value 201703L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_is_layout_compatible
-#     error "__cpp_lib_is_layout_compatible should be defined in c++26"
-#   endif
-#   if __cpp_lib_is_layout_compatible != 201907L
-#     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_is_layout_compatible
-#     error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_is_nothrow_convertible
-#   error "__cpp_lib_is_nothrow_convertible should be defined in c++26"
-# endif
-# if __cpp_lib_is_nothrow_convertible != 201806L
-#   error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++26"
-# endif
-
-# ifndef __cpp_lib_is_null_pointer
-#   error "__cpp_lib_is_null_pointer should be defined in c++26"
-# endif
-# if __cpp_lib_is_null_pointer != 201309L
-#   error "__cpp_lib_is_null_pointer should have the value 201309L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_is_pointer_interconvertible
-#     error "__cpp_lib_is_pointer_interconvertible should be defined in c++26"
-#   endif
-#   if __cpp_lib_is_pointer_interconvertible != 201907L
-#     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_is_pointer_interconvertible
-#     error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should be defined in c++26"
-# endif
-# if __cpp_lib_is_scoped_enum != 202011L
-#   error "__cpp_lib_is_scoped_enum should have the value 202011L in c++26"
-# endif
-
-# ifndef __cpp_lib_is_swappable
-#   error "__cpp_lib_is_swappable should be defined in c++26"
-# endif
-# if __cpp_lib_is_swappable != 201603L
-#   error "__cpp_lib_is_swappable should have the value 201603L in c++26"
-# endif
-
-# if __has_builtin(__builtin_is_virtual_base_of)
-#   ifndef __cpp_lib_is_virtual_base_of
-#     error "__cpp_lib_is_virtual_base_of should be defined in c++26"
-#   endif
-#   if __cpp_lib_is_virtual_base_of != 202406L
-#     error "__cpp_lib_is_virtual_base_of should have the value 202406L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_is_virtual_base_of
-#     error "__cpp_lib_is_virtual_base_of should not be defined when the requirement '__has_builtin(__builtin_is_virtual_base_of)' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_is_within_lifetime
-#     error "__cpp_lib_is_within_lifetime should be defined in c++26"
-#   endif
-#   if __cpp_lib_is_within_lifetime != 202306L
-#     error "__cpp_lib_is_within_lifetime should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_is_within_lifetime
-#     error "__cpp_lib_is_within_lifetime should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_jthread
-#     error "__cpp_lib_jthread should be defined in c++26"
-#   endif
-#   if __cpp_lib_jthread != 201911L
-#     error "__cpp_lib_jthread should have the value 201911L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_jthread
-#     error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_latch
-#     error "__cpp_lib_latch should be defined in c++26"
-#   endif
-#   if __cpp_lib_latch != 201907L
-#     error "__cpp_lib_latch should have the value 201907L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_latch
-#     error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_launder
-#   error "__cpp_lib_launder should be defined in c++26"
-# endif
-# if __cpp_lib_launder != 201606L
-#   error "__cpp_lib_launder should have the value 201606L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_linalg
-#     error "__cpp_lib_linalg should be defined in c++26"
-#   endif
-#   if __cpp_lib_linalg != 202311L
-#     error "__cpp_lib_linalg should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_linalg
-#     error "__cpp_lib_linalg should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_list_remove_return_type
-#   error "__cpp_lib_list_remove_return_type should be defined in c++26"
-# endif
-# if __cpp_lib_list_remove_return_type != 201806L
-#   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26"
-# endif
-
-# ifndef __cpp_lib_logical_traits
-#   error "__cpp_lib_logical_traits should be defined in c++26"
-# endif
-# if __cpp_lib_logical_traits != 201510L
-#   error "__cpp_lib_logical_traits should have the value 201510L in c++26"
-# endif
-
-# ifndef __cpp_lib_make_from_tuple
-#   error "__cpp_lib_make_from_tuple should be defined in c++26"
-# endif
-# if __cpp_lib_make_from_tuple != 201606L
-#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++26"
-# endif
-
-# ifndef __cpp_lib_make_reverse_iterator
-#   error "__cpp_lib_make_reverse_iterator should be defined in c++26"
-# endif
-# if __cpp_lib_make_reverse_iterator != 201402L
-#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++26"
-# endif
-
-# ifndef __cpp_lib_make_unique
-#   error "__cpp_lib_make_unique should be defined in c++26"
-# endif
-# if __cpp_lib_make_unique != 201304L
-#   error "__cpp_lib_make_unique should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_map_try_emplace
-#   error "__cpp_lib_map_try_emplace should be defined in c++26"
-# endif
-# if __cpp_lib_map_try_emplace != 201411L
-#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++26"
-# endif
-
-# ifndef __cpp_lib_math_constants
-#   error "__cpp_lib_math_constants should be defined in c++26"
-# endif
-# if __cpp_lib_math_constants != 201907L
-#   error "__cpp_lib_math_constants should have the value 201907L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_math_special_functions
-#     error "__cpp_lib_math_special_functions should be defined in c++26"
-#   endif
-#   if __cpp_lib_math_special_functions != 201603L
-#     error "__cpp_lib_math_special_functions should have the value 201603L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_math_special_functions
-#     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should be defined in c++26"
-# endif
-# if __cpp_lib_mdspan != 202406L
-#   error "__cpp_lib_mdspan should have the value 202406L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
-#   ifndef __cpp_lib_memory_resource
-#     error "__cpp_lib_memory_resource should be defined in c++26"
-#   endif
-#   if __cpp_lib_memory_resource != 201603L
-#     error "__cpp_lib_memory_resource should have the value 201603L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_memory_resource
-#     error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_modules
-#   error "__cpp_lib_modules should be defined in c++26"
-# endif
-# if __cpp_lib_modules != 202207L
-#   error "__cpp_lib_modules should have the value 202207L in c++26"
-# endif
-
-# ifndef __cpp_lib_move_iterator_concept
-#   error "__cpp_lib_move_iterator_concept should be defined in c++26"
-# endif
-# if __cpp_lib_move_iterator_concept != 202207L
-#   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_move_only_function
-#     error "__cpp_lib_move_only_function should be defined in c++26"
-#   endif
-#   if __cpp_lib_move_only_function != 202110L
-#     error "__cpp_lib_move_only_function should have the value 202110L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_move_only_function
-#     error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++26"
-# endif
-# if __cpp_lib_node_extract != 201606L
-#   error "__cpp_lib_node_extract should have the value 201606L in c++26"
-# endif
-
-# ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++26"
-# endif
-# if __cpp_lib_nonmember_container_access != 201411L
-#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
-# endif
-
-# ifndef __cpp_lib_not_fn
-#   error "__cpp_lib_not_fn should be defined in c++26"
-# endif
-# if __cpp_lib_not_fn != 202306L
-#   error "__cpp_lib_not_fn should have the value 202306L in c++26"
-# endif
-
-# ifndef __cpp_lib_null_iterators
-#   error "__cpp_lib_null_iterators should be defined in c++26"
-# endif
-# if __cpp_lib_null_iterators != 201304L
-#   error "__cpp_lib_null_iterators should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_optional
-#   error "__cpp_lib_optional should be defined in c++26"
-# endif
-# if __cpp_lib_optional != 202110L
-#   error "__cpp_lib_optional should have the value 202110L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_optional_range_support
-#     error "__cpp_lib_optional_range_support should be defined in c++26"
-#   endif
-#   if __cpp_lib_optional_range_support != 202406L
-#     error "__cpp_lib_optional_range_support should have the value 202406L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_optional_range_support
-#     error "__cpp_lib_optional_range_support should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should be defined in c++26"
-# endif
-# if __cpp_lib_out_ptr != 202311L
-#   error "__cpp_lib_out_ptr should have the value 202311L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should be defined in c++26"
-#   endif
-#   if __cpp_lib_parallel_algorithm != 201603L
-#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_philox_engine
-#     error "__cpp_lib_philox_engine should be defined in c++26"
-#   endif
-#   if __cpp_lib_philox_engine != 202406L
-#     error "__cpp_lib_philox_engine should have the value 202406L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_philox_engine
-#     error "__cpp_lib_philox_engine should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR
-#   ifndef __cpp_lib_polymorphic_allocator
-#     error "__cpp_lib_polymorphic_allocator should be defined in c++26"
-#   endif
-#   if __cpp_lib_polymorphic_allocator != 201902L
-#     error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_polymorphic_allocator
-#     error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT
-#   ifndef __cpp_lib_print
-#     error "__cpp_lib_print should be defined in c++26"
-#   endif
-#   if __cpp_lib_print != 202207L
-#     error "__cpp_lib_print should have the value 202207L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_print
-#     error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION
-#   ifndef __cpp_lib_quoted_string_io
-#     error "__cpp_lib_quoted_string_io should be defined in c++26"
-#   endif
-#   if __cpp_lib_quoted_string_io != 201304L
-#     error "__cpp_lib_quoted_string_io should have the value 201304L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_quoted_string_io
-#     error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++26"
-# endif
-# if __cpp_lib_ranges != 202406L
-#   error "__cpp_lib_ranges should have the value 202406L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_as_const
-#     error "__cpp_lib_ranges_as_const should be defined in c++26"
-#   endif
-#   if __cpp_lib_ranges_as_const != 202207L
-#     error "__cpp_lib_ranges_as_const should have the value 202207L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_as_const
-#     error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_as_rvalue != 202207L
-#   error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_chunk
-#     error "__cpp_lib_ranges_chunk should be defined in c++26"
-#   endif
-#   if __cpp_lib_ranges_chunk != 202202L
-#     error "__cpp_lib_ranges_chunk should have the value 202202L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_chunk
-#     error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_chunk_by
-#   error "__cpp_lib_ranges_chunk_by should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_chunk_by != 202202L
-#   error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_concat
-#     error "__cpp_lib_ranges_concat should be defined in c++26"
-#   endif
-#   if __cpp_lib_ranges_concat != 202403L
-#     error "__cpp_lib_ranges_concat should have the value 202403L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_concat
-#     error "__cpp_lib_ranges_concat should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_contains
-#   error "__cpp_lib_ranges_contains should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_contains != 202207L
-#   error "__cpp_lib_ranges_contains should have the value 202207L in c++26"
-# endif
-
-# ifndef __cpp_lib_ranges_find_last
-#   error "__cpp_lib_ranges_find_last should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_find_last != 202207L
-#   error "__cpp_lib_ranges_find_last should have the value 202207L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_iota
-#     error "__cpp_lib_ranges_iota should be defined in c++26"
-#   endif
-#   if __cpp_lib_ranges_iota != 202202L
-#     error "__cpp_lib_ranges_iota should have the value 202202L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_iota
-#     error "__cpp_lib_ranges_iota should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_join_with
-#     error "__cpp_lib_ranges_join_with should be defined in c++26"
-#   endif
-#   if __cpp_lib_ranges_join_with != 202202L
-#     error "__cpp_lib_ranges_join_with should have the value 202202L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_join_with
-#     error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_repeat
-#   error "__cpp_lib_ranges_repeat should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_repeat != 202207L
-#   error "__cpp_lib_ranges_repeat should have the value 202207L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_ranges_slide
-#     error "__cpp_lib_ranges_slide should be defined in c++26"
-#   endif
-#   if __cpp_lib_ranges_slide != 202202L
-#     error "__cpp_lib_ranges_slide should have the value 202202L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_slide
-#     error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ranges_starts_ends_with
-#   error "__cpp_lib_ranges_starts_ends_with should be defined in c++26"
-# endif
-# if __cpp_lib_ranges_starts_ends_with != 202106L
-#   error "__cpp_lib_ranges_starts_ends_with 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"
-# 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_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 // _LIBCPP_VERSION
-#   ifdef __cpp_lib_ranges_zip
-#     error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ratio
-#   error "__cpp_lib_ratio should be defined in c++26"
-# endif
-# if __cpp_lib_ratio != 202306L
-#   error "__cpp_lib_ratio should have the value 202306L in c++26"
-# endif
-
-# ifndef __cpp_lib_raw_memory_algorithms
-#   error "__cpp_lib_raw_memory_algorithms should be defined in c++26"
-# endif
-# if __cpp_lib_raw_memory_algorithms != 201606L
-#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_rcu
-#     error "__cpp_lib_rcu should be defined in c++26"
-#   endif
-#   if __cpp_lib_rcu != 202306L
-#     error "__cpp_lib_rcu should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_rcu
-#     error "__cpp_lib_rcu should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_reference_from_temporary
-#     error "__cpp_lib_reference_from_temporary should be defined in c++26"
-#   endif
-#   if __cpp_lib_reference_from_temporary != 202202L
-#     error "__cpp_lib_reference_from_temporary should have the value 202202L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_reference_from_temporary
-#     error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_reference_wrapper
-#   error "__cpp_lib_reference_wrapper should be defined in c++26"
-# endif
-# if __cpp_lib_reference_wrapper != 202403L
-#   error "__cpp_lib_reference_wrapper should have the value 202403L in c++26"
-# endif
-
-# ifndef __cpp_lib_remove_cvref
-#   error "__cpp_lib_remove_cvref should be defined in c++26"
-# endif
-# if __cpp_lib_remove_cvref != 201711L
-#   error "__cpp_lib_remove_cvref should have the value 201711L in c++26"
-# endif
-
-# ifndef __cpp_lib_result_of_sfinae
-#   error "__cpp_lib_result_of_sfinae should be defined in c++26"
-# endif
-# if __cpp_lib_result_of_sfinae != 201210L
-#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26"
-# endif
-
-# ifndef __cpp_lib_robust_nonmodifying_seq_ops
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++26"
-# endif
-# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_sample
-#   error "__cpp_lib_sample should be defined in c++26"
-# endif
-# if __cpp_lib_sample != 201603L
-#   error "__cpp_lib_sample should have the value 201603L in c++26"
-# endif
-
-# ifndef __cpp_lib_saturation_arithmetic
-#   error "__cpp_lib_saturation_arithmetic should be defined in c++26"
-# endif
-# if __cpp_lib_saturation_arithmetic != 202311L
-#   error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_scoped_lock
-#     error "__cpp_lib_scoped_lock should be defined in c++26"
-#   endif
-#   if __cpp_lib_scoped_lock != 201703L
-#     error "__cpp_lib_scoped_lock should have the value 201703L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_scoped_lock
-#     error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)
-#   ifndef __cpp_lib_semaphore
-#     error "__cpp_lib_semaphore should be defined in c++26"
-#   endif
-#   if __cpp_lib_semaphore != 201907L
-#     error "__cpp_lib_semaphore should have the value 201907L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_semaphore
-#     error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_senders
-#     error "__cpp_lib_senders should be defined in c++26"
-#   endif
-#   if __cpp_lib_senders != 202406L
-#     error "__cpp_lib_senders should have the value 202406L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_senders
-#     error "__cpp_lib_senders should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should be defined in c++26"
-#   endif
-#   if __cpp_lib_shared_mutex != 201505L
-#     error "__cpp_lib_shared_mutex should have the value 201505L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_shared_ptr_arrays
-#   error "__cpp_lib_shared_ptr_arrays should be defined in c++26"
-# endif
-# if __cpp_lib_shared_ptr_arrays != 201707L
-#   error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++26"
-# endif
-
-# ifndef __cpp_lib_shared_ptr_weak_type
-#   error "__cpp_lib_shared_ptr_weak_type should be defined in c++26"
-# endif
-# if __cpp_lib_shared_ptr_weak_type != 201606L
-#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++26"
-# endif
-
-# if _LIBCPP_HAS_THREADS
-#   ifndef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should be defined in c++26"
-#   endif
-#   if __cpp_lib_shared_timed_mutex != 201402L
-#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '_LIBCPP_HAS_THREADS' is not met!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_shift
-#   error "__cpp_lib_shift should be defined in c++26"
-# endif
-# if __cpp_lib_shift != 201806L
-#   error "__cpp_lib_shift should have the value 201806L in c++26"
-# endif
-
-# ifndef __cpp_lib_smart_ptr_for_overwrite
-#   error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++26"
-# endif
-# if __cpp_lib_smart_ptr_for_overwrite != 202002L
-#   error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_smart_ptr_owner_equality
-#     error "__cpp_lib_smart_ptr_owner_equality should be defined in c++26"
-#   endif
-#   if __cpp_lib_smart_ptr_owner_equality != 202306L
-#     error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_smart_ptr_owner_equality
-#     error "__cpp_lib_smart_ptr_owner_equality should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_source_location
-#   error "__cpp_lib_source_location should be defined in c++26"
-# endif
-# if __cpp_lib_source_location != 201907L
-#   error "__cpp_lib_source_location should have the value 201907L in c++26"
-# endif
-
-# ifndef __cpp_lib_span
-#   error "__cpp_lib_span should be defined in c++26"
-# endif
-# if __cpp_lib_span != 202002L
-#   error "__cpp_lib_span should have the value 202002L in c++26"
-# endif
-
-# ifndef __cpp_lib_span_at
-#   error "__cpp_lib_span_at should be defined in c++26"
-# endif
-# if __cpp_lib_span_at != 202311L
-#   error "__cpp_lib_span_at should have the value 202311L in c++26"
-# endif
-
-# ifndef __cpp_lib_span_initializer_list
-#   error "__cpp_lib_span_initializer_list should be defined in c++26"
-# endif
-# if __cpp_lib_span_initializer_list != 202311L
-#   error "__cpp_lib_span_initializer_list should have the value 202311L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_spanstream
-#     error "__cpp_lib_spanstream should be defined in c++26"
-#   endif
-#   if __cpp_lib_spanstream != 202106L
-#     error "__cpp_lib_spanstream should have the value 202106L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_spanstream
-#     error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_ssize
-#   error "__cpp_lib_ssize should be defined in c++26"
-# endif
-# if __cpp_lib_ssize != 201902L
-#   error "__cpp_lib_ssize should have the value 201902L in c++26"
-# endif
-
-# ifndef __cpp_lib_sstream_from_string_view
-#   error "__cpp_lib_sstream_from_string_view should be defined in c++26"
-# endif
-# if __cpp_lib_sstream_from_string_view != 202306L
-#   error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_stacktrace
-#     error "__cpp_lib_stacktrace should be defined in c++26"
-#   endif
-#   if __cpp_lib_stacktrace != 202011L
-#     error "__cpp_lib_stacktrace should have the value 202011L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_stacktrace
-#     error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_starts_ends_with
-#   error "__cpp_lib_starts_ends_with should be defined in c++26"
-# endif
-# if __cpp_lib_starts_ends_with != 201711L
-#   error "__cpp_lib_starts_ends_with should have the value 201711L in c++26"
-# endif
-
-# ifndef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should be defined in c++26"
-# endif
-# if __cpp_lib_stdatomic_h != 202011L
-#   error "__cpp_lib_stdatomic_h should have the value 202011L in c++26"
-# endif
-
-# ifndef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should be defined in c++26"
-# endif
-# if __cpp_lib_string_contains != 202011L
-#   error "__cpp_lib_string_contains should have the value 202011L in c++26"
-# endif
-
-# ifndef __cpp_lib_string_resize_and_overwrite
-#   error "__cpp_lib_string_resize_and_overwrite should be defined in c++26"
-# endif
-# if __cpp_lib_string_resize_and_overwrite != 202110L
-#   error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++26"
-# endif
-
-# ifndef __cpp_lib_string_udls
-#   error "__cpp_lib_string_udls should be defined in c++26"
-# endif
-# if __cpp_lib_string_udls != 201304L
-#   error "__cpp_lib_string_udls should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_string_view
-#   error "__cpp_lib_string_view should be defined in c++26"
-# endif
-# if __cpp_lib_string_view != 202403L
-#   error "__cpp_lib_string_view should have the value 202403L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_submdspan
-#     error "__cpp_lib_submdspan should be defined in c++26"
-#   endif
-#   if __cpp_lib_submdspan != 202306L
-#     error "__cpp_lib_submdspan should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_submdspan
-#     error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM
-#   ifndef __cpp_lib_syncbuf
-#     error "__cpp_lib_syncbuf should be defined in c++26"
-#   endif
-#   if __cpp_lib_syncbuf != 201803L
-#     error "__cpp_lib_syncbuf should have the value 201803L in c++26"
-#   endif
-# else
-#   ifdef __cpp_lib_syncbuf
-#     error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_text_encoding
-#     error "__cpp_lib_text_encoding should be defined in c++26"
-#   endif
-#   if __cpp_lib_text_encoding != 202306L
-#     error "__cpp_lib_text_encoding should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_text_encoding
-#     error "__cpp_lib_text_encoding should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_three_way_comparison
-#   error "__cpp_lib_three_way_comparison should be defined in c++26"
-# endif
-# if __cpp_lib_three_way_comparison != 201907L
-#   error "__cpp_lib_three_way_comparison should have the value 201907L in c++26"
-# endif
-
-# ifndef __cpp_lib_to_address
-#   error "__cpp_lib_to_address should be defined in c++26"
-# endif
-# if __cpp_lib_to_address != 201711L
-#   error "__cpp_lib_to_address should have the value 201711L in c++26"
-# endif
-
-# ifndef __cpp_lib_to_array
-#   error "__cpp_lib_to_array should be defined in c++26"
-# endif
-# if __cpp_lib_to_array != 201907L
-#   error "__cpp_lib_to_array should have the value 201907L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should be defined in c++26"
-#   endif
-#   if __cpp_lib_to_chars != 202306L
-#     error "__cpp_lib_to_chars should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_to_string
-#     error "__cpp_lib_to_string should be defined in c++26"
-#   endif
-#   if __cpp_lib_to_string != 202306L
-#     error "__cpp_lib_to_string should have the value 202306L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_to_string
-#     error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should be defined in c++26"
-# endif
-# if __cpp_lib_to_underlying != 202102L
-#   error "__cpp_lib_to_underlying should have the value 202102L in c++26"
-# endif
-
-# ifndef __cpp_lib_transformation_trait_aliases
-#   error "__cpp_lib_transformation_trait_aliases should be defined in c++26"
-# endif
-# if __cpp_lib_transformation_trait_aliases != 201304L
-#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_transparent_operators
-#   error "__cpp_lib_transparent_operators should be defined in c++26"
-# endif
-# if __cpp_lib_transparent_operators != 201510L
-#   error "__cpp_lib_transparent_operators should have the value 201510L in c++26"
-# endif
-
-# ifndef __cpp_lib_tuple_element_t
-#   error "__cpp_lib_tuple_element_t should be defined in c++26"
-# endif
-# if __cpp_lib_tuple_element_t != 201402L
-#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++26"
-# endif
-
-# if !defined(_LIBCPP_VERSION)
-#   ifndef __cpp_lib_tuple_like
-#     error "__cpp_lib_tuple_like should be defined in c++26"
-#   endif
-#   if __cpp_lib_tuple_like != 202311L
-#     error "__cpp_lib_tuple_like should have the value 202311L in c++26"
-#   endif
-# else // _LIBCPP_VERSION
-#   ifdef __cpp_lib_tuple_like
-#     error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"
-#   endif
-# endif
-
-# ifndef __cpp_lib_tuples_by_type
-#   error "__cpp_lib_tuples_by_type should be defined in c++26"
-# endif
-# if __cpp_lib_tuples_by_type != 201304L
-#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++26"
-# endif
-
-# ifndef __cpp_lib_type_identity
-#   error "__cpp_lib_type_identity should be defined in c++26"
-# endif
-# if __cpp_lib_type_identity != 201806L
-#   error "__cpp_lib_type_identity should have the value 201806L in c++26"
-# endif
-
-# ifndef __cpp_lib_type_trait_variable_templates
-#   error "__cpp_lib_type_trait_variable_templates should be defined in c++26"
-# endif
-# if __cpp_lib_type_trait_variable_templates != 201510L
-#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++26"
-# endif
-
-# ifndef __cpp_lib_uncaught_exceptions
-#   error "__cpp_lib_uncaught_exceptions should be defined in c++26"
-# endif
-# if __cpp_lib_uncaught_exceptions != 201411L
-#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++26"
-# endif
-
-# ifndef __cpp_lib_unordered_map_try_emplace
-#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++26"
-# endif
-# if __cpp_lib_unordered_map_try_emplace != 201411L
-#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++26"
-# endif
-
-# ifndef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should be defined in c++26"
-# endif
-# if __cpp_lib_unreachable != 202202L
-#   error "__cpp_lib_unreachable should have the value 202202L in c++26"
-# endif
-
-# ifndef __cpp_lib_unwrap_ref
-#   error "__cpp_lib_unwrap_ref should be defined in c++26"
-# endif
-# if __cpp_lib_unwrap_ref != 201811L
-#   error "__cpp_lib_unwrap_ref should have the value 201811L in c++26"
-# endif
-
-# ifndef __cpp_lib_variant
-#   error "__cpp_lib_variant should be defined in c++26"
-# endif
-# if __cpp_lib_variant != 202306L
-#   error "__cpp_lib_variant should have the value 202306L in c++26"
-# endif
-
-# ifndef __cpp_lib_void_t
-#   error "__cpp_lib_void_t should be defined in c++26"
-# endif
-# if __cpp_lib_void_t != 201411L
-#   error "__cpp_lib_void_t should have the value 201411L in c++26"
-# endif
->>>>>>> 3e1b3b8f0316 (Make forward_list constexpr as part of P3372R3)
 
 #endif // TEST_STD_VER > 23
 



More information about the libcxx-commits mailing list