[libcxx-commits] [libcxx] 7140050 - [libc++] Updates C++2b to C++23.

Mark de Wever via libcxx-commits libcxx-commits at lists.llvm.org
Tue May 23 09:44:51 PDT 2023


Author: Mark de Wever
Date: 2023-05-23T18:44:41+02:00
New Revision: 71400505ca048507e827013eb1ea0bc863525cab

URL: https://github.com/llvm/llvm-project/commit/71400505ca048507e827013eb1ea0bc863525cab
DIFF: https://github.com/llvm/llvm-project/commit/71400505ca048507e827013eb1ea0bc863525cab.diff

LOG: [libc++] Updates C++2b to C++23.

During the ISO C++ Committee meeting plenary session the C++23 Standard
has been voted as technical complete.

This updates the reference to c++2b to c++23 and updates the __cplusplus
macro.

Note since we use clang-tidy 16 a small work-around is needed. Clang
knows -std=c++23 but clang-tidy not so for now force the lit compiler
flag to use -std=c++2b instead of -std=c++23.

Reviewed By: #libc, philnik, jloser, ldionne

Differential Revision: https://reviews.llvm.org/D150795

Added: 
    libcxx/cmake/caches/Generic-cxx23.cmake
    libcxx/docs/Status/Cxx23.rst
    libcxx/docs/Status/Cxx23Issues.csv
    libcxx/docs/Status/Cxx23Papers.csv
    libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-clang.pass.cpp
    libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-gcc.pass.cpp
    libcxx/test/libcxx/transitive_includes/cxx23.csv

Modified: 
    libcxx/docs/FeatureTestMacroTable.rst
    libcxx/docs/ReleaseNotes.rst
    libcxx/docs/Status/Zip.rst
    libcxx/docs/index.rst
    libcxx/include/__config
    libcxx/include/ranges
    libcxx/include/string
    libcxx/include/string_view
    libcxx/include/type_traits
    libcxx/include/utility
    libcxx/test/libcxx/transitive_includes.sh.cpp
    libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.volatile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
    libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
    libcxx/test/std/strings/basic.string/string.cons/nullptr.compile.pass.cpp
    libcxx/test/std/strings/string.view/string.view.cons/nullptr.compile.pass.cpp
    libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_scoped_enum.pass.cpp
    libcxx/test/std/utilities/utility/utility.underlying/to_underlying.pass.cpp
    libcxx/test/std/utilities/utility/utility.underlying/to_underlying.verify.cpp
    libcxx/test/support/test_macros.h
    libcxx/utils/ci/buildkite-pipeline-clang.yml
    libcxx/utils/ci/buildkite-pipeline.yml
    libcxx/utils/ci/run-buildbot
    libcxx/utils/generate_feature_test_macro_components.py
    libcxx/utils/generate_header_inclusion_tests.py
    libcxx/utils/libcxx/test/params.py

Removed: 
    libcxx/cmake/caches/Generic-cxx2b.cmake
    libcxx/docs/Status/Cxx2b.rst
    libcxx/docs/Status/Cxx2bIssues.csv
    libcxx/docs/Status/Cxx2bPapers.csv
    libcxx/test/libcxx/numerics/c.math/constexpr-cxx2b-clang.pass.cpp
    libcxx/test/libcxx/numerics/c.math/constexpr-cxx2b-gcc.pass.cpp
    libcxx/test/libcxx/transitive_includes/cxx2b.csv


################################################################################
diff  --git a/libcxx/cmake/caches/Generic-cxx2b.cmake b/libcxx/cmake/caches/Generic-cxx23.cmake
similarity index 56%
rename from libcxx/cmake/caches/Generic-cxx2b.cmake
rename to libcxx/cmake/caches/Generic-cxx23.cmake
index be767dd2a5e77..bf88abf56ca6a 100644
--- a/libcxx/cmake/caches/Generic-cxx2b.cmake
+++ b/libcxx/cmake/caches/Generic-cxx23.cmake
@@ -1,2 +1,2 @@
-set(LIBCXX_TEST_PARAMS "std=c++2b" CACHE STRING "")
+set(LIBCXX_TEST_PARAMS "std=c++23" CACHE STRING "")
 set(LIBCXXABI_TEST_PARAMS "${LIBCXX_TEST_PARAMS}" CACHE STRING "")

diff  --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst
index 48c2d0ddfae19..dda9756e82ebb 100644
--- a/libcxx/docs/FeatureTestMacroTable.rst
+++ b/libcxx/docs/FeatureTestMacroTable.rst
@@ -298,7 +298,7 @@ Status
     ------------------------------------------------- -----------------
     ``__cpp_lib_unwrap_ref``                          ``201811L``
     ------------------------------------------------- -----------------
-    **C++ 2b**
+    **C++ 23**
     -------------------------------------------------------------------
     ``__cpp_lib_adaptor_iterator_pair_constructor``   ``202106L``
     ------------------------------------------------- -----------------

diff  --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 70927368c5d61..3b7a168daee5a 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -70,7 +70,7 @@ Deprecations and Removals
   includes are removed based on the language version used. Incidental transitive
   inclusions of the following headers have been removed:
 
-  - C++2b: ``atomic``, ``bit``, ``cstdint``, ``cstdlib``, ``cstring``, ``initializer_list``, ``limits``, ``new``,
+  - C++23: ``atomic``, ``bit``, ``cstdint``, ``cstdlib``, ``cstring``, ``initializer_list``, ``limits``, ``new``,
            ``stdexcept``, ``system_error``, ``type_traits``, ``typeinfo``
 
 - ``<algorithm>`` no longer includes ``<chrono>`` in any C++ version (it was previously included in C++17 and earlier).

diff  --git a/libcxx/docs/Status/Cxx2b.rst b/libcxx/docs/Status/Cxx23.rst
similarity index 89%
rename from libcxx/docs/Status/Cxx2b.rst
rename to libcxx/docs/Status/Cxx23.rst
index df915d828e6d9..cb9ed5d27ea7c 100644
--- a/libcxx/docs/Status/Cxx2b.rst
+++ b/libcxx/docs/Status/Cxx23.rst
@@ -1,7 +1,7 @@
-.. _cxx2b-status:
+.. _cxx23-status:
 
 ================================
-libc++ C++2b Status
+libc++ C++23 Status
 ================================
 
 .. include:: ../Helpers/Styles.rst
@@ -14,6 +14,7 @@ Overview
 ================================
 
 In November 2020, the C++ standard committee adopted the first changes to the next version of the C++ standard, known here as "C++2b" (probably to be C++23).
+In February 2023, the C++ standard committee approved this draft, and sent it to ISO for approval as C++23.
 
 This page shows the status of libc++; the status of clang's support of the language features is `here <https://clang.llvm.org/cxx_status.html#cxx23>`__.
 
@@ -27,13 +28,13 @@ The groups that have contributed papers:
 
 .. note:: "Nothing to do" means that no library changes were needed to implement this change.
 
-.. _paper-status-cxx2b:
+.. _paper-status-cxx23:
 
 Paper Status
 ====================================
 
 .. csv-table::
-   :file: Cxx2bPapers.csv
+   :file: Cxx23Papers.csv
    :header-rows: 1
    :widths: auto
 
@@ -48,13 +49,13 @@ Paper Status
       The formatter for ``stacktrace`` is not implemented, since ``stacktrace`` is
       not implemented yet.
 
-.. _issues-status-cxx2b:
+.. _issues-status-cxx23:
 
 Library Working Group Issues Status
 ====================================
 
 .. csv-table::
-   :file: Cxx2bIssues.csv
+   :file: Cxx23Issues.csv
    :header-rows: 1
    :widths: auto
 

diff  --git a/libcxx/docs/Status/Cxx2bIssues.csv b/libcxx/docs/Status/Cxx23Issues.csv
similarity index 100%
rename from libcxx/docs/Status/Cxx2bIssues.csv
rename to libcxx/docs/Status/Cxx23Issues.csv

diff  --git a/libcxx/docs/Status/Cxx2bPapers.csv b/libcxx/docs/Status/Cxx23Papers.csv
similarity index 100%
rename from libcxx/docs/Status/Cxx2bPapers.csv
rename to libcxx/docs/Status/Cxx23Papers.csv

diff  --git a/libcxx/docs/Status/Zip.rst b/libcxx/docs/Status/Zip.rst
index db2cdfe29690b..9f71386697353 100644
--- a/libcxx/docs/Status/Zip.rst
+++ b/libcxx/docs/Status/Zip.rst
@@ -12,7 +12,7 @@ libc++ Zip Status (P2321R2)
 Overview
 ========
 
-This document contains the status of the C++2b zip implementation in libc++.
+This document contains the status of the C++23 zip implementation in libc++.
 It is used to track both the status of the sub-projects of the effort and who
 is assigned to these sub-projects. This avoids duplicating effort.
 

diff  --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst
index 4af4d9f1704f5..337440427d84e 100644
--- a/libcxx/docs/index.rst
+++ b/libcxx/docs/index.rst
@@ -42,7 +42,7 @@ Getting Started with libc++
    Status/Cxx14
    Status/Cxx17
    Status/Cxx20
-   Status/Cxx2b
+   Status/Cxx23
    Status/Format
    Status/Parallelism
    Status/Ranges
@@ -145,7 +145,7 @@ C++ Dialect Support
 * :ref:`C++14 - Complete <cxx14-status>`
 * :ref:`C++17 - In Progress <cxx17-status>`
 * :ref:`C++20 - In Progress <cxx20-status>`
-* :ref:`C++2b - In Progress <cxx2b-status>`
+* :ref:`C++23 - In Progress <cxx23-status>`
 * :ref:`C++ Feature Test Macro Status <feature-status>`
 
 

diff  --git a/libcxx/include/__config b/libcxx/include/__config
index 86156c8521fd6..f71b55d08dc9b 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -61,9 +61,11 @@
 #      define _LIBCPP_STD_VER 17
 #    elif __cplusplus <= 202002L
 #      define _LIBCPP_STD_VER 20
+#    elif __cplusplus <= 202302L
+#      define _LIBCPP_STD_VER 23
 #    else
 // Expected release year of the next C++ standard
-#      define _LIBCPP_STD_VER 23
+#      define _LIBCPP_STD_VER 26
 #    endif
 #  endif // _LIBCPP_STD_VER
 // NOLINTEND(libcpp-cpp-version-check)

diff  --git a/libcxx/include/ranges b/libcxx/include/ranges
index 38da82dc7581d..bcf05f55f5edb 100644
--- a/libcxx/include/ranges
+++ b/libcxx/include/ranges
@@ -294,13 +294,13 @@ namespace std::ranges {
   // [range.zip], zip view
   template<input_range... Views>
     requires (view<Views> && ...) && (sizeof...(Views) > 0)
-  class zip_view;        // C++2b
+  class zip_view;        // C++23
 
   template<class... Views>
-    inline constexpr bool enable_borrowed_range<zip_view<Views...>> =    // C++2b
+    inline constexpr bool enable_borrowed_range<zip_view<Views...>> =    // C++23
       (enable_borrowed_range<Views> && ...);
 
-  namespace views { inline constexpr unspecified zip = unspecified; }    // C++2b
+  namespace views { inline constexpr unspecified zip = unspecified; }    // C++23
 
   // [range.as.rvalue]
   template <view V>

diff  --git a/libcxx/include/string b/libcxx/include/string
index 5925bb8d3f80f..4f4a1197ef171 100644
--- a/libcxx/include/string
+++ b/libcxx/include/string
@@ -119,7 +119,7 @@ public:
         explicit basic_string(const T& t, const Allocator& a = Allocator());                    // C++17, constexpr since C++20
     basic_string(const value_type* s, const allocator_type& a = allocator_type());              // constexpr since C++20
     basic_string(const value_type* s, size_type n, const allocator_type& a = allocator_type()); // constexpr since C++20
-    basic_string(nullptr_t) = delete; // C++2b
+    basic_string(nullptr_t) = delete; // C++23
     basic_string(size_type n, value_type c, const allocator_type& a = allocator_type());        // constexpr since C++20
     template<class InputIterator>
         basic_string(InputIterator begin, InputIterator end,
@@ -140,7 +140,7 @@ public:
              allocator_type::propagate_on_container_move_assignment::value ||
              allocator_type::is_always_equal::value );                                          // C++17, constexpr since C++20
     basic_string& operator=(const value_type* s);                                               // constexpr since C++20
-    basic_string& operator=(nullptr_t) = delete; // C++2b
+    basic_string& operator=(nullptr_t) = delete; // C++23
     basic_string& operator=(value_type c);                                                      // constexpr since C++20
     basic_string& operator=(initializer_list<value_type>);                                      // constexpr since C++20
 
@@ -342,9 +342,9 @@ public:
     constexpr bool ends_with(charT c) const noexcept;                                           // C++20
     constexpr bool ends_with(const charT* s) const;                                             // C++20
 
-    constexpr bool contains(basic_string_view<charT, traits> sv) const noexcept;                // C++2b
-    constexpr bool contains(charT c) const noexcept;                                            // C++2b
-    constexpr bool contains(const charT* s) const;                                              // C++2b
+    constexpr bool contains(basic_string_view<charT, traits> sv) const noexcept;                // C++23
+    constexpr bool contains(charT c) const noexcept;                                            // C++23
+    constexpr bool contains(const charT* s) const;                                              // C++23
 };
 
 template<class InputIterator,

