diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst index 17d2da907692e..0297068785e8b 100644 --- a/libcxx/docs/FeatureTestMacroTable.rst +++ b/libcxx/docs/FeatureTestMacroTable.rst @@ -326,8 +326,6 @@ Status ---------------------------------------------------------- ----------------- ``__cpp_lib_expected`` ``202211L`` ---------------------------------------------------------- ----------------- - ``__cpp_lib_format_path`` *unimplemented* - ---------------------------------------------------------- ----------------- ``__cpp_lib_format_ranges`` ``202207L`` ---------------------------------------------------------- ----------------- ``__cpp_lib_formatters`` *unimplemented* @@ -386,8 +384,6 @@ Status ---------------------------------------------------------- ----------------- ``__cpp_lib_string_resize_and_overwrite`` ``202110L`` ---------------------------------------------------------- ----------------- - ``__cpp_lib_to_string`` *unimplemented* - ---------------------------------------------------------- ----------------- ``__cpp_lib_to_underlying`` ``202102L`` ---------------------------------------------------------- ----------------- ``__cpp_lib_tuple_like`` *unimplemented* @@ -412,6 +408,8 @@ Status ---------------------------------------------------------- ----------------- ``__cpp_lib_default_template_type_for_algorithm_values`` *unimplemented* ---------------------------------------------------------- ----------------- + ``__cpp_lib_format_path`` *unimplemented* + ---------------------------------------------------------- ----------------- ``__cpp_lib_freestanding_algorithm`` *unimplemented* ---------------------------------------------------------- ----------------- ``__cpp_lib_freestanding_array`` *unimplemented* @@ -466,6 +464,8 @@ Status ---------------------------------------------------------- ----------------- ``__cpp_lib_to_chars`` *unimplemented* ---------------------------------------------------------- ----------------- + ``__cpp_lib_to_string`` *unimplemented* + ---------------------------------------------------------- ----------------- ``__cpp_lib_tuple_like`` *unimplemented* ========================================================== ================= diff --git a/libcxx/include/version b/libcxx/include/version index 69556d731f1cf..140a9a0d87036 100644 --- a/libcxx/include/version +++ b/libcxx/include/version @@ -459,7 +459,6 @@ __cpp_lib_void_t 201411L # define __cpp_lib_constexpr_typeinfo 202106L # define __cpp_lib_containers_ranges 202202L # define __cpp_lib_expected 202211L -// # define __cpp_lib_format_path 202403L # define __cpp_lib_format_ranges 202207L // # define __cpp_lib_formatters 202302L # define __cpp_lib_forward_like 202207L @@ -490,7 +489,6 @@ __cpp_lib_void_t 201411L # define __cpp_lib_stdatomic_h 202011L # define __cpp_lib_string_contains 202011L # define __cpp_lib_string_resize_and_overwrite 202110L -// # define __cpp_lib_to_string 202306L # define __cpp_lib_to_underlying 202102L // # define __cpp_lib_tuple_like 202207L # define __cpp_lib_unreachable 202202L @@ -506,6 +504,7 @@ __cpp_lib_void_t 201411L // # define __cpp_lib_copyable_function 202306L // # define __cpp_lib_debugging 202311L // # define __cpp_lib_default_template_type_for_algorithm_values 202403L +// # define __cpp_lib_format_path 202403L // # define __cpp_lib_freestanding_algorithm 202311L // # define __cpp_lib_freestanding_array 202311L // # define __cpp_lib_freestanding_cstring 202306L @@ -537,6 +536,7 @@ __cpp_lib_void_t 201411L // # define __cpp_lib_text_encoding 202306L # undef __cpp_lib_to_chars // # define __cpp_lib_to_chars 202306L +// # define __cpp_lib_to_string 202306L # undef __cpp_lib_tuple_like // # define __cpp_lib_tuple_like 202311L #endif 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 308cc2d43b058..4aba33482f69c 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 @@ -20,7 +20,7 @@ /* Constant Value __cpp_lib_char8_t 201907L [C++20] __cpp_lib_filesystem 201703L [C++17] - __cpp_lib_format_path 202403L [C++23] + __cpp_lib_format_path 202403L [C++26] */ #include @@ -37,7 +37,7 @@ # endif # ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++23" +# error "__cpp_lib_format_path should not be defined before c++26" # endif #elif TEST_STD_VER == 14 @@ -51,7 +51,7 @@ # endif # ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++23" +# error "__cpp_lib_format_path should not be defined before c++26" # endif #elif TEST_STD_VER == 17 @@ -74,7 +74,7 @@ # endif # ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++23" +# error "__cpp_lib_format_path should not be defined before c++26" # endif #elif TEST_STD_VER == 20 @@ -106,7 +106,7 @@ # endif # ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++23" +# error "__cpp_lib_format_path should not be defined before c++26" # endif #elif TEST_STD_VER == 23 @@ -137,17 +137,8 @@ # endif # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_format_path -# error "__cpp_lib_format_path should be defined in c++23" -# endif -# if __cpp_lib_format_path != 202403L -# error "__cpp_lib_format_path should have the value 202403L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!" -# endif +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" # endif #elif TEST_STD_VER > 23 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 16a9a0a28de63..af6386a40a458 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 @@ -29,7 +29,7 @@ __cpp_lib_string_udls 201304L [C++14] __cpp_lib_string_view 201606L [C++17] 201803L [C++20] - __cpp_lib_to_string 202306L [C++23] + __cpp_lib_to_string 202306L [C++26] */ #include @@ -86,7 +86,7 @@ # endif # ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++23" +# error "__cpp_lib_to_string should not be defined before c++26" # endif #elif TEST_STD_VER == 14 @@ -143,7 +143,7 @@ # endif # ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++23" +# error "__cpp_lib_to_string should not be defined before c++26" # endif #elif TEST_STD_VER == 17 @@ -209,7 +209,7 @@ # endif # ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++23" +# error "__cpp_lib_to_string should not be defined before c++26" # endif #elif TEST_STD_VER == 20 @@ -293,7 +293,7 @@ # endif # ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++23" +# error "__cpp_lib_to_string should not be defined before c++26" # endif #elif TEST_STD_VER == 23 @@ -385,17 +385,8 @@ # error "__cpp_lib_string_view should have the value 201803L in c++23" # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_string -# error "__cpp_lib_to_string should be defined in c++23" -# endif -# if __cpp_lib_to_string != 202306L -# error "__cpp_lib_to_string should have the value 202306L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!" -# endif +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" # endif #elif TEST_STD_VER > 23 diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp index 7829e06f90760..c1e1f9f340af4 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 @@ -88,7 +88,7 @@ __cpp_lib_expected 202211L [C++23] __cpp_lib_filesystem 201703L [C++17] __cpp_lib_format 202106L [C++20] - __cpp_lib_format_path 202403L [C++23] + __cpp_lib_format_path 202403L [C++26] __cpp_lib_format_ranges 202207L [C++23] __cpp_lib_format_uchar 202311L [C++20] __cpp_lib_formatters 202302L [C++23] @@ -216,7 +216,7 @@ __cpp_lib_to_array 201907L [C++20] __cpp_lib_to_chars 201611L [C++17] 202306L [C++26] - __cpp_lib_to_string 202306L [C++23] + __cpp_lib_to_string 202306L [C++26] __cpp_lib_to_underlying 202102L [C++23] __cpp_lib_transformation_trait_aliases 201304L [C++14] __cpp_lib_transparent_operators 201210L [C++14] @@ -513,7 +513,7 @@ # endif # ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++23" +# error "__cpp_lib_format_path should not be defined before c++26" # endif # ifdef __cpp_lib_format_ranges @@ -1005,7 +1005,7 @@ # endif # ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++23" +# error "__cpp_lib_to_string should not be defined before c++26" # endif # ifdef __cpp_lib_to_underlying @@ -1348,7 +1348,7 @@ # endif # ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++23" +# error "__cpp_lib_format_path should not be defined before c++26" # endif # ifdef __cpp_lib_format_ranges @@ -1891,7 +1891,7 @@ # endif # ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++23" +# error "__cpp_lib_to_string should not be defined before c++26" # endif # ifdef __cpp_lib_to_underlying @@ -2303,7 +2303,7 @@ # endif # ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++23" +# error "__cpp_lib_format_path should not be defined before c++26" # endif # ifdef __cpp_lib_format_ranges @@ -2972,7 +2972,7 @@ # endif # ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++23" +# error "__cpp_lib_to_string should not be defined before c++26" # endif # ifdef __cpp_lib_to_underlying @@ -3543,7 +3543,7 @@ # endif # ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++23" +# error "__cpp_lib_format_path should not be defined before c++26" # endif # ifdef __cpp_lib_format_ranges @@ -4350,7 +4350,7 @@ # endif # ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++23" +# error "__cpp_lib_to_string should not be defined before c++26" # endif # ifdef __cpp_lib_to_underlying @@ -4971,17 +4971,8 @@ # endif # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_format_path -# error "__cpp_lib_format_path should be defined in c++23" -# endif -# if __cpp_lib_format_path != 202403L -# error "__cpp_lib_format_path should have the value 202403L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!" -# endif +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" # endif # ifndef __cpp_lib_format_ranges @@ -5943,17 +5934,8 @@ # endif # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_string -# error "__cpp_lib_to_string should be defined in c++23" -# endif -# if __cpp_lib_to_string != 202306L -# error "__cpp_lib_to_string should have the value 202306L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!" -# endif +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" # endif # ifndef __cpp_lib_to_underlying diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py index b04cb4f511554..1e79f6c140758 100755 --- a/libcxx/utils/generate_feature_test_macro_components.py +++ b/libcxx/utils/generate_feature_test_macro_components.py @@ -515,7 +515,7 @@ def add_version_header(tc): }, { "name": "__cpp_lib_format_path", - "values": {"c++23": 202403}, # P2845R8: Formatting of std::filesystem::path + "values": {"c++26": 202403}, # P2845R8: Formatting of std::filesystem::path "headers": ["filesystem"], "unimplemented": True, }, @@ -1270,7 +1270,7 @@ def add_version_header(tc): }, { "name": "__cpp_lib_to_string", - "values": {"c++23": 202306}, # P2587R3 to_string or not to_string + "values": {"c++26": 202306}, # P2587R3 to_string or not to_string "headers": ["string"], "unimplemented": True, },