diff --git a/libcxx/docs/FeatureTestMacroTable.rst b/libcxx/docs/FeatureTestMacroTable.rst --- a/libcxx/docs/FeatureTestMacroTable.rst +++ b/libcxx/docs/FeatureTestMacroTable.rst @@ -194,7 +194,7 @@ ------------------------------------------------- ----------------- ``__cpp_lib_is_constant_evaluated`` ``201811L`` ------------------------------------------------- ----------------- - ``__cpp_lib_list_remove_return_type`` *unimplemented* + ``__cpp_lib_list_remove_return_type`` ``201806L`` ------------------------------------------------- ----------------- ``__cpp_lib_ranges`` *unimplemented* ------------------------------------------------- ----------------- diff --git a/libcxx/include/version b/libcxx/include/version --- a/libcxx/include/version +++ b/libcxx/include/version @@ -232,7 +232,7 @@ # if !defined(_LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED) # define __cpp_lib_is_constant_evaluated 201811L # endif -// # define __cpp_lib_list_remove_return_type 201806L +# define __cpp_lib_list_remove_return_type 201806L // # define __cpp_lib_ranges 201811L # define __cpp_lib_to_array 201907L // # define __cpp_lib_three_way_comparison 201711L diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp --- a/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/forward_list.version.pass.cpp @@ -122,17 +122,11 @@ # error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++2a" # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++2a" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2a" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined because it is unimplemented in libc++!" -# endif +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++2a" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2a" # endif # ifndef __cpp_lib_nonmember_container_access diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp --- a/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/list.version.pass.cpp @@ -122,17 +122,11 @@ # error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++2a" # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++2a" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2a" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined because it is unimplemented in libc++!" -# endif +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++2a" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2a" # endif # ifndef __cpp_lib_nonmember_container_access diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp --- a/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/version.version.pass.cpp @@ -1899,17 +1899,11 @@ # error "__cpp_lib_launder should have the value 201606L in c++2a" # endif -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++2a" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2a" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined because it is unimplemented in libc++!" -# endif +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++2a" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2a" # endif # ifndef __cpp_lib_logical_traits diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py --- a/libcxx/utils/generate_feature_test_macro_components.py +++ b/libcxx/utils/generate_feature_test_macro_components.py @@ -542,7 +542,6 @@ "c++2a": int(201806), }, "headers": ["forward_list", "list"], - "unimplemented": True, }, {"name": "__cpp_lib_generic_unordered_lookup", "values": { diff --git a/libcxx/www/cxx2a_status.html b/libcxx/www/cxx2a_status.html --- a/libcxx/www/cxx2a_status.html +++ b/libcxx/www/cxx2a_status.html @@ -90,7 +90,7 @@ P0542R5CWGSupport for contract based programming in C++Rapperswil P0556R3LWGIntegral power-of-2 operationsRapperswilComplete9.0 P0619R4LWGReviewing Deprecated Facilities of C++17 for C++20Rapperswil - P0646R1LWGImproving the Return Value of Erase-Like AlgorithmsRapperswil + P0646R1LWGImproving the Return Value of Erase-Like AlgorithmsRapperswilComplete10.0 P0722R3CWGEfficient sized delete for variable sized classesRapperswilComplete9.0 P0758R1LWGImplicit conversion traits and utility functionsRapperswilComplete P0759R1LWGfpos RequirementsRapperswil