diff  --git a/libcxx/include/string_view b/libcxx/include/string_view
index d050b996ecb9e..2cdad44417d8c 100644
--- a/libcxx/include/string_view
+++ b/libcxx/include/string_view
@@ -90,7 +90,7 @@ namespace std {
       basic_string_view& operator=(const basic_string_view&) noexcept = default;
       template<class Allocator>
       constexpr basic_string_view(const charT* str);
-      basic_string_view(nullptr_t) = delete; // C++2b
+      basic_string_view(nullptr_t) = delete; // C++23
       constexpr basic_string_view(const charT* str, size_type len);
       template <class It, class End>
       constexpr basic_string_view(It begin, End end); // C++20
@@ -168,9 +168,9 @@ namespace std {
       constexpr bool ends_with(charT c) const noexcept;               // C++20
       constexpr bool ends_with(const charT* s) const;                 // C++20
 
-      constexpr bool contains(basic_string_view s) const noexcept; // C++2b
-      constexpr bool contains(charT c) const noexcept;             // C++2b
-      constexpr bool contains(const charT* s) const;               // C++2b
+      constexpr bool contains(basic_string_view s) const noexcept; // C++23
+      constexpr bool contains(charT c) const noexcept;             // C++23
+      constexpr bool contains(const charT* s) const;               // C++23
 
      private:
       const_pointer data_;  // exposition only

diff  --git a/libcxx/include/type_traits b/libcxx/include/type_traits
index a157299481343..15e26a710221e 100644
--- a/libcxx/include/type_traits
+++ b/libcxx/include/type_traits
@@ -51,7 +51,7 @@ namespace std
     template <class T> struct is_arithmetic;
     template <class T> struct is_fundamental;
     template <class T> struct is_member_pointer;
-    template <class T> struct is_scoped_enum; // C++2b
+    template <class T> struct is_scoped_enum; // C++23
     template <class T> struct is_scalar;
     template <class T> struct is_object;
     template <class T> struct is_compound;
@@ -286,7 +286,7 @@ namespace std
       template <class T> inline constexpr bool is_member_pointer_v
         = is_member_pointer<T>::value;                                   // C++17
       template <class T> inline constexpr bool is_scoped_enum_v
-        = is_scoped_enum<T>::value;                                      // C++2b
+        = is_scoped_enum<T>::value;                                      // C++23
 
       // See C++14 20.10.4.3, type properties
       template <class T> inline constexpr bool is_const_v

diff  --git a/libcxx/include/utility b/libcxx/include/utility
index 9ed7c6dac8ad2..c5581d55e79bb 100644
--- a/libcxx/include/utility
+++ b/libcxx/include/utility
@@ -240,7 +240,7 @@ template <size_t I>
 
 // [utility.underlying], to_underlying
 template <class T>
-    constexpr underlying_type_t<T> to_underlying( T value ) noexcept; // C++2b
+    constexpr underlying_type_t<T> to_underlying( T value ) noexcept; // C++23
 
 }  // std
 

diff  --git a/libcxx/test/libcxx/numerics/c.math/constexpr-cxx2b-clang.pass.cpp b/libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-clang.pass.cpp
similarity index 99%
rename from libcxx/test/libcxx/numerics/c.math/constexpr-cxx2b-clang.pass.cpp
rename to libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-clang.pass.cpp
index 269c487de23d2..a07260a34516f 100644
--- a/libcxx/test/libcxx/numerics/c.math/constexpr-cxx2b-clang.pass.cpp
+++ b/libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-clang.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // Check that Clang supports constexpr <cmath> and <cstdlib> functions
-// mentioned in the P0533R9 paper that is part of C++2b
+// mentioned in the P0533R9 paper that is part of C++23
 // (https://wg21.link/p0533r9)
 //
 // Every function called in this test should become constexpr. Whenever some

diff  --git a/libcxx/test/libcxx/numerics/c.math/constexpr-cxx2b-gcc.pass.cpp b/libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-gcc.pass.cpp
similarity index 99%
rename from libcxx/test/libcxx/numerics/c.math/constexpr-cxx2b-gcc.pass.cpp
rename to libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-gcc.pass.cpp
index b4ff47a0ff74d..8c481f41a945e 100644
--- a/libcxx/test/libcxx/numerics/c.math/constexpr-cxx2b-gcc.pass.cpp
+++ b/libcxx/test/libcxx/numerics/c.math/constexpr-cxx23-gcc.pass.cpp
@@ -7,7 +7,7 @@
 //===----------------------------------------------------------------------===//
 
 // Check that GCC supports constexpr <cmath> and <cstdlib> functions
-// mentioned in the P0533R9 paper that is part of C++2b
+// mentioned in the P0533R9 paper that is part of C++23
 // (https://wg21.link/p0533r9)
 //
 // Every function called in this test should become constexpr. Whenever some

diff  --git a/libcxx/test/libcxx/transitive_includes.sh.cpp b/libcxx/test/libcxx/transitive_includes.sh.cpp
index db462025bb1cd..62e955e461970 100644
--- a/libcxx/test/libcxx/transitive_includes.sh.cpp
+++ b/libcxx/test/libcxx/transitive_includes.sh.cpp
@@ -40,7 +40,7 @@ import re
 # To re-generate the list of expected headers, temporarily set this to True, re-generate
 # the file and run this test.
 # Note that this needs to be done for all supported language versions of libc++:
-# for std in c++03 c++11 c++14 c++17 c++20 c++2b; do <build>/bin/llvm-lit --param std=$std ${path_to_this_file}; done
+# for std in c++03 c++11 c++14 c++17 c++20 c++23; do <build>/bin/llvm-lit --param std=$std ${path_to_this_file}; done
 regenerate_expected_results = False
 # Used because the sequence of tokens RUN : can't appear anywhere or it'll confuse Lit.
 RUN = "RUN"

diff  --git a/libcxx/test/libcxx/transitive_includes/cxx2b.csv b/libcxx/test/libcxx/transitive_includes/cxx23.csv
similarity index 100%
rename from libcxx/test/libcxx/transitive_includes/cxx2b.csv
rename to libcxx/test/libcxx/transitive_includes/cxx23.csv

diff  --git a/libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.volatile.pass.cpp b/libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.volatile.pass.cpp
index 0538dcd4ac142..b016babbb9485 100644
--- a/libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.volatile.pass.cpp
+++ b/libcxx/test/std/input.output/iostream.format/output.streams/ostream.formatted/ostream.inserters.arithmetic/pointer.volatile.pass.cpp
@@ -13,9 +13,9 @@
 // This test fails in Windows DLL configurations, due to
 // __exclude_from_explicit_instantiation__ not behaving as it should in
 // combination with dllimport (https://llvm.org/PR41018), in combination
-// with running tests in c++2b mode while building the library in c++20 mode.
+// with running tests in c++23 mode while building the library in c++20 mode.
 //
-// If the library was built in c++2b mode, this test would succeed.
+// If the library was built in c++23 mode, this test would succeed.
 //
 // Older CMake passed -std:c++latest to set C++ 20 mode on clang-cl, which
 // hid this issue. With newer CMake versions, it passes -std:c++20 which
@@ -23,7 +23,7 @@
 //
 // Marking as UNSUPPORTED instead of XFAIL to avoid spurious failures/successes
 // depending on the version of CMake used.
-// TODO: Remove this when the library is built in c++2b mode.
+// TODO: Remove this when the library is built in c++23 mode.
 //
 // UNSUPPORTED: windows-dll
 

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
index e871065fe97f8..68bc144980f1a 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/algorithm.version.compile.pass.cpp
@@ -20,7 +20,7 @@
     __cpp_lib_constexpr_algorithms           201806L [C++20]
     __cpp_lib_parallel_algorithm             201603L [C++17]
     __cpp_lib_ranges                         202106L [C++20]
-    __cpp_lib_ranges_starts_ends_with        202106L [C++2b]
+    __cpp_lib_ranges_starts_ends_with        202106L [C++23]
     __cpp_lib_robust_nonmodifying_seq_ops    201304L [C++14]
     __cpp_lib_sample                         201603L [C++17]
     __cpp_lib_shift                          201806L [C++20]
@@ -48,7 +48,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_starts_ends_with
-#   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++2b"
+#   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_robust_nonmodifying_seq_ops
@@ -82,7 +82,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_starts_ends_with
-#   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++2b"
+#   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
@@ -131,7 +131,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_starts_ends_with
-#   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++2b"
+#   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
@@ -189,7 +189,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_starts_ends_with
-#   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++2b"
+#   error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
@@ -216,25 +216,25 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_clamp
-#   error "__cpp_lib_clamp should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_clamp should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_algorithms
-#   error "__cpp_lib_constexpr_algorithms should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_parallel_algorithm
@@ -243,18 +243,18 @@
 # endif
 
 # ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++2b"
+#   error "__cpp_lib_ranges should be defined in c++23"
 # endif
 # if __cpp_lib_ranges != 202106L
-#   error "__cpp_lib_ranges should have the value 202106L in c++2b"
+#   error "__cpp_lib_ranges should have the value 202106L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_starts_ends_with
-#     error "__cpp_lib_ranges_starts_ends_with should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_starts_ends_with
@@ -263,24 +263,24 @@
 # endif
 
 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
-#   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_sample should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_shift
-#   error "__cpp_lib_shift should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_shift should have the value 201806L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp
index c4cd218d7b41f..bc3392f99ce5c 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/any.version.compile.pass.cpp
@@ -55,10 +55,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_any
-#   error "__cpp_lib_any should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_any should have the value 201606L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp
index bd091cc7c4433..e7da783e394c8 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/array.version.compile.pass.cpp
@@ -99,24 +99,24 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_array_constexpr
-#   error "__cpp_lib_array_constexpr should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_array_constexpr should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # ifndef __cpp_lib_to_array
-#   error "__cpp_lib_to_array should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_to_array should have the value 201907L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
index eeafd019dd280..d27f8c4b0bfd3 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/atomic.version.compile.pass.cpp
@@ -245,18 +245,18 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_atomic_flag_test
-#   error "__cpp_lib_atomic_flag_test should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_atomic_float
-#     error "__cpp_lib_atomic_float should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_atomic_float should have the value 201711L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_atomic_float
@@ -265,25 +265,25 @@
 # endif
 
 # ifndef __cpp_lib_atomic_is_always_lock_free
-#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_atomic_ref
-#     error "__cpp_lib_atomic_ref should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_atomic_ref should have the value 201806L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_atomic_ref
@@ -293,10 +293,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_atomic_shared_ptr
-#     error "__cpp_lib_atomic_shared_ptr should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_atomic_shared_ptr
@@ -305,18 +305,18 @@
 # endif
 
 # ifndef __cpp_lib_atomic_value_initialization
-#   error "__cpp_lib_atomic_value_initialization should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23"
 # endif
 
 # if !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)
 #   ifndef __cpp_lib_atomic_wait
-#     error "__cpp_lib_atomic_wait should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_atomic_wait should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_atomic_wait
@@ -326,10 +326,10 @@
 
 # if defined(__cpp_char8_t)
 #   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp
index adf2dee0edb3a..79d317550d0e4 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/barrier.version.compile.pass.cpp
@@ -61,10 +61,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)
 #   ifndef __cpp_lib_barrier
-#     error "__cpp_lib_barrier should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_barrier should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_barrier

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp
index 6ab27499afe05..5e7080be7ed04 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/bit.version.compile.pass.cpp
@@ -18,7 +18,7 @@
 /*  Constant              Value
     __cpp_lib_bit_cast    201806L [C++20]
     __cpp_lib_bitops      201907L [C++20]
-    __cpp_lib_byteswap    202110L [C++2b]
+    __cpp_lib_byteswap    202110L [C++23]
     __cpp_lib_endian      201907L [C++20]
     __cpp_lib_int_pow2    202002L [C++20]
 */
@@ -37,7 +37,7 @@
 # endif
 
 # ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++2b"
+#   error "__cpp_lib_byteswap should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_endian
@@ -59,7 +59,7 @@
 # endif
 
 # ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++2b"
+#   error "__cpp_lib_byteswap should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_endian
@@ -81,7 +81,7 @@
 # endif
 
 # ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++2b"
+#   error "__cpp_lib_byteswap should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_endian
@@ -115,7 +115,7 @@
 # endif
 
 # ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++2b"
+#   error "__cpp_lib_byteswap should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_endian
@@ -135,18 +135,18 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_bit_cast
-#   error "__cpp_lib_bit_cast should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_bit_cast should have the value 201806L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_bitops
-#     error "__cpp_lib_bitops should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_bitops should have the value 201907L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_bitops
@@ -155,24 +155,24 @@
 # endif
 
 # ifndef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_byteswap should have the value 202110L in c++23"
 # endif
 
 # ifndef __cpp_lib_endian
-#   error "__cpp_lib_endian should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_endian should have the value 201907L in c++23"
 # endif
 
 # ifndef __cpp_lib_int_pow2
-#   error "__cpp_lib_int_pow2 should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_int_pow2 should have the value 202002L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp
index 8179d3b7028f6..f1bf15a09489a 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/bitset.version.compile.pass.cpp
@@ -16,7 +16,7 @@
 // Test the feature test macros defined by <bitset>
 
 /*  Constant                      Value
-    __cpp_lib_constexpr_bitset    202207L [C++2b]
+    __cpp_lib_constexpr_bitset    202207L [C++23]
 */
 
 #include <bitset>
@@ -25,34 +25,34 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_bitset should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp
index 8042ff683441a..b81b6fbccb279 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/charconv.version.compile.pass.cpp
@@ -16,7 +16,7 @@
 // Test the feature test macros defined by <charconv>
 
 /*  Constant                        Value
-    __cpp_lib_constexpr_charconv    202207L [C++2b]
+    __cpp_lib_constexpr_charconv    202207L [C++23]
     __cpp_lib_to_chars              201611L [C++17]
 */
 
@@ -26,7 +26,7 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_to_chars
@@ -36,7 +36,7 @@
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_to_chars
@@ -46,7 +46,7 @@
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
@@ -65,7 +65,7 @@
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_charconv should not be defined before c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
@@ -84,18 +84,18 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_constexpr_charconv
-#   error "__cpp_lib_constexpr_charconv should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_charconv should have the value 202207L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_to_chars
-#     error "__cpp_lib_to_chars should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_to_chars should have the value 201611L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_to_chars

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp
index 6bed4a3073008..e960c6d6fd450 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/chrono.version.compile.pass.cpp
@@ -81,17 +81,17 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_chrono
-#   error "__cpp_lib_chrono should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_chrono_udls should have the value 201304L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp
index 2a7025966af58..5ba7cbb2e417d 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/cmath.version.compile.pass.cpp
@@ -16,7 +16,7 @@
 // Test the feature test macros defined by <cmath>
 
 /*  Constant                            Value
-    __cpp_lib_constexpr_cmath           202202L [C++2b]
+    __cpp_lib_constexpr_cmath           202202L [C++23]
     __cpp_lib_hypot                     201603L [C++17]
     __cpp_lib_interpolate               201902L [C++20]
     __cpp_lib_math_special_functions    201603L [C++17]
@@ -28,7 +28,7 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_hypot
@@ -46,7 +46,7 @@
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_hypot
@@ -64,7 +64,7 @@
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_hypot
@@ -94,7 +94,7 @@
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_hypot
@@ -128,10 +128,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_constexpr_cmath
-#     error "__cpp_lib_constexpr_cmath should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_constexpr_cmath
@@ -140,25 +140,25 @@
 # endif
 
 # ifndef __cpp_lib_hypot
-#   error "__cpp_lib_hypot should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_hypot should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_interpolate
-#   error "__cpp_lib_interpolate should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_interpolate should have the value 201902L 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++2b"
+#     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++2b"
+#     error "__cpp_lib_math_special_functions should have the value 201603L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_math_special_functions

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
index cb50477363de0..b2b36226448a2 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/compare.version.compile.pass.cpp
@@ -59,10 +59,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_three_way_comparison
-#     error "__cpp_lib_three_way_comparison should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_three_way_comparison

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
index 1ee022b94cc56..2c2ce830f7b68 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/complex.version.compile.pass.cpp
@@ -78,17 +78,17 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_complex_udls
-#   error "__cpp_lib_complex_udls should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_complex_udls should have the value 201309L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_complex
-#   error "__cpp_lib_constexpr_complex should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_complex should have the value 201711L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp
index 09cff6546912e..f4e18cd31525d 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/concepts.version.compile.pass.cpp
@@ -52,10 +52,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_concepts
-#   error "__cpp_lib_concepts should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_concepts should have the value 202002L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp
index 40caf475fd705..3c3be2c07b9d1 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/coroutine.version.compile.pass.cpp
@@ -52,10 +52,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_coroutine
-#   error "__cpp_lib_coroutine should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_coroutine should have the value 201902L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp
index 789de8904ebfe..89cf6cad3e550 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/cstddef.version.compile.pass.cpp
@@ -55,10 +55,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_byte
-#   error "__cpp_lib_byte should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_byte should have the value 201603L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp
index 99aa931ac2b05..b310054d5190e 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/cstdlib.version.compile.pass.cpp
@@ -16,7 +16,7 @@
 // Test the feature test macros defined by <cstdlib>
 
 /*  Constant                     Value
-    __cpp_lib_constexpr_cmath    202202L [C++2b]
+    __cpp_lib_constexpr_cmath    202202L [C++23]
 */
 
 #include <cstdlib>
@@ -25,35 +25,35 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_constexpr_cmath
-#   error "__cpp_lib_constexpr_cmath should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_constexpr_cmath
-#     error "__cpp_lib_constexpr_cmath should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_constexpr_cmath

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
index b61fad789b202..6bd37b5b528ef 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/deque.version.compile.pass.cpp
@@ -19,7 +19,7 @@
     __cpp_lib_allocator_traits_is_always_equal    201411L [C++17]
     __cpp_lib_erase_if                            202002L [C++20]
     __cpp_lib_nonmember_container_access          201411L [C++17]
-    __cpp_lib_ranges_to_container                 202202L [C++2b]
+    __cpp_lib_ranges_to_container                 202202L [C++23]
 */
 
 #include <deque>
@@ -40,7 +40,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -58,7 +58,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -82,7 +82,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -109,38 +109,38 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp
index 0617d25a2dedf..91fc9ae77cc30 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/exception.version.compile.pass.cpp
@@ -55,10 +55,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_uncaught_exceptions
-#   error "__cpp_lib_uncaught_exceptions should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp
index 0b1c7a0956d43..20337cb6c3545 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/execution.version.compile.pass.cpp
@@ -69,10 +69,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_execution
-#     error "__cpp_lib_execution should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_execution should have the value 201902L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_execution

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
index 289609838a137..9b5564b9e75db 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/expected.version.compile.pass.cpp
@@ -16,7 +16,7 @@
 // Test the feature test macros defined by <expected>
 
 /*  Constant              Value
-    __cpp_lib_expected    202211L [C++2b]
+    __cpp_lib_expected    202211L [C++23]
 */
 
 #include <expected>
@@ -25,34 +25,34 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++2b"
+#   error "__cpp_lib_expected should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++2b"
+#   error "__cpp_lib_expected should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++2b"
+#   error "__cpp_lib_expected should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++2b"
+#   error "__cpp_lib_expected should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_expected
-#   error "__cpp_lib_expected should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_expected should have the value 202211L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
index 692c7fad08aab..d7faa807d9253 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/filesystem.version.compile.pass.cpp
@@ -96,10 +96,10 @@
 
 # if defined(__cpp_char8_t)
 #   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t
