Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline
Differential D144331 Diff 511892 libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
Changeset View
Changeset View
Standalone View
Standalone View
libcxx/test/std/language.support/support.limits/support.limits.general/thread.version.compile.pass.cpp
Show All 11 Lines | |||||
// clang-format off | // clang-format off | ||||
// UNSUPPORTED: no-threads | // UNSUPPORTED: no-threads | ||||
// <thread> | // <thread> | ||||
// Test the feature test macros defined by <thread> | // Test the feature test macros defined by <thread> | ||||
/* Constant Value | /* Constant Value | ||||
__cpp_lib_formatters 202302L [C++2b] | |||||
__cpp_lib_jthread 201911L [C++20] | __cpp_lib_jthread 201911L [C++20] | ||||
*/ | */ | ||||
#include <thread> | #include <thread> | ||||
#include "test_macros.h" | #include "test_macros.h" | ||||
#if TEST_STD_VER < 14 | #if TEST_STD_VER < 14 | ||||
# ifdef __cpp_lib_formatters | |||||
# error "__cpp_lib_formatters should not be defined before c++2b" | |||||
# endif | |||||
# ifdef __cpp_lib_jthread | # ifdef __cpp_lib_jthread | ||||
# error "__cpp_lib_jthread should not be defined before c++20" | # error "__cpp_lib_jthread should not be defined before c++20" | ||||
# endif | # endif | ||||
#elif TEST_STD_VER == 14 | #elif TEST_STD_VER == 14 | ||||
# ifdef __cpp_lib_formatters | |||||
# error "__cpp_lib_formatters should not be defined before c++2b" | |||||
# endif | |||||
# ifdef __cpp_lib_jthread | # ifdef __cpp_lib_jthread | ||||
# error "__cpp_lib_jthread should not be defined before c++20" | # error "__cpp_lib_jthread should not be defined before c++20" | ||||
# endif | # endif | ||||
#elif TEST_STD_VER == 17 | #elif TEST_STD_VER == 17 | ||||
# ifdef __cpp_lib_formatters | |||||
# error "__cpp_lib_formatters should not be defined before c++2b" | |||||
# endif | |||||
# ifdef __cpp_lib_jthread | # ifdef __cpp_lib_jthread | ||||
# error "__cpp_lib_jthread should not be defined before c++20" | # error "__cpp_lib_jthread should not be defined before c++20" | ||||
# endif | # endif | ||||
#elif TEST_STD_VER == 20 | #elif TEST_STD_VER == 20 | ||||
# ifdef __cpp_lib_formatters | |||||
# error "__cpp_lib_formatters should not be defined before c++2b" | |||||
# endif | |||||
# if !defined(_LIBCPP_VERSION) | # if !defined(_LIBCPP_VERSION) | ||||
# ifndef __cpp_lib_jthread | # ifndef __cpp_lib_jthread | ||||
# error "__cpp_lib_jthread should be defined in c++20" | # error "__cpp_lib_jthread should be defined in c++20" | ||||
# endif | # endif | ||||
# if __cpp_lib_jthread != 201911L | # if __cpp_lib_jthread != 201911L | ||||
# error "__cpp_lib_jthread should have the value 201911L in c++20" | # error "__cpp_lib_jthread should have the value 201911L in c++20" | ||||
# endif | # endif | ||||
# else // _LIBCPP_VERSION | # else // _LIBCPP_VERSION | ||||
# ifdef __cpp_lib_jthread | # ifdef __cpp_lib_jthread | ||||
# error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!" | # error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!" | ||||
# endif | # endif | ||||
# endif | # endif | ||||
#elif TEST_STD_VER > 20 | #elif TEST_STD_VER > 20 | ||||
# if !defined(_LIBCPP_VERSION) | # if !defined(_LIBCPP_VERSION) | ||||
# ifndef __cpp_lib_formatters | |||||
# error "__cpp_lib_formatters should be defined in c++2b" | |||||
# endif | |||||
# if __cpp_lib_formatters != 202302L | |||||
# error "__cpp_lib_formatters should have the value 202302L in c++2b" | |||||
# endif | |||||
# else // _LIBCPP_VERSION | |||||
# ifdef __cpp_lib_formatters | |||||
# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" | |||||
# endif | |||||
# endif | |||||
# if !defined(_LIBCPP_VERSION) | |||||
# ifndef __cpp_lib_jthread | # ifndef __cpp_lib_jthread | ||||
# error "__cpp_lib_jthread should be defined in c++2b" | # error "__cpp_lib_jthread should be defined in c++2b" | ||||
# endif | # endif | ||||
# if __cpp_lib_jthread != 201911L | # 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++2b" | ||||
# endif | # endif | ||||
# else // _LIBCPP_VERSION | # else // _LIBCPP_VERSION | ||||
# ifdef __cpp_lib_jthread | # ifdef __cpp_lib_jthread | ||||
# error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!" | # error "__cpp_lib_jthread should not be defined because it is unimplemented in libc++!" | ||||
# endif | # endif | ||||
# endif | # endif | ||||
#endif // TEST_STD_VER > 20 | #endif // TEST_STD_VER > 20 | ||||