@@ -109,10 +109,10 @@
 
 # if !defined(_LIBCPP_AVAILABILITY_HAS_NO_FILESYSTEM)
 #   ifndef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_filesystem should have the value 201703L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_filesystem

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
index 279361b6be552..dd6a2f8664d1e 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/format.version.compile.pass.cpp
@@ -19,7 +19,7 @@
 
 /*  Constant                   Value
     __cpp_lib_format           202106L [C++20]
-    __cpp_lib_format_ranges    202207L [C++2b]
+    __cpp_lib_format_ranges    202207L [C++23]
 */
 
 #include <format>
@@ -32,7 +32,7 @@
 # endif
 
 # ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++2b"
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -42,7 +42,7 @@
 # endif
 
 # ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++2b"
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -52,7 +52,7 @@
 # endif
 
 # ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++2b"
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -71,17 +71,17 @@
 # endif
 
 # ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++2b"
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_format
-#     error "__cpp_lib_format should be defined in c++2b"
+#     error "__cpp_lib_format should be defined in c++23"
 #   endif
 #   if __cpp_lib_format != 202106L
-#     error "__cpp_lib_format should have the value 202106L in c++2b"
+#     error "__cpp_lib_format should have the value 202106L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_format
@@ -91,10 +91,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)
 #   ifndef __cpp_lib_format_ranges
-#     error "__cpp_lib_format_ranges should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_format_ranges should have the value 202207L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_format_ranges

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 4e9bb597d0f43..eb883ba429ab6 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
@@ -21,7 +21,7 @@
     __cpp_lib_incomplete_container_elements       201505L [C++17]
     __cpp_lib_list_remove_return_type             201806L [C++20]
     __cpp_lib_nonmember_container_access          201411L [C++17]
-    __cpp_lib_ranges_to_container                 202202L [C++2b]
+    __cpp_lib_ranges_to_container                 202202L [C++23]
 */
 
 #include <forward_list>
@@ -50,7 +50,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -76,7 +76,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -111,7 +111,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -152,52 +152,52 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_incomplete_container_elements
-#   error "__cpp_lib_incomplete_container_elements should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23"
 # endif
 
 # ifndef __cpp_lib_list_remove_return_type
-#   error "__cpp_lib_list_remove_return_type should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23"
 # endif
 
 # ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
index d4845045c1711..0d47275e9edc8 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/functional.version.compile.pass.cpp
@@ -16,13 +16,13 @@
 // Test the feature test macros defined by <functional>
 
 /*  Constant                           Value
-    __cpp_lib_bind_back                202202L [C++2b]
+    __cpp_lib_bind_back                202202L [C++23]
     __cpp_lib_bind_front               201907L [C++20]
     __cpp_lib_boyer_moore_searcher     201603L [C++17]
     __cpp_lib_constexpr_functional     201907L [C++20]
     __cpp_lib_invoke                   201411L [C++17]
-    __cpp_lib_invoke_r                 202106L [C++2b]
-    __cpp_lib_move_only_function       202110L [C++2b]
+    __cpp_lib_invoke_r                 202106L [C++23]
+    __cpp_lib_move_only_function       202110L [C++23]
     __cpp_lib_not_fn                   201603L [C++17]
     __cpp_lib_ranges                   202106L [C++20]
     __cpp_lib_result_of_sfinae         201210L [C++14]
@@ -37,7 +37,7 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++2b"
+#   error "__cpp_lib_bind_back should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_bind_front
@@ -57,11 +57,11 @@
 # endif
 
 # ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++2b"
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++2b"
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_not_fn
@@ -87,7 +87,7 @@
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++2b"
+#   error "__cpp_lib_bind_back should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_bind_front
@@ -107,11 +107,11 @@
 # endif
 
 # ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++2b"
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++2b"
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_not_fn
@@ -143,7 +143,7 @@
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++2b"
+#   error "__cpp_lib_bind_back should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_bind_front
@@ -169,11 +169,11 @@
 # endif
 
 # ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++2b"
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++2b"
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_not_fn
@@ -208,7 +208,7 @@
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++2b"
+#   error "__cpp_lib_bind_back should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_bind_front
@@ -240,11 +240,11 @@
 # endif
 
 # ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++2b"
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++2b"
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_not_fn
@@ -286,10 +286,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_bind_back
-#     error "__cpp_lib_bind_back should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_bind_back should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_bind_back
@@ -298,46 +298,46 @@
 # endif
 
 # ifndef __cpp_lib_bind_front
-#   error "__cpp_lib_bind_front should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_bind_front should have the value 201907L in c++23"
 # endif
 
 # ifndef __cpp_lib_boyer_moore_searcher
-#   error "__cpp_lib_boyer_moore_searcher should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_functional
-#   error "__cpp_lib_constexpr_functional should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_functional should have the value 201907L in c++23"
 # endif
 
 # ifndef __cpp_lib_invoke
-#   error "__cpp_lib_invoke should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_invoke_r should have the value 202106L 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++2b"
+#     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++2b"
+#     error "__cpp_lib_move_only_function should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_move_only_function
@@ -346,38 +346,38 @@
 # endif
 
 # ifndef __cpp_lib_not_fn
-#   error "__cpp_lib_not_fn should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_not_fn should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++2b"
+#   error "__cpp_lib_ranges should be defined in c++23"
 # endif
 # if __cpp_lib_ranges != 202106L
-#   error "__cpp_lib_ranges should have the value 202106L in c++2b"
+#   error "__cpp_lib_ranges should have the value 202106L in c++23"
 # endif
 
 # ifndef __cpp_lib_result_of_sfinae
-#   error "__cpp_lib_result_of_sfinae should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23"
 # endif
 
 # ifndef __cpp_lib_transparent_operators
-#   error "__cpp_lib_transparent_operators should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_transparent_operators should have the value 201510L in c++23"
 # endif
 
 # ifndef __cpp_lib_unwrap_ref
-#   error "__cpp_lib_unwrap_ref should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_unwrap_ref should have the value 201811L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp
index b367c28a3e282..99bff07360b4d 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/iomanip.version.compile.pass.cpp
@@ -60,10 +60,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_quoted_string_io
-#   error "__cpp_lib_quoted_string_io should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_quoted_string_io should have the value 201304L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp
index 51703df5376c8..5e8ae2f279097 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/istream.version.compile.pass.cpp
@@ -61,10 +61,10 @@
 
 # if defined(__cpp_char8_t)
 #   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp
index a490a8a7dad6f..8170376a203bc 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/iterator.version.compile.pass.cpp
@@ -211,59 +211,59 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_array_constexpr
-#   error "__cpp_lib_array_constexpr should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_array_constexpr should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_iterator
-#   error "__cpp_lib_constexpr_iterator should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_make_reverse_iterator
-#   error "__cpp_lib_make_reverse_iterator should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23"
 # endif
 
 # ifndef __cpp_lib_move_iterator_concept
-#   error "__cpp_lib_move_iterator_concept should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23"
 # endif
 
 # ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # ifndef __cpp_lib_null_iterators
-#   error "__cpp_lib_null_iterators should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_null_iterators should have the value 201304L in c++23"
 # endif
 
 # ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++2b"
+#   error "__cpp_lib_ranges should be defined in c++23"
 # endif
 # if __cpp_lib_ranges != 202106L
-#   error "__cpp_lib_ranges should have the value 202106L in c++2b"
+#   error "__cpp_lib_ranges should have the value 202106L in c++23"
 # endif
 
 # ifndef __cpp_lib_ssize
-#   error "__cpp_lib_ssize should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_ssize should have the value 201902L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp
index 310827d913075..e470ac1de8a93 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/latch.version.compile.pass.cpp
@@ -61,10 +61,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)
 #   ifndef __cpp_lib_latch
-#     error "__cpp_lib_latch should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_latch should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_latch

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp
index d79f8371dcb10..c460216f6fb48 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/limits.version.compile.pass.cpp
@@ -59,10 +59,10 @@
 
 # if defined(__cpp_char8_t)
 #   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
index 6c6aaac008641..8dd05cd5fc79a 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.compile.pass.cpp
@@ -21,7 +21,7 @@
     __cpp_lib_incomplete_container_elements       201505L [C++17]
     __cpp_lib_list_remove_return_type             201806L [C++20]
     __cpp_lib_nonmember_container_access          201411L [C++17]
-    __cpp_lib_ranges_to_container                 202202L [C++2b]
+    __cpp_lib_ranges_to_container                 202202L [C++23]
 */
 
 #include <list>
@@ -50,7 +50,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -76,7 +76,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -111,7 +111,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -152,52 +152,52 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_incomplete_container_elements
-#   error "__cpp_lib_incomplete_container_elements should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23"
 # endif
 
 # ifndef __cpp_lib_list_remove_return_type
-#   error "__cpp_lib_list_remove_return_type should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23"
 # endif
 
 # ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp
index 29c381c1e2ce4..8756760fe186f 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/locale.version.compile.pass.cpp
@@ -61,10 +61,10 @@
 
 # if defined(__cpp_char8_t)
 #   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
index a127d514805aa..4179d5c7624b8 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/map.version.compile.pass.cpp
@@ -17,13 +17,13 @@
 
 /*  Constant                                       Value
     __cpp_lib_allocator_traits_is_always_equal     201411L [C++17]
-    __cpp_lib_associative_heterogeneous_erasure    202110L [C++2b]
+    __cpp_lib_associative_heterogeneous_erasure    202110L [C++23]
     __cpp_lib_erase_if                             202002L [C++20]
     __cpp_lib_generic_associative_lookup           201304L [C++14]
     __cpp_lib_map_try_emplace                      201411L [C++17]
     __cpp_lib_node_extract                         201606L [C++17]
     __cpp_lib_nonmember_container_access           201411L [C++17]
-    __cpp_lib_ranges_to_container                  202202L [C++2b]
+    __cpp_lib_ranges_to_container                  202202L [C++23]
 */
 
 #include <map>
@@ -36,7 +36,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -60,7 +60,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -70,7 +70,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -97,7 +97,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -110,7 +110,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -146,7 +146,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -159,7 +159,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
@@ -198,24 +198,24 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L 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++2b"
+#     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++2b"
+#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_associative_heterogeneous_erasure
@@ -224,46 +224,46 @@
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_generic_associative_lookup
-#   error "__cpp_lib_generic_associative_lookup should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_generic_associative_lookup 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++2b"
+#   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++2b"
+#   error "__cpp_lib_map_try_emplace should have the value 201411L in c++23"
 # endif
 
 # ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
index 26c2600f14e6b..91924fdb834d0 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/mdspan.version.compile.pass.cpp
@@ -16,7 +16,7 @@
 // Test the feature test macros defined by <mdspan>
 
 /*  Constant            Value
-    __cpp_lib_mdspan    202207L [C++2b]
+    __cpp_lib_mdspan    202207L [C++23]
 */
 
 #include <mdspan>
@@ -25,35 +25,35 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++2b"
+#   error "__cpp_lib_mdspan should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++2b"
+#   error "__cpp_lib_mdspan should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++2b"
+#   error "__cpp_lib_mdspan should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++2b"
+#   error "__cpp_lib_mdspan should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_mdspan
-#     error "__cpp_lib_mdspan should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_mdspan should have the value 202207L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_mdspan

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
index 2d4b67ab09f39..8bbc2cea99244 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/memory.version.compile.pass.cpp
@@ -17,16 +17,16 @@
 
 /*  Constant                                      Value
     __cpp_lib_addressof_constexpr                 201603L [C++17]
-    __cpp_lib_allocate_at_least                   202106L [C++2b]
+    __cpp_lib_allocate_at_least                   202106L [C++23]
     __cpp_lib_allocator_traits_is_always_equal    201411L [C++17]
     __cpp_lib_assume_aligned                      201811L [C++20]
     __cpp_lib_atomic_value_initialization         201911L [C++20]
     __cpp_lib_constexpr_dynamic_alloc             201907L [C++20]
     __cpp_lib_constexpr_memory                    201811L [C++20]
-                                                  202202L [C++2b]
+                                                  202202L [C++23]
     __cpp_lib_enable_shared_from_this             201603L [C++17]
     __cpp_lib_make_unique                         201304L [C++14]
-    __cpp_lib_out_ptr                             202106L [C++2b]
+    __cpp_lib_out_ptr                             202106L [C++23]
     __cpp_lib_ranges                              202106L [C++20]
     __cpp_lib_raw_memory_algorithms               201606L [C++17]
     __cpp_lib_shared_ptr_arrays                   201611L [C++17]
@@ -48,7 +48,7 @@
 # endif
 
 # ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_allocator_traits_is_always_equal
@@ -80,7 +80,7 @@
 # endif
 
 # ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++2b"
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges
@@ -118,7 +118,7 @@
 # endif
 
 # ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_allocator_traits_is_always_equal
@@ -153,7 +153,7 @@
 # endif
 
 # ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++2b"
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges
@@ -197,7 +197,7 @@
 # endif
 
 # ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -238,7 +238,7 @@
 # endif
 
 # ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++2b"
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges
@@ -291,7 +291,7 @@
 # endif
 
 # ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -344,7 +344,7 @@
 # endif
 
 # ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++2b"
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_ranges
@@ -405,74 +405,74 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_addressof_constexpr
-#   error "__cpp_lib_addressof_constexpr should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_allocate_at_least should be defined in c++23"
 # endif
 # if __cpp_lib_allocate_at_least != 202106L
-#   error "__cpp_lib_allocate_at_least should have the value 202106L in c++2b"
+#   error "__cpp_lib_allocate_at_least should have the value 202106L 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++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 # endif
 
 # ifndef __cpp_lib_assume_aligned
-#   error "__cpp_lib_assume_aligned should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_assume_aligned should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_atomic_value_initialization
-#   error "__cpp_lib_atomic_value_initialization should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_dynamic_alloc
-#   error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_memory
-#   error "__cpp_lib_constexpr_memory should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_memory should have the value 202202L in c++23"
 # endif
 
 # ifndef __cpp_lib_enable_shared_from_this
-#   error "__cpp_lib_enable_shared_from_this should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_make_unique
-#   error "__cpp_lib_make_unique should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_make_unique should have the value 201304L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_out_ptr
-#     error "__cpp_lib_out_ptr should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_out_ptr should have the value 202106L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_out_ptr
@@ -481,39 +481,39 @@
 # endif
 
 # ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++2b"
+#   error "__cpp_lib_ranges should be defined in c++23"
 # endif
 # if __cpp_lib_ranges != 202106L
-#   error "__cpp_lib_ranges should have the value 202106L in c++2b"
+#   error "__cpp_lib_ranges should have the value 202106L in c++23"
 # endif
 
 # ifndef __cpp_lib_raw_memory_algorithms
-#   error "__cpp_lib_raw_memory_algorithms should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23"
 # endif
 
 # ifndef __cpp_lib_shared_ptr_arrays
-#   error "__cpp_lib_shared_ptr_arrays should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_smart_ptr_for_overwrite
-#     error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_smart_ptr_for_overwrite
@@ -522,17 +522,17 @@
 # endif
 
 # ifndef __cpp_lib_to_address
-#   error "__cpp_lib_to_address should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_to_address should have the value 201711L in c++23"
 # endif
 
 # ifndef __cpp_lib_transparent_operators
-#   error "__cpp_lib_transparent_operators should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_transparent_operators should have the value 201510L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp
index 573fd0fbc0a3c..4fad499c3f101 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/memory_resource.version.compile.pass.cpp
@@ -75,17 +75,17 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_memory_resource
-#   error "__cpp_lib_memory_resource should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_memory_resource should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_polymorphic_allocator
-#   error "__cpp_lib_polymorphic_allocator should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp
index fca784e7a77e4..bb129fb8cc4c1 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/mutex.version.compile.pass.cpp
@@ -57,10 +57,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_scoped_lock
-#   error "__cpp_lib_scoped_lock should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_scoped_lock should have the value 201703L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
index 8c7b4c7839d1e..db6d195394951 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/new.version.compile.pass.cpp
@@ -117,10 +117,10 @@
 
 # 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++2b"
+#     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++2b"
+#     error "__cpp_lib_destroying_delete should have the value 201806L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_destroying_delete
@@ -130,10 +130,10 @@
 
 # if 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++2b"
+#     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++2b"
+#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_hardware_interference_size
@@ -142,10 +142,10 @@
 # endif
 
 # ifndef __cpp_lib_launder
-#   error "__cpp_lib_launder should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_launder should have the value 201606L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp
index c9e2cfb0fe298..f2fde2020c930 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/numbers.version.compile.pass.cpp
@@ -52,10 +52,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_math_constants
-#   error "__cpp_lib_math_constants should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_math_constants should have the value 201907L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp
index 0a30e127d666d..1494c5e21ef06 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/numeric.version.compile.pass.cpp
@@ -20,7 +20,7 @@
     __cpp_lib_gcd_lcm               201606L [C++17]
     __cpp_lib_interpolate           201902L [C++20]
     __cpp_lib_parallel_algorithm    201603L [C++17]
-    __cpp_lib_ranges_iota           202202L [C++2b]
+    __cpp_lib_ranges_iota           202202L [C++23]
 */
 
 #include <numeric>
@@ -45,7 +45,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++2b"
+#   error "__cpp_lib_ranges_iota should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -67,7 +67,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++2b"
+#   error "__cpp_lib_ranges_iota should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -101,7 +101,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++2b"
+#   error "__cpp_lib_ranges_iota should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -141,38 +141,38 @@
 # endif
 
 # ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++2b"
+#   error "__cpp_lib_ranges_iota should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_constexpr_numeric
-#   error "__cpp_lib_constexpr_numeric should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_numeric should have the value 201911L in c++23"
 # endif
 
 # ifndef __cpp_lib_gcd_lcm
-#   error "__cpp_lib_gcd_lcm should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++23"
 # endif
 
 # ifndef __cpp_lib_interpolate
-#   error "__cpp_lib_interpolate should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_interpolate should have the value 201902L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_parallel_algorithm
@@ -182,10 +182,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_iota
-#     error "__cpp_lib_ranges_iota should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_iota should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_iota

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
index b1c5f3126eaea..ace7cae571706 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/optional.version.compile.pass.cpp
@@ -17,7 +17,7 @@
 
 /*  Constant              Value
     __cpp_lib_optional    201606L [C++17]
-                          202110L [C++2b]
+                          202110L [C++23]
 */
 
 #include <optional>
@@ -56,10 +56,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_optional
-#   error "__cpp_lib_optional should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_optional should have the value 202110L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp
index 0f9034fc0631d..43711e1feeb03 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ostream.version.compile.pass.cpp
@@ -61,10 +61,10 @@
 
 # if defined(__cpp_char8_t)
 #   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
index a76d99871ef7a..07644467f07bc 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/queue.version.compile.pass.cpp
@@ -16,8 +16,8 @@
 // Test the feature test macros defined by <queue>
 
 /*  Constant                                       Value
-    __cpp_lib_adaptor_iterator_pair_constructor    202106L [C++2b]
-    __cpp_lib_ranges_to_container                  202202L [C++2b]
+    __cpp_lib_adaptor_iterator_pair_constructor    202106L [C++23]
+    __cpp_lib_ranges_to_container                  202202L [C++23]
 */
 
 #include <queue>
@@ -26,58 +26,58 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # 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++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
index 581875d6cd299..ab5cdb1505dab 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ranges.version.compile.pass.cpp
@@ -17,12 +17,12 @@
 
 /*  Constant                      Value
     __cpp_lib_ranges              202106L [C++20]
-    __cpp_lib_ranges_as_rvalue    202207L [C++2b]
-    __cpp_lib_ranges_chunk        202202L [C++2b]
-    __cpp_lib_ranges_chunk_by     202202L [C++2b]
-    __cpp_lib_ranges_join_with    202202L [C++2b]
-    __cpp_lib_ranges_slide        202202L [C++2b]
-    __cpp_lib_ranges_zip          202110L [C++2b]
+    __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_join_with    202202L [C++23]
+    __cpp_lib_ranges_slide        202202L [C++23]
+    __cpp_lib_ranges_zip          202110L [C++23]
 */
 
 #include <ranges>
@@ -35,27 +35,27 @@
 # endif
 
 # ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_chunk_by 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++2b"
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++2b"
+#   error "__cpp_lib_ranges_slide should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -65,27 +65,27 @@
 # endif
 
 # ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_chunk_by 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++2b"
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++2b"
+#   error "__cpp_lib_ranges_slide should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -95,27 +95,27 @@
 # endif
 
 # ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_chunk_by 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++2b"
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++2b"
+#   error "__cpp_lib_ranges_slide should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -128,51 +128,51 @@
 # endif
 
 # ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_chunk_by 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++2b"
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++2b"
+#   error "__cpp_lib_ranges_slide should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++2b"
+#   error "__cpp_lib_ranges should be defined in c++23"
 # endif
 # if __cpp_lib_ranges != 202106L
-#   error "__cpp_lib_ranges should have the value 202106L in c++2b"
+#   error "__cpp_lib_ranges should have the value 202106L in c++23"
 # endif
 
 # ifndef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_chunk should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_chunk
@@ -182,10 +182,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_chunk_by
-#     error "__cpp_lib_ranges_chunk_by should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_chunk_by
@@ -195,10 +195,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_join_with
-#     error "__cpp_lib_ranges_join_with should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_join_with should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_join_with
@@ -208,10 +208,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_slide
-#     error "__cpp_lib_ranges_slide should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_slide should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_slide
@@ -221,10 +221,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_zip
-#     error "__cpp_lib_ranges_zip should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_zip

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp
index 38b9969e92910..f392165dcd421 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/regex.version.compile.pass.cpp
@@ -57,10 +57,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp
index 55bf6f520a8ef..8e84a2ab394a6 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/scoped_allocator.version.compile.pass.cpp
@@ -55,10 +55,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp
index 93240e17cff9d..4ebfbf068a6b8 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/semaphore.version.compile.pass.cpp
@@ -61,10 +61,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)
 #   ifndef __cpp_lib_semaphore
-#     error "__cpp_lib_semaphore should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_semaphore should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_semaphore

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
index 90684859698c1..43e43a039dc0c 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/set.version.compile.pass.cpp
@@ -17,12 +17,12 @@
 
 /*  Constant                                       Value
     __cpp_lib_allocator_traits_is_always_equal     201411L [C++17]
-    __cpp_lib_associative_heterogeneous_erasure    202110L [C++2b]
+    __cpp_lib_associative_heterogeneous_erasure    202110L [C++23]
     __cpp_lib_erase_if                             202002L [C++20]
     __cpp_lib_generic_associative_lookup           201304L [C++14]
     __cpp_lib_node_extract                         201606L [C++17]
     __cpp_lib_nonmember_container_access           201411L [C++17]
-    __cpp_lib_ranges_to_container                  202202L [C++2b]
+    __cpp_lib_ranges_to_container                  202202L [C++23]
 */
 
 #include <set>
@@ -35,7 +35,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -55,7 +55,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -65,7 +65,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -88,7 +88,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -101,7 +101,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -130,7 +130,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -143,7 +143,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
@@ -175,24 +175,24 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L 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++2b"
+#     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++2b"
+#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_associative_heterogeneous_erasure
@@ -201,39 +201,39 @@
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_generic_associative_lookup
-#   error "__cpp_lib_generic_associative_lookup should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23"
 # endif
 
 # ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp
index a36f4b0e1291a..73abfa137d440 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/shared_mutex.version.compile.pass.cpp
@@ -114,10 +114,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SHARED_MUTEX)
 #   ifndef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_shared_mutex should have the value 201505L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_shared_mutex
@@ -127,10 +127,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SHARED_MUTEX)
 #   ifndef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_shared_timed_mutex

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp
index 5b3d4b49517fa..1b8a875ec38ab 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/source_location.version.compile.pass.cpp
@@ -59,10 +59,10 @@
 
 # if __has_builtin(__builtin_source_location) && !(defined(TEST_APPLE_CLANG_VER) && TEST_APPLE_CLANG_VER <= 1403)
 #   ifndef __cpp_lib_source_location
-#     error "__cpp_lib_source_location should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_source_location should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_source_location

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
index a8ceea67c5892..7d8cd87da0f0f 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/span.version.compile.pass.cpp
@@ -52,10 +52,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_span
-#   error "__cpp_lib_span should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_span should have the value 202002L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
index af17a9090fc69..4a3d76ba0c256 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/stack.version.compile.pass.cpp
@@ -16,8 +16,8 @@
 // Test the feature test macros defined by <stack>
 
 /*  Constant                                       Value
-    __cpp_lib_adaptor_iterator_pair_constructor    202106L [C++2b]
-    __cpp_lib_ranges_to_container                  202202L [C++2b]
+    __cpp_lib_adaptor_iterator_pair_constructor    202106L [C++23]
+    __cpp_lib_ranges_to_container                  202202L [C++23]
 */
 
 #include <stack>
@@ -26,58 +26,58 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # 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++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp
index 8492b855fc62f..bd9a1f7d45472 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/stdatomic.h.version.compile.pass.cpp
@@ -18,7 +18,7 @@
 // Test the feature test macros defined by <stdatomic.h>
 
 /*  Constant                 Value
-    __cpp_lib_stdatomic_h    202011L [C++2b]
+    __cpp_lib_stdatomic_h    202011L [C++23]
 */
 
 #include <stdatomic.h>
@@ -27,34 +27,34 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
+#   error "__cpp_lib_stdatomic_h should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
+#   error "__cpp_lib_stdatomic_h should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
+#   error "__cpp_lib_stdatomic_h should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
+#   error "__cpp_lib_stdatomic_h should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_stdatomic_h should have the value 202011L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
index 171d35839ce49..9dc03f923936a 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/string.version.compile.pass.cpp
@@ -21,10 +21,10 @@
     __cpp_lib_constexpr_string                    201907L [C++20]
     __cpp_lib_erase_if                            202002L [C++20]
     __cpp_lib_nonmember_container_access          201411L [C++17]
-    __cpp_lib_ranges_to_container                 202202L [C++2b]
+    __cpp_lib_ranges_to_container                 202202L [C++23]
     __cpp_lib_starts_ends_with                    201711L [C++20]
-    __cpp_lib_string_contains                     202011L [C++2b]
-    __cpp_lib_string_resize_and_overwrite         202110L [C++2b]
+    __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]
@@ -56,7 +56,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_starts_ends_with
@@ -64,11 +64,11 @@
 # endif
 
 # ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_string_udls
@@ -102,7 +102,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_starts_ends_with
@@ -110,11 +110,11 @@
 # endif
 
 # ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_string_udls
@@ -157,7 +157,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_starts_ends_with
@@ -165,11 +165,11 @@
 # endif
 
 # ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_string_udls
@@ -230,7 +230,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_starts_ends_with
@@ -241,11 +241,11 @@
 # endif
 
 # ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_string_udls
@@ -265,18 +265,18 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 # endif
 
 # if defined(__cpp_char8_t)
 #   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t
@@ -285,32 +285,32 @@
 # endif
 
 # ifndef __cpp_lib_constexpr_string
-#   error "__cpp_lib_constexpr_string should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_string should have the value 201907L in c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container
@@ -319,38 +319,38 @@
 # endif
 
 # ifndef __cpp_lib_starts_ends_with
-#   error "__cpp_lib_starts_ends_with should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_starts_ends_with should have the value 201711L in c++23"
 # endif
 
 # ifndef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_string_view should have the value 201803L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
index 7182347bfa777..08fe83d9b2c97 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/string_view.version.compile.pass.cpp
@@ -19,7 +19,7 @@
     __cpp_lib_char8_t                  201907L [C++20]
     __cpp_lib_constexpr_string_view    201811L [C++20]
     __cpp_lib_starts_ends_with         201711L [C++20]
-    __cpp_lib_string_contains          202011L [C++2b]
+    __cpp_lib_string_contains          202011L [C++23]
     __cpp_lib_string_view              201606L [C++17]
                                        201803L [C++20]
 */
@@ -42,7 +42,7 @@
 # endif
 
 # ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++2b"
+#   error "__cpp_lib_string_contains should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_string_view
@@ -64,7 +64,7 @@
 # endif
 
 # ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++2b"
+#   error "__cpp_lib_string_contains should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_string_view
@@ -86,7 +86,7 @@
 # endif
 
 # ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++2b"
+#   error "__cpp_lib_string_contains should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_string_view
@@ -126,7 +126,7 @@
 # endif
 
 # ifdef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should not be defined before c++2b"
+#   error "__cpp_lib_string_contains should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_string_view
@@ -140,10 +140,10 @@
 
 # if defined(__cpp_char8_t)
 #   ifndef __cpp_lib_char8_t
-#     error "__cpp_lib_char8_t should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t
@@ -152,31 +152,31 @@
 # endif
 
 # ifndef __cpp_lib_constexpr_string_view
-#   error "__cpp_lib_constexpr_string_view should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_starts_ends_with
-#   error "__cpp_lib_starts_ends_with should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_starts_ends_with should have the value 201711L in c++23"
 # endif
 
 # ifndef __cpp_lib_string_contains
-#   error "__cpp_lib_string_contains should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_string_contains should have the value 202011L in c++23"
 # endif
 
 # ifndef __cpp_lib_string_view
-#   error "__cpp_lib_string_view should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_string_view should have the value 201803L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
index 47f6c61e85ac8..bfa5de2e9b1d7 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
@@ -18,7 +18,7 @@
 // Test the feature test macros defined by <thread>
 
 /*  Constant                Value
-    __cpp_lib_formatters    202302L [C++2b]
+    __cpp_lib_formatters    202302L [C++23]
     __cpp_lib_jthread       201911L [C++20]
 */
 
@@ -28,7 +28,7 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++2b"
+#   error "__cpp_lib_formatters should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_jthread
@@ -38,7 +38,7 @@
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++2b"
+#   error "__cpp_lib_formatters should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_jthread
@@ -48,7 +48,7 @@
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++2b"
+#   error "__cpp_lib_formatters should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_jthread
@@ -58,7 +58,7 @@
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++2b"
+#   error "__cpp_lib_formatters should not be defined before c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
@@ -78,10 +78,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_formatters
-#     error "__cpp_lib_formatters should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_formatters should have the value 202302L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_formatters
@@ -91,10 +91,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_jthread
-#     error "__cpp_lib_jthread should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_jthread should have the value 201911L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_jthread

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
index d3ddc4b48dc61..0beb09db8d591 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/tuple.version.compile.pass.cpp
@@ -19,7 +19,7 @@
     __cpp_lib_apply              201603L [C++17]
     __cpp_lib_constexpr_tuple    201811L [C++20]
     __cpp_lib_make_from_tuple    201606L [C++17]
-    __cpp_lib_ranges_zip         202110L [C++2b]
+    __cpp_lib_ranges_zip         202110L [C++23]
     __cpp_lib_tuple_element_t    201402L [C++14]
     __cpp_lib_tuples_by_type     201304L [C++14]
 */
@@ -42,7 +42,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_tuple_element_t
@@ -68,7 +68,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_tuple_element_t
@@ -106,7 +106,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_tuple_element_t
@@ -147,7 +147,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_tuple_element_t
@@ -167,32 +167,32 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_apply
-#   error "__cpp_lib_apply should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_apply should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_tuple
-#   error "__cpp_lib_constexpr_tuple should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_tuple should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_make_from_tuple
-#   error "__cpp_lib_make_from_tuple should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_make_from_tuple should have the value 201606L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_zip
-#     error "__cpp_lib_ranges_zip should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_zip
@@ -201,17 +201,17 @@
 # endif
 
 # ifndef __cpp_lib_tuple_element_t
-#   error "__cpp_lib_tuple_element_t should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++23"
 # endif
 
 # ifndef __cpp_lib_tuples_by_type
-#   error "__cpp_lib_tuples_by_type should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
index 89a1dcf67f7e8..67b02a5db15f7 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/type_traits.version.compile.pass.cpp
@@ -28,10 +28,10 @@
     __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++2b]
+    __cpp_lib_is_scoped_enum                       202011L [C++23]
     __cpp_lib_is_swappable                         201603L [C++17]
     __cpp_lib_logical_traits                       201510L [C++17]
-    __cpp_lib_reference_from_temporary             202202L [C++2b]
+    __cpp_lib_reference_from_temporary             202202L [C++23]
     __cpp_lib_remove_cvref                         201711L [C++20]
     __cpp_lib_result_of_sfinae                     201210L [C++14]
     __cpp_lib_transformation_trait_aliases         201304L [C++14]
@@ -94,7 +94,7 @@
 # endif
 
 # ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_is_swappable
@@ -106,7 +106,7 @@
 # endif
 
 # ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_remove_cvref
@@ -193,7 +193,7 @@
 # endif
 
 # ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_is_swappable
@@ -205,7 +205,7 @@
 # endif
 
 # ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_remove_cvref
@@ -310,7 +310,7 @@
 # endif
 
 # ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_is_swappable
@@ -328,7 +328,7 @@
 # endif
 
 # ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_remove_cvref
@@ -466,7 +466,7 @@
 # endif
 
 # ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_is_swappable
@@ -484,7 +484,7 @@
 # endif
 
 # ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_remove_cvref
@@ -532,67 +532,67 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_bool_constant
-#   error "__cpp_lib_bool_constant should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_bounded_array_traits should have the value 201902L in c++23"
 # endif
 
 # ifndef __cpp_lib_has_unique_object_representations
-#   error "__cpp_lib_has_unique_object_representations should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23"
 # endif
 
 # ifndef __cpp_lib_integral_constant_callable
-#   error "__cpp_lib_integral_constant_callable should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++23"
 # endif
 
 # ifndef __cpp_lib_is_aggregate
-#   error "__cpp_lib_is_aggregate should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_is_final should have the value 201402L in c++23"
 # endif
 
 # ifndef __cpp_lib_is_invocable
-#   error "__cpp_lib_is_invocable should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_is_layout_compatible
@@ -601,25 +601,25 @@
 # endif
 
 # ifndef __cpp_lib_is_nothrow_convertible
-#   error "__cpp_lib_is_nothrow_convertible should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_is_pointer_interconvertible
@@ -628,32 +628,32 @@
 # endif
 
 # ifndef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_is_swappable should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_logical_traits
-#   error "__cpp_lib_logical_traits should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_logical_traits should have the value 201510L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_reference_from_temporary
-#     error "__cpp_lib_reference_from_temporary should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_reference_from_temporary
@@ -662,45 +662,45 @@
 # endif
 
 # ifndef __cpp_lib_remove_cvref
-#   error "__cpp_lib_remove_cvref should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23"
 # endif
 
 # ifndef __cpp_lib_transformation_trait_aliases
-#   error "__cpp_lib_transformation_trait_aliases should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++23"
 # endif
 
 # ifndef __cpp_lib_type_identity
-#   error "__cpp_lib_type_identity should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++23"
 # endif
 
 # ifndef __cpp_lib_void_t
-#   error "__cpp_lib_void_t should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_void_t should have the value 201411L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp
index 3cb2502d0af69..a68f6ba03fe77 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/typeinfo.version.compile.pass.cpp
@@ -16,7 +16,7 @@
 // Test the feature test macros defined by <typeinfo>
 
 /*  Constant                        Value
-    __cpp_lib_constexpr_typeinfo    202106L [C++2b]
+    __cpp_lib_constexpr_typeinfo    202106L [C++23]
 */
 
 #include <typeinfo>
@@ -25,34 +25,34 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
 
 # ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
index 038420c4079d2..4e3c7f911c9e4 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_map.version.compile.pass.cpp
@@ -17,12 +17,12 @@
 
 /*  Constant                                       Value
     __cpp_lib_allocator_traits_is_always_equal     201411L [C++17]
-    __cpp_lib_associative_heterogeneous_erasure    202110L [C++2b]
+    __cpp_lib_associative_heterogeneous_erasure    202110L [C++23]
     __cpp_lib_erase_if                             202002L [C++20]
     __cpp_lib_generic_unordered_lookup             201811L [C++20]
     __cpp_lib_node_extract                         201606L [C++17]
     __cpp_lib_nonmember_container_access           201411L [C++17]
-    __cpp_lib_ranges_to_container                  202202L [C++2b]
+    __cpp_lib_ranges_to_container                  202202L [C++23]
     __cpp_lib_unordered_map_try_emplace            201411L [C++17]
 */
 
@@ -36,7 +36,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -56,7 +56,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_unordered_map_try_emplace
@@ -70,7 +70,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -90,7 +90,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_unordered_map_try_emplace
@@ -107,7 +107,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -133,7 +133,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_unordered_map_try_emplace
@@ -153,7 +153,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
@@ -185,7 +185,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_unordered_map_try_emplace
@@ -198,18 +198,18 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L 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++2b"
+#     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++2b"
+#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_associative_heterogeneous_erasure
@@ -218,39 +218,39 @@
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_generic_unordered_lookup
-#   error "__cpp_lib_generic_unordered_lookup should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container
@@ -259,10 +259,10 @@
 # endif
 
 # ifndef __cpp_lib_unordered_map_try_emplace
-#   error "__cpp_lib_unordered_map_try_emplace should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
index 13092c1a0e469..3302f7f5bdb36 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/unordered_set.version.compile.pass.cpp
@@ -17,12 +17,12 @@
 
 /*  Constant                                       Value
     __cpp_lib_allocator_traits_is_always_equal     201411L [C++17]
-    __cpp_lib_associative_heterogeneous_erasure    202110L [C++2b]
+    __cpp_lib_associative_heterogeneous_erasure    202110L [C++23]
     __cpp_lib_erase_if                             202002L [C++20]
     __cpp_lib_generic_unordered_lookup             201811L [C++20]
     __cpp_lib_node_extract                         201606L [C++17]
     __cpp_lib_nonmember_container_access           201411L [C++17]
-    __cpp_lib_ranges_to_container                  202202L [C++2b]
+    __cpp_lib_ranges_to_container                  202202L [C++23]
 */
 
 #include <unordered_set>
@@ -35,7 +35,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -55,7 +55,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -65,7 +65,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -85,7 +85,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -98,7 +98,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_erase_if
@@ -124,7 +124,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -137,7 +137,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
@@ -169,24 +169,24 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L 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++2b"
+#     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++2b"
+#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_associative_heterogeneous_erasure
@@ -195,39 +195,39 @@
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_generic_unordered_lookup
-#   error "__cpp_lib_generic_unordered_lookup should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
index 6a92799b1f026..b0e4014bdff47 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/utility.version.compile.pass.cpp
@@ -20,13 +20,13 @@
     __cpp_lib_constexpr_algorithms            201806L [C++20]
     __cpp_lib_constexpr_utility               201811L [C++20]
     __cpp_lib_exchange_function               201304L [C++14]
-    __cpp_lib_forward_like                    202207L [C++2b]
+    __cpp_lib_forward_like                    202207L [C++23]
     __cpp_lib_integer_comparison_functions    202002L [C++20]
     __cpp_lib_integer_sequence                201304L [C++14]
-    __cpp_lib_ranges_zip                      202110L [C++2b]
-    __cpp_lib_to_underlying                   202102L [C++2b]
+    __cpp_lib_ranges_zip                      202110L [C++23]
+    __cpp_lib_to_underlying                   202102L [C++23]
     __cpp_lib_tuples_by_type                  201304L [C++14]
-    __cpp_lib_unreachable                     202202L [C++2b]
+    __cpp_lib_unreachable                     202202L [C++23]
 */
 
 #include <utility>
@@ -51,7 +51,7 @@
 # endif
 
 # ifdef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should not be defined before c++2b"
+#   error "__cpp_lib_forward_like should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_integer_comparison_functions
@@ -63,11 +63,11 @@
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++2b"
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_tuples_by_type
@@ -75,7 +75,7 @@
 # endif
 
 # ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++2b"
+#   error "__cpp_lib_unreachable should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -100,7 +100,7 @@
 # endif
 
 # ifdef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should not be defined before c++2b"
+#   error "__cpp_lib_forward_like should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_integer_comparison_functions
@@ -115,11 +115,11 @@
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++2b"
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_tuples_by_type
@@ -130,7 +130,7 @@
 # endif
 
 # ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++2b"
+#   error "__cpp_lib_unreachable should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -158,7 +158,7 @@
 # endif
 
 # ifdef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should not be defined before c++2b"
+#   error "__cpp_lib_forward_like should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_integer_comparison_functions
@@ -173,11 +173,11 @@
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++2b"
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_tuples_by_type
@@ -188,7 +188,7 @@
 # endif
 
 # ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++2b"
+#   error "__cpp_lib_unreachable should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -222,7 +222,7 @@
 # endif
 
 # ifdef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should not be defined before c++2b"
+#   error "__cpp_lib_forward_like should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_integer_comparison_functions
@@ -240,11 +240,11 @@
 # endif
 
 # ifdef __cpp_lib_ranges_zip
-#   error "__cpp_lib_ranges_zip should not be defined before c++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++2b"
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_tuples_by_type
@@ -255,66 +255,66 @@
 # endif
 
 # ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++2b"
+#   error "__cpp_lib_unreachable should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_as_const
-#   error "__cpp_lib_as_const should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_as_const should have the value 201510L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_algorithms
-#   error "__cpp_lib_constexpr_algorithms should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_utility
-#   error "__cpp_lib_constexpr_utility should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_utility should have the value 201811L in c++23"
 # endif
 
 # ifndef __cpp_lib_exchange_function
-#   error "__cpp_lib_exchange_function should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_exchange_function should have the value 201304L in c++23"
 # endif
 
 # ifndef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_forward_like should have the value 202207L in c++23"
 # endif
 
 # ifndef __cpp_lib_integer_comparison_functions
-#   error "__cpp_lib_integer_comparison_functions should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_integer_sequence should have the value 201304L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_zip
-#     error "__cpp_lib_ranges_zip should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_zip
@@ -323,24 +323,24 @@
 # endif
 
 # ifndef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_to_underlying should have the value 202102L in c++23"
 # endif
 
 # ifndef __cpp_lib_tuples_by_type
-#   error "__cpp_lib_tuples_by_type should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_tuples_by_type should have the value 201304L in c++23"
 # endif
 
 # ifndef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_unreachable should have the value 202202L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
index dcee42e0b51a2..02e69c6d6df89 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/variant.version.compile.pass.cpp
@@ -55,10 +55,10 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_variant
-#   error "__cpp_lib_variant should be defined in c++2b"
+#   error "__cpp_lib_variant should be defined in c++23"
 # endif
 # if __cpp_lib_variant != 202102L
-#   error "__cpp_lib_variant should have the value 202102L in c++2b"
+#   error "__cpp_lib_variant should have the value 202102L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
index 2d9b6bfe870b9..9c4206065d76f 100644
--- a/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
+++ b/libcxx/test/std/language.support/support.limits/support.limits.general/vector.version.compile.pass.cpp
@@ -21,7 +21,7 @@
     __cpp_lib_erase_if                            202002L [C++20]
     __cpp_lib_incomplete_container_elements       201505L [C++17]
     __cpp_lib_nonmember_container_access          201411L [C++17]
-    __cpp_lib_ranges_to_container                 202202L [C++2b]
+    __cpp_lib_ranges_to_container                 202202L [C++23]
 */
 
 #include <vector>
@@ -50,7 +50,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 14
@@ -76,7 +76,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 17
@@ -111,7 +111,7 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER == 20
@@ -152,52 +152,52 @@
 # endif
 
 # ifdef __cpp_lib_ranges_to_container
-#   error "__cpp_lib_ranges_to_container should not be defined before c++2b"
+#   error "__cpp_lib_ranges_to_container should not be defined before c++23"
 # endif
 
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
-#   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_vector
-#   error "__cpp_lib_constexpr_vector should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_vector should have the value 201907L in c++23"
 # endif
 
 # ifndef __cpp_lib_erase_if
-#   error "__cpp_lib_erase_if should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_erase_if should have the value 202002L in c++23"
 # endif
 
 # ifndef __cpp_lib_incomplete_container_elements
-#   error "__cpp_lib_incomplete_container_elements should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23"
 # endif
 
 # ifndef __cpp_lib_nonmember_container_access
-#   error "__cpp_lib_nonmember_container_access should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container

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 74073cfcf1c13..e31837e1e2ab1 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
@@ -16,16 +16,16 @@
 // Test the feature test macros defined by <version>
 
 /*  Constant                                       Value
-    __cpp_lib_adaptor_iterator_pair_constructor    202106L [C++2b]
+    __cpp_lib_adaptor_iterator_pair_constructor    202106L [C++23]
     __cpp_lib_addressof_constexpr                  201603L [C++17]
-    __cpp_lib_allocate_at_least                    202106L [C++2b]
+    __cpp_lib_allocate_at_least                    202106L [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++2b]
+    __cpp_lib_associative_heterogeneous_erasure    202110L [C++23]
     __cpp_lib_assume_aligned                       201811L [C++20]
     __cpp_lib_atomic_flag_test                     201907L [C++20]
     __cpp_lib_atomic_float                         201711L [C++20]
@@ -36,7 +36,7 @@
     __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++2b]
+    __cpp_lib_bind_back                            202202L [C++23]
     __cpp_lib_bind_front                           201907L [C++20]
     __cpp_lib_bit_cast                             201806L [C++20]
     __cpp_lib_bitops                               201907L [C++20]
@@ -44,7 +44,7 @@
     __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++2b]
+    __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]
@@ -52,20 +52,20 @@
     __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++2b]
-    __cpp_lib_constexpr_charconv                   202207L [C++2b]
-    __cpp_lib_constexpr_cmath                      202202L [C++2b]
+    __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_functional                 201907L [C++20]
     __cpp_lib_constexpr_iterator                   201811L [C++20]
     __cpp_lib_constexpr_memory                     201811L [C++20]
-                                                   202202L [C++2b]
+                                                   202202L [C++23]
     __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++2b]
+    __cpp_lib_constexpr_typeinfo                   202106L [C++23]
     __cpp_lib_constexpr_utility                    201811L [C++20]
     __cpp_lib_constexpr_vector                     201907L [C++20]
     __cpp_lib_coroutine                            201902L [C++20]
@@ -76,12 +76,12 @@
     __cpp_lib_exchange_function                    201304L [C++14]
     __cpp_lib_execution                            201603L [C++17]
                                                    201902L [C++20]
-    __cpp_lib_expected                             202211L [C++2b]
+    __cpp_lib_expected                             202211L [C++23]
     __cpp_lib_filesystem                           201703L [C++17]
     __cpp_lib_format                               202106L [C++20]
-    __cpp_lib_format_ranges                        202207L [C++2b]
-    __cpp_lib_formatters                           202302L [C++2b]
-    __cpp_lib_forward_like                         202207L [C++2b]
+    __cpp_lib_format_ranges                        202207L [C++23]
+    __cpp_lib_formatters                           202302L [C++23]
+    __cpp_lib_forward_like                         202207L [C++23]
     __cpp_lib_gcd_lcm                              201606L [C++17]
     __cpp_lib_generic_associative_lookup           201304L [C++14]
     __cpp_lib_generic_unordered_lookup             201811L [C++20]
@@ -95,7 +95,7 @@
     __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++2b]
+    __cpp_lib_invoke_r                             202106L [C++23]
     __cpp_lib_is_aggregate                         201703L [C++17]
     __cpp_lib_is_constant_evaluated                201811L [C++20]
     __cpp_lib_is_final                             201402L [C++14]
@@ -104,7 +104,7 @@
     __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++2b]
+    __cpp_lib_is_scoped_enum                       202011L [C++23]
     __cpp_lib_is_swappable                         201603L [C++17]
     __cpp_lib_jthread                              201911L [C++20]
     __cpp_lib_latch                                201907L [C++20]
@@ -117,32 +117,32 @@
     __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++2b]
+    __cpp_lib_mdspan                               202207L [C++23]
     __cpp_lib_memory_resource                      201603L [C++17]
     __cpp_lib_move_iterator_concept                202207L [C++20]
-    __cpp_lib_move_only_function                   202110L [C++2b]
+    __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]
     __cpp_lib_null_iterators                       201304L [C++14]
     __cpp_lib_optional                             201606L [C++17]
-                                                   202110L [C++2b]
-    __cpp_lib_out_ptr                              202106L [C++2b]
+                                                   202110L [C++23]
+    __cpp_lib_out_ptr                              202106L [C++23]
     __cpp_lib_parallel_algorithm                   201603L [C++17]
     __cpp_lib_polymorphic_allocator                201902L [C++20]
     __cpp_lib_quoted_string_io                     201304L [C++14]
     __cpp_lib_ranges                               202106L [C++20]
-    __cpp_lib_ranges_as_rvalue                     202207L [C++2b]
-    __cpp_lib_ranges_chunk                         202202L [C++2b]
-    __cpp_lib_ranges_chunk_by                      202202L [C++2b]
-    __cpp_lib_ranges_iota                          202202L [C++2b]
-    __cpp_lib_ranges_join_with                     202202L [C++2b]
-    __cpp_lib_ranges_slide                         202202L [C++2b]
-    __cpp_lib_ranges_starts_ends_with              202106L [C++2b]
-    __cpp_lib_ranges_to_container                  202202L [C++2b]
-    __cpp_lib_ranges_zip                           202110L [C++2b]
+    __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_iota                          202202L [C++23]
+    __cpp_lib_ranges_join_with                     202202L [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_raw_memory_algorithms                201606L [C++17]
-    __cpp_lib_reference_from_temporary             202202L [C++2b]
+    __cpp_lib_reference_from_temporary             202202L [C++23]
     __cpp_lib_remove_cvref                         201711L [C++20]
     __cpp_lib_result_of_sfinae                     201210L [C++14]
     __cpp_lib_robust_nonmodifying_seq_ops          201304L [C++14]
@@ -158,13 +158,13 @@
     __cpp_lib_smart_ptr_for_overwrite              202002L [C++20]
     __cpp_lib_source_location                      201907L [C++20]
     __cpp_lib_span                                 202002L [C++20]
-    __cpp_lib_spanstream                           202106L [C++2b]
+    __cpp_lib_spanstream                           202106L [C++23]
     __cpp_lib_ssize                                201902L [C++20]
-    __cpp_lib_stacktrace                           202011L [C++2b]
+    __cpp_lib_stacktrace                           202011L [C++23]
     __cpp_lib_starts_ends_with                     201711L [C++20]
-    __cpp_lib_stdatomic_h                          202011L [C++2b]
-    __cpp_lib_string_contains                      202011L [C++2b]
-    __cpp_lib_string_resize_and_overwrite          202110L [C++2b]
+    __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]
@@ -173,7 +173,7 @@
     __cpp_lib_to_address                           201711L [C++20]
     __cpp_lib_to_array                             201907L [C++20]
     __cpp_lib_to_chars                             201611L [C++17]
-    __cpp_lib_to_underlying                        202102L [C++2b]
+    __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]
@@ -183,7 +183,7 @@
     __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++2b]
+    __cpp_lib_unreachable                          202202L [C++23]
     __cpp_lib_unwrap_ref                           201811L [C++20]
     __cpp_lib_variant                              202102L [C++17]
     __cpp_lib_void_t                               201411L [C++17]
@@ -195,7 +195,7 @@
 #if TEST_STD_VER < 14
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_addressof_constexpr
@@ -203,7 +203,7 @@
 # endif
 
 # ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_allocator_traits_is_always_equal
@@ -227,7 +227,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_assume_aligned
@@ -271,7 +271,7 @@
 # endif
 
 # ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++2b"
+#   error "__cpp_lib_bind_back should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_bind_front
@@ -303,7 +303,7 @@
 # endif
 
 # ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++2b"
+#   error "__cpp_lib_byteswap should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_char8_t
@@ -335,15 +335,15 @@
 # endif
 
 # ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_constexpr_complex
@@ -383,7 +383,7 @@
 # endif
 
 # ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_constexpr_utility
@@ -423,7 +423,7 @@
 # endif
 
 # ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++2b"
+#   error "__cpp_lib_expected should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_filesystem
@@ -435,15 +435,15 @@
 # endif
 
 # ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++2b"
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_forward_like should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_gcd_lcm
@@ -499,7 +499,7 @@
 # endif
 
 # ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++2b"
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_is_aggregate
@@ -535,7 +535,7 @@
 # endif
 
 # ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_is_swappable
@@ -587,7 +587,7 @@
 # endif
 
 # ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++2b"
+#   error "__cpp_lib_mdspan should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_memory_resource
@@ -599,7 +599,7 @@
 # endif
 
 # ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++2b"
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_node_extract
@@ -623,7 +623,7 @@
 # endif
 
 # ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++2b"
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_parallel_algorithm
@@ -643,39 +643,39 @@
 # endif
 
 # ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_raw_memory_algorithms
@@ -683,7 +683,7 @@
 # endif
 
 # ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_remove_cvref
@@ -743,7 +743,7 @@
 # endif
 
 # ifdef __cpp_lib_spanstream
-#   error "__cpp_lib_spanstream should not be defined before c++2b"
+#   error "__cpp_lib_spanstream should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ssize
@@ -751,7 +751,7 @@
 # endif
 
 # ifdef __cpp_lib_stacktrace
-#   error "__cpp_lib_stacktrace should not be defined before c++2b"
+#   error "__cpp_lib_stacktrace should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_starts_ends_with
@@ -759,15 +759,15 @@
 # endif
 
 # ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_string_udls
@@ -799,7 +799,7 @@
 # endif
 
 # ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++2b"
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_transformation_trait_aliases
@@ -835,7 +835,7 @@
 # endif
 
 # ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++2b"
+#   error "__cpp_lib_unreachable should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_unwrap_ref
@@ -853,7 +853,7 @@
 #elif TEST_STD_VER == 14
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_addressof_constexpr
@@ -861,7 +861,7 @@
 # endif
 
 # ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_allocator_traits_is_always_equal
@@ -885,7 +885,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_assume_aligned
@@ -929,7 +929,7 @@
 # endif
 
 # ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++2b"
+#   error "__cpp_lib_bind_back should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_bind_front
@@ -961,7 +961,7 @@
 # endif
 
 # ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++2b"
+#   error "__cpp_lib_byteswap should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_char8_t
@@ -999,15 +999,15 @@
 # endif
 
 # ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_constexpr_complex
@@ -1047,7 +1047,7 @@
 # endif
 
 # ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_constexpr_utility
@@ -1090,7 +1090,7 @@
 # endif
 
 # ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++2b"
+#   error "__cpp_lib_expected should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_filesystem
@@ -1102,15 +1102,15 @@
 # endif
 
 # ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++2b"
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_forward_like should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_gcd_lcm
@@ -1175,7 +1175,7 @@
 # endif
 
 # ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++2b"
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_is_aggregate
@@ -1217,7 +1217,7 @@
 # endif
 
 # ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_is_swappable
@@ -1275,7 +1275,7 @@
 # endif
 
 # ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++2b"
+#   error "__cpp_lib_mdspan should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_memory_resource
@@ -1287,7 +1287,7 @@
 # endif
 
 # ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++2b"
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_node_extract
@@ -1314,7 +1314,7 @@
 # endif
 
 # ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++2b"
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_parallel_algorithm
@@ -1337,39 +1337,39 @@
 # endif
 
 # ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_raw_memory_algorithms
@@ -1377,7 +1377,7 @@
 # endif
 
 # ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_remove_cvref
@@ -1452,7 +1452,7 @@
 # endif
 
 # ifdef __cpp_lib_spanstream
-#   error "__cpp_lib_spanstream should not be defined before c++2b"
+#   error "__cpp_lib_spanstream should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ssize
@@ -1460,7 +1460,7 @@
 # endif
 
 # ifdef __cpp_lib_stacktrace
-#   error "__cpp_lib_stacktrace should not be defined before c++2b"
+#   error "__cpp_lib_stacktrace should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_starts_ends_with
@@ -1468,15 +1468,15 @@
 # endif
 
 # ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_string_udls
@@ -1511,7 +1511,7 @@
 # endif
 
 # ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++2b"
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_transformation_trait_aliases
@@ -1559,7 +1559,7 @@
 # endif
 
 # ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++2b"
+#   error "__cpp_lib_unreachable should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_unwrap_ref
@@ -1577,7 +1577,7 @@
 #elif TEST_STD_VER == 17
 
 # ifdef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_addressof_constexpr
@@ -1588,7 +1588,7 @@
 # endif
 
 # ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -1627,7 +1627,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_assume_aligned
@@ -1674,7 +1674,7 @@
 # endif
 
 # ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++2b"
+#   error "__cpp_lib_bind_back should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_bind_front
@@ -1715,7 +1715,7 @@
 # endif
 
 # ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++2b"
+#   error "__cpp_lib_byteswap should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_char8_t
@@ -1759,15 +1759,15 @@
 # endif
 
 # ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_constexpr_complex
@@ -1807,7 +1807,7 @@
 # endif
 
 # ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_constexpr_utility
@@ -1862,7 +1862,7 @@
 # endif
 
 # ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++2b"
+#   error "__cpp_lib_expected should not be defined before c++23"
 # endif
 
 # if !defined(_LIBCPP_AVAILABILITY_HAS_NO_FILESYSTEM)
@@ -1883,15 +1883,15 @@
 # endif
 
 # ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++2b"
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_forward_like should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_gcd_lcm
@@ -1980,7 +1980,7 @@
 # endif
 
 # ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++2b"
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_is_aggregate
@@ -2028,7 +2028,7 @@
 # endif
 
 # ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_is_swappable
@@ -2110,7 +2110,7 @@
 # endif
 
 # ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++2b"
+#   error "__cpp_lib_mdspan should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_memory_resource
@@ -2125,7 +2125,7 @@
 # endif
 
 # ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++2b"
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_node_extract
@@ -2164,7 +2164,7 @@
 # endif
 
 # ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++2b"
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
@@ -2196,39 +2196,39 @@
 # endif
 
 # ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_raw_memory_algorithms
@@ -2239,7 +2239,7 @@
 # endif
 
 # ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_remove_cvref
@@ -2335,7 +2335,7 @@
 # endif
 
 # ifdef __cpp_lib_spanstream
-#   error "__cpp_lib_spanstream should not be defined before c++2b"
+#   error "__cpp_lib_spanstream should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ssize
@@ -2343,7 +2343,7 @@
 # endif
 
 # ifdef __cpp_lib_stacktrace
-#   error "__cpp_lib_stacktrace should not be defined before c++2b"
+#   error "__cpp_lib_stacktrace should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_starts_ends_with
@@ -2351,15 +2351,15 @@
 # endif
 
 # ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_string_udls
@@ -2406,7 +2406,7 @@
 # endif
 
 # ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++2b"
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_transformation_trait_aliases
@@ -2463,7 +2463,7 @@
 # endif
 
 # ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++2b"
+#   error "__cpp_lib_unreachable should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_unwrap_ref
@@ -2487,7 +2487,7 @@
 #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++2b"
+#   error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_addressof_constexpr
@@ -2498,7 +2498,7 @@
 # endif
 
 # ifdef __cpp_lib_allocate_at_least
-#   error "__cpp_lib_allocate_at_least should not be defined before c++2b"
+#   error "__cpp_lib_allocate_at_least should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_allocator_traits_is_always_equal
@@ -2537,7 +2537,7 @@
 # endif
 
 # ifdef __cpp_lib_associative_heterogeneous_erasure
-#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++2b"
+#   error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_assume_aligned
@@ -2641,7 +2641,7 @@
 # endif
 
 # ifdef __cpp_lib_bind_back
-#   error "__cpp_lib_bind_back should not be defined before c++2b"
+#   error "__cpp_lib_bind_back should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_bind_front
@@ -2700,7 +2700,7 @@
 # endif
 
 # ifdef __cpp_lib_byteswap
-#   error "__cpp_lib_byteswap should not be defined before c++2b"
+#   error "__cpp_lib_byteswap should not be defined before c++23"
 # endif
 
 # if defined(__cpp_char8_t)
@@ -2759,15 +2759,15 @@
 # endif
 
 # ifdef __cpp_lib_constexpr_bitset
-#   error "__cpp_lib_constexpr_bitset should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_cmath should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_complex
@@ -2834,7 +2834,7 @@
 # endif
 
 # ifdef __cpp_lib_constexpr_typeinfo
-#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++2b"
+#   error "__cpp_lib_constexpr_typeinfo should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_utility
@@ -2913,7 +2913,7 @@
 # endif
 
 # ifdef __cpp_lib_expected
-#   error "__cpp_lib_expected should not be defined before c++2b"
+#   error "__cpp_lib_expected should not be defined before c++23"
 # endif
 
 # if !defined(_LIBCPP_AVAILABILITY_HAS_NO_FILESYSTEM)
@@ -2943,15 +2943,15 @@
 # endif
 
 # ifdef __cpp_lib_format_ranges
-#   error "__cpp_lib_format_ranges should not be defined before c++2b"
+#   error "__cpp_lib_format_ranges should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_formatters
-#   error "__cpp_lib_formatters should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_forward_like should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_gcd_lcm
@@ -3052,7 +3052,7 @@
 # endif
 
 # ifdef __cpp_lib_invoke_r
-#   error "__cpp_lib_invoke_r should not be defined before c++2b"
+#   error "__cpp_lib_invoke_r should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_is_aggregate
@@ -3124,7 +3124,7 @@
 # endif
 
 # ifdef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should not be defined before c++2b"
+#   error "__cpp_lib_is_scoped_enum should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_is_swappable
@@ -3230,7 +3230,7 @@
 # endif
 
 # ifdef __cpp_lib_mdspan
-#   error "__cpp_lib_mdspan should not be defined before c++2b"
+#   error "__cpp_lib_mdspan should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_memory_resource
@@ -3248,7 +3248,7 @@
 # endif
 
 # ifdef __cpp_lib_move_only_function
-#   error "__cpp_lib_move_only_function should not be defined before c++2b"
+#   error "__cpp_lib_move_only_function should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_node_extract
@@ -3287,7 +3287,7 @@
 # endif
 
 # ifdef __cpp_lib_out_ptr
-#   error "__cpp_lib_out_ptr should not be defined before c++2b"
+#   error "__cpp_lib_out_ptr should not be defined before c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
@@ -3325,39 +3325,39 @@
 # endif
 
 # ifdef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_chunk_by should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_iota
-#   error "__cpp_lib_ranges_iota should not be defined before c++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_join_with should not be defined before c++23"
 # endif
 
 # ifdef __cpp_lib_ranges_slide
-#   error "__cpp_lib_ranges_slide should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_ranges_zip should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_raw_memory_algorithms
@@ -3368,7 +3368,7 @@
 # endif
 
 # ifdef __cpp_lib_reference_from_temporary
-#   error "__cpp_lib_reference_from_temporary should not be defined before c++2b"
+#   error "__cpp_lib_reference_from_temporary should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_remove_cvref
@@ -3500,7 +3500,7 @@
 # endif
 
 # ifdef __cpp_lib_spanstream
-#   error "__cpp_lib_spanstream should not be defined before c++2b"
+#   error "__cpp_lib_spanstream should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_ssize
@@ -3511,7 +3511,7 @@
 # endif
 
 # ifdef __cpp_lib_stacktrace
-#   error "__cpp_lib_stacktrace should not be defined before c++2b"
+#   error "__cpp_lib_stacktrace should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_starts_ends_with
@@ -3522,15 +3522,15 @@
 # endif
 
 # ifdef __cpp_lib_stdatomic_h
-#   error "__cpp_lib_stdatomic_h should not be defined before c++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_string_udls
@@ -3601,7 +3601,7 @@
 # endif
 
 # ifdef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should not be defined before c++2b"
+#   error "__cpp_lib_to_underlying should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_transformation_trait_aliases
@@ -3661,7 +3661,7 @@
 # endif
 
 # ifdef __cpp_lib_unreachable
-#   error "__cpp_lib_unreachable should not be defined before c++2b"
+#   error "__cpp_lib_unreachable should not be defined before c++23"
 # endif
 
 # ifndef __cpp_lib_unwrap_ref
@@ -3688,67 +3688,67 @@
 #elif TEST_STD_VER > 20
 
 # ifndef __cpp_lib_adaptor_iterator_pair_constructor
-#   error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_allocate_at_least should be defined in c++23"
 # endif
 # if __cpp_lib_allocate_at_least != 202106L
-#   error "__cpp_lib_allocate_at_least should have the value 202106L in c++2b"
+#   error "__cpp_lib_allocate_at_least should have the value 202106L 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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_associative_heterogeneous_erasure
@@ -3757,25 +3757,25 @@
 # endif
 
 # ifndef __cpp_lib_assume_aligned
-#   error "__cpp_lib_assume_aligned should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_atomic_float
-#     error "__cpp_lib_atomic_float should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_atomic_float should have the value 201711L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_atomic_float
@@ -3784,25 +3784,25 @@
 # endif
 
 # ifndef __cpp_lib_atomic_is_always_lock_free
-#   error "__cpp_lib_atomic_is_always_lock_free should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_atomic_ref
-#     error "__cpp_lib_atomic_ref should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_atomic_ref should have the value 201806L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_atomic_ref
@@ -3812,10 +3812,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_atomic_shared_ptr
-#     error "__cpp_lib_atomic_shared_ptr should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_atomic_shared_ptr
@@ -3824,18 +3824,18 @@
 # endif
 
 # ifndef __cpp_lib_atomic_value_initialization
-#   error "__cpp_lib_atomic_value_initialization should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23"
 # endif
 
 # if !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)
 #   ifndef __cpp_lib_atomic_wait
-#     error "__cpp_lib_atomic_wait should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_atomic_wait should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_atomic_wait
@@ -3845,10 +3845,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)
 #   ifndef __cpp_lib_barrier
-#     error "__cpp_lib_barrier should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_barrier should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_barrier
@@ -3858,10 +3858,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_bind_back
-#     error "__cpp_lib_bind_back should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_bind_back should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_bind_back
@@ -3870,25 +3870,25 @@
 # endif
 
 # ifndef __cpp_lib_bind_front
-#   error "__cpp_lib_bind_front should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_bit_cast should have the value 201806L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_bitops
-#     error "__cpp_lib_bitops should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_bitops should have the value 201907L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_bitops
@@ -3897,46 +3897,46 @@
 # endif
 
 # ifndef __cpp_lib_bool_constant
-#   error "__cpp_lib_bool_constant should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_char8_t should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_char8_t
@@ -3945,67 +3945,67 @@
 # endif
 
 # ifndef __cpp_lib_chrono
-#   error "__cpp_lib_chrono should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_constexpr_cmath
@@ -4014,102 +4014,102 @@
 # endif
 
 # ifndef __cpp_lib_constexpr_complex
-#   error "__cpp_lib_constexpr_complex should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_functional
-#   error "__cpp_lib_constexpr_functional should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_memory should have the value 202202L in c++23"
 # endif
 
 # ifndef __cpp_lib_constexpr_numeric
-#   error "__cpp_lib_constexpr_numeric should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_constexpr_vector should have the value 201907L in c++23"
 # endif
 
 # ifndef __cpp_lib_coroutine
-#   error "__cpp_lib_coroutine should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_coroutine should have the value 201902L in c++23"
 # 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++2b"
+#     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++2b"
+#     error "__cpp_lib_destroying_delete should have the value 201806L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_destroying_delete
@@ -4118,39 +4118,39 @@
 # endif
 
 # ifndef __cpp_lib_enable_shared_from_this
-#   error "__cpp_lib_enable_shared_from_this should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_execution should have the value 201902L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_execution
@@ -4159,18 +4159,18 @@
 # endif
 
 # ifndef __cpp_lib_expected
-#   error "__cpp_lib_expected should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_expected should have the value 202211L in c++23"
 # endif
 
 # if !defined(_LIBCPP_AVAILABILITY_HAS_NO_FILESYSTEM)
 #   ifndef __cpp_lib_filesystem
-#     error "__cpp_lib_filesystem should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_filesystem should have the value 201703L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_filesystem
@@ -4180,10 +4180,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_format
-#     error "__cpp_lib_format should be defined in c++2b"
+#     error "__cpp_lib_format should be defined in c++23"
 #   endif
 #   if __cpp_lib_format != 202106L
-#     error "__cpp_lib_format should have the value 202106L in c++2b"
+#     error "__cpp_lib_format should have the value 202106L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_format
@@ -4193,10 +4193,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)
 #   ifndef __cpp_lib_format_ranges
-#     error "__cpp_lib_format_ranges should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_format_ranges should have the value 202207L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_format_ranges
@@ -4206,10 +4206,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_formatters
-#     error "__cpp_lib_formatters should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_formatters should have the value 202302L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_formatters
@@ -4218,39 +4218,39 @@
 # endif
 
 # ifndef __cpp_lib_forward_like
-#   error "__cpp_lib_forward_like should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_forward_like should have the value 202207L in c++23"
 # endif
 
 # ifndef __cpp_lib_gcd_lcm
-#   error "__cpp_lib_gcd_lcm should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_gcd_lcm should have the value 201606L in c++23"
 # endif
 
 # ifndef __cpp_lib_generic_associative_lookup
-#   error "__cpp_lib_generic_associative_lookup should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23"
 # endif
 
 # if 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++2b"
+#     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++2b"
+#     error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_hardware_interference_size
@@ -4259,109 +4259,109 @@
 # endif
 
 # ifndef __cpp_lib_has_unique_object_representations
-#   error "__cpp_lib_has_unique_object_representations should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23"
 # endif
 
 # ifndef __cpp_lib_hypot
-#   error "__cpp_lib_hypot should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23"
 # endif
 
 # ifndef __cpp_lib_int_pow2
-#   error "__cpp_lib_int_pow2 should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_invoke_r should have the value 202106L in c++23"
 # endif
 
 # ifndef __cpp_lib_is_aggregate
-#   error "__cpp_lib_is_aggregate should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_is_final should have the value 201402L in c++23"
 # endif
 
 # ifndef __cpp_lib_is_invocable
-#   error "__cpp_lib_is_invocable should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_is_layout_compatible
@@ -4370,25 +4370,25 @@
 # endif
 
 # ifndef __cpp_lib_is_nothrow_convertible
-#   error "__cpp_lib_is_nothrow_convertible should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_is_pointer_interconvertible
@@ -4397,25 +4397,25 @@
 # endif
 
 # ifndef __cpp_lib_is_scoped_enum
-#   error "__cpp_lib_is_scoped_enum should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_is_swappable should have the value 201603L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_jthread
-#     error "__cpp_lib_jthread should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_jthread should have the value 201911L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_jthread
@@ -4425,10 +4425,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)
 #   ifndef __cpp_lib_latch
-#     error "__cpp_lib_latch should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_latch should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_latch
@@ -4437,67 +4437,67 @@
 # endif
 
 # ifndef __cpp_lib_launder
-#   error "__cpp_lib_launder should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_launder should have the value 201606L in c++23"
 # endif
 
 # ifndef __cpp_lib_list_remove_return_type
-#   error "__cpp_lib_list_remove_return_type should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_math_special_functions should have the value 201603L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_math_special_functions
@@ -4507,10 +4507,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_mdspan
-#     error "__cpp_lib_mdspan should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_mdspan should have the value 202207L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_mdspan
@@ -4519,25 +4519,25 @@
 # endif
 
 # ifndef __cpp_lib_memory_resource
-#   error "__cpp_lib_memory_resource should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_memory_resource should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_move_iterator_concept
-#   error "__cpp_lib_move_iterator_concept should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_move_only_function should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_move_only_function
@@ -4546,46 +4546,46 @@
 # endif
 
 # ifndef __cpp_lib_node_extract
-#   error "__cpp_lib_node_extract should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_optional should have the value 202110L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_out_ptr
-#     error "__cpp_lib_out_ptr should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_out_ptr should have the value 202106L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_out_ptr
@@ -4595,10 +4595,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_parallel_algorithm
-#     error "__cpp_lib_parallel_algorithm should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_parallel_algorithm
@@ -4607,39 +4607,39 @@
 # endif
 
 # ifndef __cpp_lib_polymorphic_allocator
-#   error "__cpp_lib_polymorphic_allocator should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23"
 # endif
 
 # ifndef __cpp_lib_quoted_string_io
-#   error "__cpp_lib_quoted_string_io should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_quoted_string_io should have the value 201304L in c++23"
 # endif
 
 # ifndef __cpp_lib_ranges
-#   error "__cpp_lib_ranges should be defined in c++2b"
+#   error "__cpp_lib_ranges should be defined in c++23"
 # endif
 # if __cpp_lib_ranges != 202106L
-#   error "__cpp_lib_ranges should have the value 202106L in c++2b"
+#   error "__cpp_lib_ranges should have the value 202106L in c++23"
 # endif
 
 # ifndef __cpp_lib_ranges_as_rvalue
-#   error "__cpp_lib_ranges_as_rvalue should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_chunk should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_chunk
@@ -4649,10 +4649,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_chunk_by
-#     error "__cpp_lib_ranges_chunk_by should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_chunk_by
@@ -4662,10 +4662,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_iota
-#     error "__cpp_lib_ranges_iota should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_iota should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_iota
@@ -4675,10 +4675,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_join_with
-#     error "__cpp_lib_ranges_join_with should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_join_with should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_join_with
@@ -4688,10 +4688,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_slide
-#     error "__cpp_lib_ranges_slide should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_slide should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_slide
@@ -4701,10 +4701,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_starts_ends_with
-#     error "__cpp_lib_ranges_starts_ends_with should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_starts_ends_with
@@ -4714,10 +4714,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_to_container
-#     error "__cpp_lib_ranges_to_container should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_to_container should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_to_container
@@ -4727,10 +4727,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_ranges_zip
-#     error "__cpp_lib_ranges_zip should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_ranges_zip should have the value 202110L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_ranges_zip
@@ -4739,18 +4739,18 @@
 # endif
 
 # ifndef __cpp_lib_raw_memory_algorithms
-#   error "__cpp_lib_raw_memory_algorithms should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_reference_from_temporary
-#     error "__cpp_lib_reference_from_temporary should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_reference_from_temporary
@@ -4759,46 +4759,46 @@
 # endif
 
 # ifndef __cpp_lib_remove_cvref
-#   error "__cpp_lib_remove_cvref should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_sample should have the value 201603L in c++23"
 # endif
 
 # ifndef __cpp_lib_scoped_lock
-#   error "__cpp_lib_scoped_lock should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_scoped_lock should have the value 201703L in c++23"
 # endif
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)
 #   ifndef __cpp_lib_semaphore
-#     error "__cpp_lib_semaphore should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_semaphore should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_semaphore
@@ -4808,10 +4808,10 @@
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SHARED_MUTEX)
 #   ifndef __cpp_lib_shared_mutex
-#     error "__cpp_lib_shared_mutex should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_shared_mutex should have the value 201505L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_shared_mutex
@@ -4820,25 +4820,25 @@
 # endif
 
 # ifndef __cpp_lib_shared_ptr_arrays
-#   error "__cpp_lib_shared_ptr_arrays should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23"
 # endif
 
 # if !defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SHARED_MUTEX)
 #   ifndef __cpp_lib_shared_timed_mutex
-#     error "__cpp_lib_shared_timed_mutex should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_shared_timed_mutex
@@ -4847,18 +4847,18 @@
 # endif
 
 # ifndef __cpp_lib_shift
-#   error "__cpp_lib_shift should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_shift should have the value 201806L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_smart_ptr_for_overwrite
-#     error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_smart_ptr_for_overwrite
@@ -4868,10 +4868,10 @@
 
 # if __has_builtin(__builtin_source_location) && !(defined(TEST_APPLE_CLANG_VER) && TEST_APPLE_CLANG_VER <= 1403)
 #   ifndef __cpp_lib_source_location
-#     error "__cpp_lib_source_location should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_source_location should have the value 201907L in c++23"
 #   endif
 # else
 #   ifdef __cpp_lib_source_location
@@ -4880,18 +4880,18 @@
 # endif
 
 # ifndef __cpp_lib_span
-#   error "__cpp_lib_span should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_span should have the value 202002L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_spanstream
-#     error "__cpp_lib_spanstream should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_spanstream should have the value 202106L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_spanstream
@@ -4900,18 +4900,18 @@
 # endif
 
 # ifndef __cpp_lib_ssize
-#   error "__cpp_lib_ssize should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_ssize should have the value 201902L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_stacktrace
-#     error "__cpp_lib_stacktrace should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_stacktrace should have the value 202011L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_stacktrace
@@ -4920,53 +4920,53 @@
 # endif
 
 # ifndef __cpp_lib_starts_ends_with
-#   error "__cpp_lib_starts_ends_with should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_string_view should have the value 201803L in c++23"
 # endif
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_syncbuf
-#     error "__cpp_lib_syncbuf should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_syncbuf should have the value 201803L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_syncbuf
@@ -4976,10 +4976,10 @@
 
 # if !defined(_LIBCPP_VERSION)
 #   ifndef __cpp_lib_three_way_comparison
-#     error "__cpp_lib_three_way_comparison should be defined in c++2b"
+#     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++2b"
+#     error "__cpp_lib_three_way_comparison should have the value 201907L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_three_way_comparison
@@ -4988,25 +4988,25 @@
 # endif
 
 # ifndef __cpp_lib_to_address
-#   error "__cpp_lib_to_address should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#     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++2b"
+#     error "__cpp_lib_to_chars should have the value 201611L in c++23"
 #   endif
 # else // _LIBCPP_VERSION
 #   ifdef __cpp_lib_to_chars
@@ -5015,94 +5015,94 @@
 # endif
 
 # ifndef __cpp_lib_to_underlying
-#   error "__cpp_lib_to_underlying should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_tuple_element_t should have the value 201402L in c++23"
 # endif
 
 # ifndef __cpp_lib_tuples_by_type
-#   error "__cpp_lib_tuples_by_type should be defined in c++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   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++2b"
+#   error "__cpp_lib_variant should be defined in c++23"
 # endif
 # if __cpp_lib_variant != 202102L
-#   error "__cpp_lib_variant should have the value 202102L in c++2b"
+#   error "__cpp_lib_variant should have the value 202102L in c++23"
 # endif
 
 # ifndef __cpp_lib_void_t
-#   error "__cpp_lib_void_t should be defined in c++2b"
+#   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++2b"
+#   error "__cpp_lib_void_t should have the value 201411L in c++23"
 # endif
 
 #endif // TEST_STD_VER > 20

diff  --git a/libcxx/test/std/strings/basic.string/string.cons/nullptr.compile.pass.cpp b/libcxx/test/std/strings/basic.string/string.cons/nullptr.compile.pass.cpp
index 3b6a00ec135d4..fd6232ce72454 100644
--- a/libcxx/test/std/strings/basic.string/string.cons/nullptr.compile.pass.cpp
+++ b/libcxx/test/std/strings/basic.string/string.cons/nullptr.compile.pass.cpp
@@ -10,8 +10,8 @@
 
 // <string>
 
-// basic_string(nullptr_t) = delete; // C++2b
-// basic_string& operator=(nullptr_t) = delete; // C++2b
+// basic_string(nullptr_t) = delete; // C++23
+// basic_string& operator=(nullptr_t) = delete; // C++23
 
 #include <string>
 #include <type_traits>

diff  --git a/libcxx/test/std/strings/string.view/string.view.cons/nullptr.compile.pass.cpp b/libcxx/test/std/strings/string.view/string.view.cons/nullptr.compile.pass.cpp
index 2517e77a16d49..d7035f82fe379 100644
--- a/libcxx/test/std/strings/string.view/string.view.cons/nullptr.compile.pass.cpp
+++ b/libcxx/test/std/strings/string.view/string.view.cons/nullptr.compile.pass.cpp
@@ -10,7 +10,7 @@
 
 // <string_view>
 
-// basic_string_view(nullptr_t) = delete; // C++2b
+// basic_string_view(nullptr_t) = delete; // C++23
 
 #include <string_view>
 #include <type_traits>

diff  --git a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_scoped_enum.pass.cpp b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_scoped_enum.pass.cpp
index ca72af3883446..7fdf0cc1d695c 100644
--- a/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_scoped_enum.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.unary/meta.unary.prop/is_scoped_enum.pass.cpp
@@ -10,7 +10,7 @@
 
 // type_traits
 
-// is_scoped_enum // C++2b
+// is_scoped_enum // C++23
 
 #include <type_traits>
 #include <cstddef> // for std::nullptr_t

diff  --git a/libcxx/test/std/utilities/utility/utility.underlying/to_underlying.pass.cpp b/libcxx/test/std/utilities/utility/utility.underlying/to_underlying.pass.cpp
index d57dfd43f5b77..cd4e14d94de95 100644
--- a/libcxx/test/std/utilities/utility/utility.underlying/to_underlying.pass.cpp
+++ b/libcxx/test/std/utilities/utility/utility.underlying/to_underlying.pass.cpp
@@ -10,7 +10,7 @@
 
 // [utility.underlying], to_underlying
 // template <class T>
-//     constexpr underlying_type_t<T> to_underlying( T value ) noexcept; // C++2b
+//     constexpr underlying_type_t<T> to_underlying( T value ) noexcept; // C++23
 
 #include <utility>
 #include <cassert>

diff  --git a/libcxx/test/std/utilities/utility/utility.underlying/to_underlying.verify.cpp b/libcxx/test/std/utilities/utility/utility.underlying/to_underlying.verify.cpp
index 9236d6e284b5d..aa83eec6cbe47 100644
--- a/libcxx/test/std/utilities/utility/utility.underlying/to_underlying.verify.cpp
+++ b/libcxx/test/std/utilities/utility/utility.underlying/to_underlying.verify.cpp
@@ -10,7 +10,7 @@
 
 // [utility.underlying], to_underlying
 // template <class T>
-//     constexpr underlying_type_t<T> to_underlying( T value ) noexcept; // C++2b
+//     constexpr underlying_type_t<T> to_underlying( T value ) noexcept; // C++23
 
 #include <utility>
 

diff  --git a/libcxx/test/support/test_macros.h b/libcxx/test/support/test_macros.h
index 210bbf06614ad..c3f3d8675aa7a 100644
--- a/libcxx/test/support/test_macros.h
+++ b/libcxx/test/support/test_macros.h
@@ -99,6 +99,8 @@
 # define TEST_STD_VER 17
 #elif __cplusplus <= 202002L
 # define TEST_STD_VER 20
+#elif __cplusplus <= 202302L
+# define TEST_STD_VER 23
 #else
 # define TEST_STD_VER 99    // greater than current standard
 // This is deliberately 
diff erent than _LIBCPP_STD_VER to discourage matching them up.

diff  --git a/libcxx/utils/ci/buildkite-pipeline-clang.yml b/libcxx/utils/ci/buildkite-pipeline-clang.yml
index e0522e491cfe9..073a74ae4a6ee 100644
--- a/libcxx/utils/ci/buildkite-pipeline-clang.yml
+++ b/libcxx/utils/ci/buildkite-pipeline-clang.yml
@@ -63,14 +63,14 @@ steps:
           limit: 2
     timeout_in_minutes: 120
 
-  - label: "C++2b"
+  - label: "C++23"
     commands:
       - "buildkite-agent artifact download install.tar.xz ."
       - "tar -xvf install.tar.xz"
       - "export CC=$(pwd)/install/bin/clang"
       - "export CXX=$(pwd)/install/bin/clang++"
       - "chmod +x install/bin/clang install/bin/clang++"
-      - "libcxx/utils/ci/run-buildbot generic-cxx2b"
+      - "libcxx/utils/ci/run-buildbot generic-cxx23"
     artifact_paths:
       - "**/test-results.xml"
       - "**/crash_diagnostics/*"

diff  --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml
index 3323fdb8b2d91..e269e4935709e 100644
--- a/libcxx/utils/ci/buildkite-pipeline.yml
+++ b/libcxx/utils/ci/buildkite-pipeline.yml
@@ -107,8 +107,8 @@ steps:
           limit: 2
     timeout_in_minutes: 120
 
-  - label: "C++2b"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
+  - label: "C++23"
+    command: "libcxx/utils/ci/run-buildbot generic-cxx23"
     artifact_paths:
       - "**/test-results.xml"
       - "**/*.abilist"
@@ -258,7 +258,7 @@ steps:
     timeout_in_minutes: 120
 
   - label: "Clang 15"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
+    command: "libcxx/utils/ci/run-buildbot generic-cxx23"
     artifact_paths:
       - "**/test-results.xml"
       - "**/*.abilist"
@@ -277,7 +277,7 @@ steps:
     timeout_in_minutes: 120
 
   - label: "Clang 16"
-    command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
+    command: "libcxx/utils/ci/run-buildbot generic-cxx23"
     artifact_paths:
       - "**/test-results.xml"
       - "**/*.abilist"
@@ -1029,7 +1029,7 @@ steps:
   - group: "FreeBSD"
     steps:
     - label: "FreeBSD 13 amd64"
-      command: "libcxx/utils/ci/run-buildbot generic-cxx2b"
+      command: "libcxx/utils/ci/run-buildbot generic-cxx23"
       artifact_paths:
         - "**/test-results.xml"
         - "**/*.abilist"

diff  --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot
index 15a7c77a23032..7878a1b0832fb 100755
--- a/libcxx/utils/ci/run-buildbot
+++ b/libcxx/utils/ci/run-buildbot
@@ -276,9 +276,9 @@ generic-cxx20)
     check-runtimes
     check-abi-list
 ;;
-generic-cxx2b)
+generic-cxx23)
     clean
-    generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx2b.cmake"
+    generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx23.cmake"
     check-runtimes
     check-abi-list
 ;;

diff  --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py
index c23ebd5b7a035..0ced059600716 100755
--- a/libcxx/utils/generate_feature_test_macro_components.py
+++ b/libcxx/utils/generate_feature_test_macro_components.py
@@ -62,7 +62,7 @@ def add_version_header(tc):
 feature_test_macros = [ add_version_header(x) for x in [
   {
     "name": "__cpp_lib_adaptor_iterator_pair_constructor",
-    "values": { "c++2b": 202106 },
+    "values": { "c++23": 202106 },
     "headers": ["queue", "stack"],
   }, {
     "name": "__cpp_lib_addressof_constexpr",
@@ -70,7 +70,7 @@ def add_version_header(tc):
     "headers": ["memory"],
   }, {
     "name": "__cpp_lib_allocate_at_least",
-    "values": { "c++2b": 202106 },
+    "values": { "c++23": 202106 },
     "headers": ["memory"],
   }, {
     "name": "__cpp_lib_allocator_traits_is_always_equal",
@@ -94,7 +94,7 @@ def add_version_header(tc):
     "headers": ["utility"],
   }, {
     "name": "__cpp_lib_associative_heterogeneous_erasure",
-    "values": { "c++2b": 202110 },
+    "values": { "c++23": 202110 },
     "headers": ["map", "set", "unordered_map", "unordered_set"],
     "unimplemented": True,
   }, {
@@ -146,7 +146,7 @@ def add_version_header(tc):
     "libcxx_guard": "!defined(_LIBCPP_HAS_NO_THREADS) && !defined(_LIBCPP_AVAILABILITY_HAS_NO_SYNC)",
   }, {
     "name": "__cpp_lib_bind_back",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["functional"],
     "unimplemented": True,
   }, {
@@ -180,7 +180,7 @@ def add_version_header(tc):
     "headers": ["cstddef"],
   }, {
     "name": "__cpp_lib_byteswap",
-    "values": { "c++2b": 202110 },
+    "values": { "c++23": 202110 },
     "headers": ["bit"],
   }, {
     "name": "__cpp_lib_char8_t",
@@ -214,15 +214,15 @@ def add_version_header(tc):
     "headers": ["algorithm", "utility"],
   }, {
     "name": "__cpp_lib_constexpr_bitset",
-    "values": { "c++2b": 202207 },
+    "values": { "c++23": 202207 },
     "headers": ["bitset"],
   }, {
     "name": "__cpp_lib_constexpr_charconv",
-    "values": { "c++2b": 202207 },
+    "values": { "c++23": 202207 },
     "headers": ["charconv"],
   }, {
     "name": "__cpp_lib_constexpr_cmath",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["cmath", "cstdlib"],
     "unimplemented": True,
   }, {
@@ -243,7 +243,7 @@ def add_version_header(tc):
     "headers": ["iterator"],
   }, {
     "name": "__cpp_lib_constexpr_memory",
-    "values": { "c++20": 201811, "c++2b": 202202 },
+    "values": { "c++20": 201811, "c++23": 202202 },
     "headers": ["memory"],
   }, {
     "name": "__cpp_lib_constexpr_numeric",
@@ -263,7 +263,7 @@ def add_version_header(tc):
     "headers": ["tuple"],
   }, {
     "name": "__cpp_lib_constexpr_typeinfo",
-    "values": { "c++2b": 202106 },
+    "values": { "c++23": 202106 },
     "headers": ["typeinfo"],
   }, {
     "name": "__cpp_lib_constexpr_utility",
@@ -306,7 +306,7 @@ def add_version_header(tc):
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_expected",
-    "values": { "c++2b": 202211 },
+    "values": { "c++23": 202211 },
     "headers": ["expected"],
   }, {
     "name": "__cpp_lib_filesystem",
@@ -329,20 +329,20 @@ def add_version_header(tc):
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_format_ranges",
-    "values": { "c++2b": 202207 },
+    "values": { "c++23": 202207 },
     "headers": ["format"],
     "test_suite_guard": "!defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)",
     "libcxx_guard": "!defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)",
   }, {
     "name": "__cpp_lib_formatters",
-    "values": { "c++2b": 202302 },
+    "values": { "c++23": 202302 },
     "headers": ["stacktrace", "thread"],
     "test_suite_guard": "!defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)",
     "libcxx_guard": "!defined(_LIBCPP_HAS_NO_INCOMPLETE_FORMAT)",
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_forward_like",
-    "values": { "c++2b": 202207 },
+    "values": { "c++23": 202207 },
     "headers": ["utility"],
   }, {
     "name": "__cpp_lib_gcd_lcm",
@@ -400,7 +400,7 @@ def add_version_header(tc):
     "headers": ["functional"],
   }, {
     "name": "__cpp_lib_invoke_r",
-    "values": { "c++2b": 202106 },
+    "values": { "c++23": 202106 },
     "headers": ["functional"],
   }, {
     "name": "__cpp_lib_is_aggregate",
@@ -438,7 +438,7 @@ def add_version_header(tc):
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_is_scoped_enum",
-    "values": { "c++2b": 202011 },
+    "values": { "c++23": 202011 },
     "headers": ["type_traits"],
   }, {
     "name": "__cpp_lib_is_swappable",
@@ -496,7 +496,7 @@ def add_version_header(tc):
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_mdspan",
-    "values": { "c++2b": 202207 },
+    "values": { "c++23": 202207 },
     "headers": ["mdspan"],
     "unimplemented": True,
   }, {
@@ -509,7 +509,7 @@ def add_version_header(tc):
     "headers": ["iterator"],
    }, {
     "name": "__cpp_lib_move_only_function",
-    "values": { "c++2b": 202110 },
+    "values": { "c++23": 202110 },
     "headers": ["functional"],
     "unimplemented": True,
   }, {
@@ -530,11 +530,11 @@ def add_version_header(tc):
     "headers": ["iterator"],
   }, {
     "name": "__cpp_lib_optional",
-    "values": { "c++17": 201606, "c++2b": 202110 },
+    "values": { "c++17": 201606, "c++23": 202110 },
     "headers": ["optional"],
   }, {
     "name": "__cpp_lib_out_ptr",
-    "values": { "c++2b": 202106 },
+    "values": { "c++23": 202106 },
     "headers": ["memory"],
     "unimplemented": True,
   }, {
@@ -556,46 +556,46 @@ def add_version_header(tc):
     "headers": ["algorithm", "functional", "iterator", "memory", "ranges"],
   }, {
     "name": "__cpp_lib_ranges_as_rvalue",
-    "values": { "c++2b": 202207 },
+    "values": { "c++23": 202207 },
     "headers": ["ranges"],
   }, {
     "name": "__cpp_lib_ranges_chunk",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["ranges"],
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_ranges_chunk_by",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["ranges"],
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_ranges_iota",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["numeric"],
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_ranges_join_with",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["ranges"],
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_ranges_slide",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["ranges"],
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_ranges_starts_ends_with",
-    "values": { "c++2b": 202106 },
+    "values": { "c++23": 202106 },
     "headers": ["algorithm"],
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_ranges_to_container",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["deque", "forward_list", "list", "map", "priority_queue", "queue", "set", "stack", "string", "unordered_map", "unordered_set", "vector"],
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_ranges_zip",
-    "values": { "c++2b": 202110 },
+    "values": { "c++23": 202110 },
     "headers": ["ranges", "tuple", "utility"],
     "unimplemented": True,
   }, {
@@ -604,7 +604,7 @@ def add_version_header(tc):
     "headers": ["memory"],
   }, {
     "name": "__cpp_lib_reference_from_temporary",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["type_traits"],
     "unimplemented": True,
   }, {
@@ -674,7 +674,7 @@ def add_version_header(tc):
     "headers": ["span"],
   }, {
     "name": "__cpp_lib_spanstream",
-    "values": { "c++2b": 202106 },
+    "values": { "c++23": 202106 },
     "headers": ["spanstream"],
     "unimplemented": True,
   }, {
@@ -683,7 +683,7 @@ def add_version_header(tc):
     "headers": ["iterator"],
   }, {
     "name": "__cpp_lib_stacktrace",
-    "values": { "c++2b": 202011 },
+    "values": { "c++23": 202011 },
     "headers": ["stacktrace"],
     "unimplemented": True,
   }, {
@@ -692,15 +692,15 @@ def add_version_header(tc):
     "headers": ["string", "string_view"],
   }, {
     "name": "__cpp_lib_stdatomic_h",
-    "values": { "c++2b": 202011 },
+    "values": { "c++23": 202011 },
     "headers": ["stdatomic.h"],
   }, {
     "name": "__cpp_lib_string_contains",
-    "values": { "c++2b": 202011 },
+    "values": { "c++23": 202011 },
     "headers": ["string", "string_view"],
   }, {
     "name": "__cpp_lib_string_resize_and_overwrite",
-    "values": { "c++2b": 202110 },
+    "values": { "c++23": 202110 },
     "headers": ["string"],
   }, {
     "name": "__cpp_lib_string_udls",
@@ -735,7 +735,7 @@ def add_version_header(tc):
     "unimplemented": True,
   }, {
     "name": "__cpp_lib_to_underlying",
-    "values": { "c++2b": 202102 },
+    "values": { "c++23": 202102 },
     "headers": ["utility"],
   }, {
     "name": "__cpp_lib_transformation_trait_aliases",
@@ -771,7 +771,7 @@ def add_version_header(tc):
     "headers": ["unordered_map"],
   }, {
     "name": "__cpp_lib_unreachable",
-    "values": { "c++2b": 202202 },
+    "values": { "c++23": 202202 },
     "headers": ["utility"],
   }, {
     "name": "__cpp_lib_unwrap_ref",
@@ -819,7 +819,7 @@ def add_version_header(tc):
 }
 
 def get_std_dialects():
-  std_dialects = ['c++14', 'c++17', 'c++20', 'c++2b']
+  std_dialects = ['c++14', 'c++17', 'c++20', 'c++23']
   return list(std_dialects)
 
 def get_first_std(d):
@@ -904,7 +904,7 @@ def produce_macros_definitions():
   macros_definitions = []
   for std in get_std_dialects():
     macros_definitions.append(
-      macro_definition_template.format(std_number=get_std_number(std).replace('2b', '23'),
+      macro_definition_template.format(std_number=get_std_number(std),
                                        macro_definition=produce_macros_definition_for_std(std)))
 
   return '\n\n'.join(macros_definitions)
@@ -1073,7 +1073,6 @@ def generate_std_tests(test_list):
 #endif // TEST_STD_VER > {penultimate_std_number}"""
 
   std_dialects = get_std_dialects()
-  assert not get_std_number(std_dialects[-1]).isnumeric()
 
   other_std_tests = []
   for std in std_dialects[:-1]:

diff  --git a/libcxx/utils/generate_header_inclusion_tests.py b/libcxx/utils/generate_header_inclusion_tests.py
index e96551d1f7ad3..729e3e0bda70b 100755
--- a/libcxx/utils/generate_header_inclusion_tests.py
+++ b/libcxx/utils/generate_header_inclusion_tests.py
@@ -127,7 +127,7 @@ def get_unsupported_line(includee):
         "14": ['UNSUPPORTED: c++03, c++11'],
         "17": ['UNSUPPORTED: c++03, c++11, c++14'],
         "20": ['UNSUPPORTED: c++03, c++11, c++14, c++17'],
-        "2b": ['UNSUPPORTED: c++03, c++11, c++14, c++17, c++20'],
+        "23": ['UNSUPPORTED: c++03, c++11, c++14, c++17, c++20'],
     }[v]
 
 

diff  --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py
index 4e7e37e348cbe..a1d66fcf8b091 100644
--- a/libcxx/utils/libcxx/test/params.py
+++ b/libcxx/utils/libcxx/test/params.py
@@ -54,14 +54,18 @@
   '-Wno-unused-local-typedef',
 ]
 
-_allStandards = ['c++03', 'c++11', 'c++14', 'c++17', 'c++20', 'c++2b']
+_allStandards = ['c++03', 'c++11', 'c++14', 'c++17', 'c++20', 'c++23']
 def getStdFlag(cfg, std):
   fallbacks = {
     'c++11': 'c++0x',
     'c++14': 'c++1y',
     'c++17': 'c++1z',
     'c++20': 'c++2a',
+    'c++23': 'c++2b',
   }
+  # TODO LLVM 17 Remove this clang-tidy-16 work-around
+  if std == 'c++23':
+    std = 'c++2b'
   if hasCompileFlag(cfg, '-std='+std):
     return '-std='+std
   if std in fallbacks and hasCompileFlag(cfg, '-std='+fallbacks[std]):


        


More information about the libcxx-commits mailing list