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 acc13e5405867..488bc468bce79 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 @@ -5,473 +5,458 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_clamp 201603L [C++17] - __cpp_lib_constexpr_algorithms 201806L [C++20] - 202306L [C++26] - __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] - __cpp_lib_freestanding_algorithm 202311L [C++26] - __cpp_lib_parallel_algorithm 201603L [C++17] - __cpp_lib_ranges 202110L [C++20] - 202406L [C++23] - __cpp_lib_ranges_contains 202207L [C++23] - __cpp_lib_ranges_find_last 202207L [C++23] - __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] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_clamp -# error "__cpp_lib_clamp should not be defined before c++17" -# endif +# ifdef __cpp_lib_clamp +# error "__cpp_lib_clamp should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined before c++17" -# endif +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined before c++17" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" +# endif -# ifdef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should not be defined before c++14" -# endif +# ifdef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should not be defined before c++14" +# endif -# ifdef __cpp_lib_sample -# error "__cpp_lib_sample should not be defined before c++17" -# endif +# ifdef __cpp_lib_sample +# error "__cpp_lib_sample should not be defined before c++17" +# endif -# ifdef __cpp_lib_shift -# error "__cpp_lib_shift should not be defined before c++20" -# endif +# ifdef __cpp_lib_shift +# error "__cpp_lib_shift should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_clamp -# error "__cpp_lib_clamp should not be defined before c++17" -# endif +# ifdef __cpp_lib_clamp +# error "__cpp_lib_clamp should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined before c++17" -# endif +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined before c++17" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" +# endif -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++14" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++14" -# endif +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++14" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++14" +# endif -# ifdef __cpp_lib_sample -# error "__cpp_lib_sample should not be defined before c++17" -# endif +# ifdef __cpp_lib_sample +# error "__cpp_lib_sample should not be defined before c++17" +# endif -# ifdef __cpp_lib_shift -# error "__cpp_lib_shift should not be defined before c++20" -# endif +# ifdef __cpp_lib_shift +# error "__cpp_lib_shift should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_clamp -# error "__cpp_lib_clamp should be defined in c++17" -# endif -# if __cpp_lib_clamp != 201603L -# error "__cpp_lib_clamp should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++17" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif - -# ifdef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_sample -# error "__cpp_lib_sample should be defined in c++17" -# endif -# if __cpp_lib_sample != 201603L -# error "__cpp_lib_sample should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_shift -# error "__cpp_lib_shift should not be defined before c++20" -# endif +# ifndef __cpp_lib_clamp +# error "__cpp_lib_clamp should be defined in c++17" +# endif +# if __cpp_lib_clamp != 201603L +# error "__cpp_lib_clamp should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++17" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif + +# ifdef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_sample +# error "__cpp_lib_sample should be defined in c++17" +# endif +# if __cpp_lib_sample != 201603L +# error "__cpp_lib_sample should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_shift +# error "__cpp_lib_shift should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_clamp -# error "__cpp_lib_clamp should be defined in c++20" -# endif -# if __cpp_lib_clamp != 201603L -# error "__cpp_lib_clamp should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++20" -# endif -# if __cpp_lib_constexpr_algorithms != 201806L -# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++20" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++20" -# endif -# if __cpp_lib_ranges != 202110L -# error "__cpp_lib_ranges should have the value 202110L in c++20" -# endif - -# ifdef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_sample -# error "__cpp_lib_sample should be defined in c++20" -# endif -# if __cpp_lib_sample != 201603L -# error "__cpp_lib_sample should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_shift -# error "__cpp_lib_shift should be defined in c++20" -# endif -# if __cpp_lib_shift != 201806L -# error "__cpp_lib_shift should have the value 201806L in c++20" -# endif +# ifndef __cpp_lib_clamp +# error "__cpp_lib_clamp should be defined in c++20" +# endif +# if __cpp_lib_clamp != 201603L +# error "__cpp_lib_clamp should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++20" +# endif +# if __cpp_lib_constexpr_algorithms != 201806L +# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++20" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++20" +# endif +# if __cpp_lib_ranges != 202110L +# error "__cpp_lib_ranges should have the value 202110L in c++20" +# endif + +# ifdef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_sample +# error "__cpp_lib_sample should be defined in c++20" +# endif +# if __cpp_lib_sample != 201603L +# error "__cpp_lib_sample should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_shift +# error "__cpp_lib_shift should be defined in c++20" +# endif +# if __cpp_lib_shift != 201806L +# error "__cpp_lib_shift should have the value 201806L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_clamp -# error "__cpp_lib_clamp should be defined in c++23" -# endif -# if __cpp_lib_clamp != 201603L -# error "__cpp_lib_clamp should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++23" -# endif -# if __cpp_lib_constexpr_algorithms != 201806L -# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++23" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++23" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++23" -# endif - -# ifndef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should be defined in c++23" -# endif -# if __cpp_lib_ranges_contains != 202207L -# error "__cpp_lib_ranges_contains should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should be defined in c++23" -# endif -# if __cpp_lib_ranges_find_last != 202207L -# error "__cpp_lib_ranges_find_last should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should be defined in c++23" -# endif -# if __cpp_lib_ranges_starts_ends_with != 202106L -# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++23" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++23" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_sample -# error "__cpp_lib_sample should be defined in c++23" -# endif -# if __cpp_lib_sample != 201603L -# error "__cpp_lib_sample should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_shift -# error "__cpp_lib_shift should be defined in c++23" -# endif -# if __cpp_lib_shift != 201806L -# error "__cpp_lib_shift should have the value 201806L in c++23" -# endif +# ifndef __cpp_lib_clamp +# error "__cpp_lib_clamp should be defined in c++23" +# endif +# if __cpp_lib_clamp != 201603L +# error "__cpp_lib_clamp should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++23" +# endif +# if __cpp_lib_constexpr_algorithms != 201806L +# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++23" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++23" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++23" +# endif + +# ifndef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should be defined in c++23" +# endif +# if __cpp_lib_ranges_contains != 202207L +# error "__cpp_lib_ranges_contains should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should be defined in c++23" +# endif +# if __cpp_lib_ranges_find_last != 202207L +# error "__cpp_lib_ranges_find_last should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should be defined in c++23" +# endif +# if __cpp_lib_ranges_starts_ends_with != 202106L +# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++23" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++23" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_sample +# error "__cpp_lib_sample should be defined in c++23" +# endif +# if __cpp_lib_sample != 201603L +# error "__cpp_lib_sample should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_shift +# error "__cpp_lib_shift should be defined in c++23" +# endif +# if __cpp_lib_shift != 201806L +# error "__cpp_lib_shift should have the value 201806L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_clamp -# error "__cpp_lib_clamp should be defined in c++26" -# endif -# if __cpp_lib_clamp != 201603L -# error "__cpp_lib_clamp should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++26" -# endif -# if __cpp_lib_constexpr_algorithms != 202306L -# error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" -# endif -# if __cpp_lib_default_template_type_for_algorithm_values != 202403L -# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should be defined in c++26" -# endif -# if __cpp_lib_freestanding_algorithm != 202311L -# error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++26" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++26" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++26" -# endif - -# ifndef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should be defined in c++26" -# endif -# if __cpp_lib_ranges_contains != 202207L -# error "__cpp_lib_ranges_contains should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should be defined in c++26" -# endif -# if __cpp_lib_ranges_find_last != 202207L -# error "__cpp_lib_ranges_find_last should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should be defined in c++26" -# endif -# if __cpp_lib_ranges_starts_ends_with != 202106L -# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++26" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++26" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_sample -# error "__cpp_lib_sample should be defined in c++26" -# endif -# if __cpp_lib_sample != 201603L -# error "__cpp_lib_sample should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_shift -# error "__cpp_lib_shift should be defined in c++26" -# endif -# if __cpp_lib_shift != 201806L -# error "__cpp_lib_shift should have the value 201806L in c++26" -# endif +# ifndef __cpp_lib_clamp +# error "__cpp_lib_clamp should be defined in c++26" +# endif +# if __cpp_lib_clamp != 201603L +# error "__cpp_lib_clamp should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++26" +# endif +# if __cpp_lib_constexpr_algorithms != 202306L +# error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" +# endif +# if __cpp_lib_default_template_type_for_algorithm_values != 202403L +# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should be defined in c++26" +# endif +# if __cpp_lib_freestanding_algorithm != 202311L +# error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++26" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++26" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++26" +# endif + +# ifndef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should be defined in c++26" +# endif +# if __cpp_lib_ranges_contains != 202207L +# error "__cpp_lib_ranges_contains should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should be defined in c++26" +# endif +# if __cpp_lib_ranges_find_last != 202207L +# error "__cpp_lib_ranges_find_last should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should be defined in c++26" +# endif +# if __cpp_lib_ranges_starts_ends_with != 202106L +# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++26" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++26" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_sample +# error "__cpp_lib_sample should be defined in c++26" +# endif +# if __cpp_lib_sample != 201603L +# error "__cpp_lib_sample should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_shift +# error "__cpp_lib_shift should be defined in c++26" +# endif +# if __cpp_lib_shift != 201806L +# error "__cpp_lib_shift should have the value 201806L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 937d581c75cc5..7f3d6394749b4 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 @@ -5,70 +5,68 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_any 201606L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_any -# error "__cpp_lib_any should not be defined before c++17" -# endif +# ifdef __cpp_lib_any +# error "__cpp_lib_any should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_any -# error "__cpp_lib_any should not be defined before c++17" -# endif +# ifdef __cpp_lib_any +# error "__cpp_lib_any should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_any -# error "__cpp_lib_any should be defined in c++17" -# endif -# if __cpp_lib_any != 201606L -# error "__cpp_lib_any should have the value 201606L in c++17" -# endif +# ifndef __cpp_lib_any +# error "__cpp_lib_any should be defined in c++17" +# endif +# if __cpp_lib_any != 201606L +# error "__cpp_lib_any should have the value 201606L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_any -# error "__cpp_lib_any should be defined in c++20" -# endif -# if __cpp_lib_any != 201606L -# error "__cpp_lib_any should have the value 201606L in c++20" -# endif +# ifndef __cpp_lib_any +# error "__cpp_lib_any should be defined in c++20" +# endif +# if __cpp_lib_any != 201606L +# error "__cpp_lib_any should have the value 201606L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_any -# error "__cpp_lib_any should be defined in c++23" -# endif -# if __cpp_lib_any != 201606L -# error "__cpp_lib_any should have the value 201606L in c++23" -# endif +# ifndef __cpp_lib_any +# error "__cpp_lib_any should be defined in c++23" +# endif +# if __cpp_lib_any != 201606L +# error "__cpp_lib_any should have the value 201606L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_any -# error "__cpp_lib_any should be defined in c++26" -# endif -# if __cpp_lib_any != 201606L -# error "__cpp_lib_any should have the value 201606L in c++26" -# endif +# ifndef __cpp_lib_any +# error "__cpp_lib_any should be defined in c++26" +# endif +# if __cpp_lib_any != 201606L +# error "__cpp_lib_any should have the value 201606L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 75b5492394071..9e50976e5cc2c 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 @@ -5,176 +5,170 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_array_constexpr 201603L [C++17] - 201811L [C++20] - __cpp_lib_freestanding_array 202311L [C++26] - __cpp_lib_nonmember_container_access 201411L [C++17] - __cpp_lib_to_array 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_to_array -# error "__cpp_lib_to_array should not be defined before c++20" -# endif +# ifdef __cpp_lib_to_array +# error "__cpp_lib_to_array should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_to_array -# error "__cpp_lib_to_array should not be defined before c++20" -# endif +# ifdef __cpp_lib_to_array +# error "__cpp_lib_to_array should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++17" -# endif -# if __cpp_lib_array_constexpr != 201603L -# error "__cpp_lib_array_constexpr should have the value 201603L in c++17" -# endif +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++17" +# endif +# if __cpp_lib_array_constexpr != 201603L +# error "__cpp_lib_array_constexpr should have the value 201603L in c++17" +# endif -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif -# ifdef __cpp_lib_to_array -# error "__cpp_lib_to_array should not be defined before c++20" -# endif +# ifdef __cpp_lib_to_array +# error "__cpp_lib_to_array should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++20" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++20" -# endif - -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_to_array -# error "__cpp_lib_to_array should be defined in c++20" -# endif -# if __cpp_lib_to_array != 201907L -# error "__cpp_lib_to_array should have the value 201907L in c++20" -# endif +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++20" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++20" +# endif + +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_to_array +# error "__cpp_lib_to_array should be defined in c++20" +# endif +# if __cpp_lib_to_array != 201907L +# error "__cpp_lib_to_array should have the value 201907L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++23" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++23" -# endif - -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_to_array -# error "__cpp_lib_to_array should be defined in c++23" -# endif -# if __cpp_lib_to_array != 201907L -# error "__cpp_lib_to_array should have the value 201907L in c++23" -# endif +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++23" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++23" +# endif + +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_to_array +# error "__cpp_lib_to_array should be defined in c++23" +# endif +# if __cpp_lib_to_array != 201907L +# error "__cpp_lib_to_array should have the value 201907L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++26" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should be defined in c++26" -# endif -# if __cpp_lib_freestanding_array != 202311L -# error "__cpp_lib_freestanding_array should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_to_array -# error "__cpp_lib_to_array should be defined in c++26" -# endif -# if __cpp_lib_to_array != 201907L -# error "__cpp_lib_to_array should have the value 201907L in c++26" -# endif +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++26" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should be defined in c++26" +# endif +# if __cpp_lib_freestanding_array != 202311L +# error "__cpp_lib_freestanding_array should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_to_array +# error "__cpp_lib_to_array should be defined in c++26" +# endif +# if __cpp_lib_to_array != 201907L +# error "__cpp_lib_to_array should have the value 201907L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 5a21e6320bffe..e6145bbed5af9 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 @@ -5,430 +5,419 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_atomic_flag_test 201907L [C++20] - __cpp_lib_atomic_float 201711L [C++20] - __cpp_lib_atomic_is_always_lock_free 201603L [C++17] - __cpp_lib_atomic_lock_free_type_aliases 201907L [C++20] - __cpp_lib_atomic_min_max 202403L [C++26] - __cpp_lib_atomic_ref 201806L [C++20] - __cpp_lib_atomic_shared_ptr 201711L [C++20] - __cpp_lib_atomic_value_initialization 201911L [C++20] - __cpp_lib_atomic_wait 201907L [C++20] - __cpp_lib_char8_t 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17" -# endif +# ifdef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17" +# endif -# ifdef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif -# ifdef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined before c++20" +# endif -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17" -# endif +# ifdef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17" +# endif -# ifdef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif -# ifdef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined before c++20" +# endif -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should not be defined before c++20" +# endif -# ifndef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17" -# endif -# if __cpp_lib_atomic_is_always_lock_free != 201603L -# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17" -# endif +# ifndef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17" +# endif +# if __cpp_lib_atomic_is_always_lock_free != 201603L +# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17" +# endif -# ifdef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif -# ifdef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined before c++20" +# endif -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should be defined in c++20" -# endif -# if __cpp_lib_atomic_flag_test != 201907L -# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should be defined in c++20" -# endif -# if __cpp_lib_atomic_float != 201711L -# error "__cpp_lib_atomic_float should have the value 201711L in c++20" -# endif - -# ifndef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20" -# endif -# if __cpp_lib_atomic_is_always_lock_free != 201603L -# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20" -# endif -# if __cpp_lib_atomic_lock_free_type_aliases != 201907L -# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20" -# endif - -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif - -# ifndef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should be defined in c++20" -# endif -# if __cpp_lib_atomic_ref != 201806L -# error "__cpp_lib_atomic_ref should have the value 201806L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should be defined in c++20" -# endif -# if __cpp_lib_atomic_shared_ptr != 201711L -# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++20" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC -# ifndef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should be defined in c++20" -# endif -# if __cpp_lib_atomic_wait != 201907L -# error "__cpp_lib_atomic_wait should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" -# endif -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# ifndef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should be defined in c++20" +# endif +# if __cpp_lib_atomic_flag_test != 201907L +# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should be defined in c++20" +# endif +# if __cpp_lib_atomic_float != 201711L +# error "__cpp_lib_atomic_float should have the value 201711L in c++20" +# endif + +# ifndef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20" +# endif +# if __cpp_lib_atomic_is_always_lock_free != 201603L +# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20" +# endif +# if __cpp_lib_atomic_lock_free_type_aliases != 201907L +# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20" +# endif + +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif + +# ifndef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should be defined in c++20" +# endif +# if __cpp_lib_atomic_ref != 201806L +# error "__cpp_lib_atomic_ref should have the value 201806L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should be defined in c++20" +# endif +# if __cpp_lib_atomic_shared_ptr != 201711L +# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20" +# endif +# else +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++20" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC +# ifndef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should be defined in c++20" +# endif +# if __cpp_lib_atomic_wait != 201907L +# error "__cpp_lib_atomic_wait should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" +# endif +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should be defined in c++23" -# endif -# if __cpp_lib_atomic_flag_test != 201907L -# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should be defined in c++23" -# endif -# if __cpp_lib_atomic_float != 201711L -# error "__cpp_lib_atomic_float should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++23" -# endif -# if __cpp_lib_atomic_is_always_lock_free != 201603L -# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++23" -# endif -# if __cpp_lib_atomic_lock_free_type_aliases != 201907L -# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23" -# endif - -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif - -# ifndef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should be defined in c++23" -# endif -# if __cpp_lib_atomic_ref != 201806L -# error "__cpp_lib_atomic_ref should have the value 201806L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should be defined in c++23" -# endif -# if __cpp_lib_atomic_shared_ptr != 201711L -# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++23" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC -# ifndef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should be defined in c++23" -# endif -# if __cpp_lib_atomic_wait != 201907L -# error "__cpp_lib_atomic_wait should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" -# endif -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# ifndef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should be defined in c++23" +# endif +# if __cpp_lib_atomic_flag_test != 201907L +# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should be defined in c++23" +# endif +# if __cpp_lib_atomic_float != 201711L +# error "__cpp_lib_atomic_float should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++23" +# endif +# if __cpp_lib_atomic_is_always_lock_free != 201603L +# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++23" +# endif +# if __cpp_lib_atomic_lock_free_type_aliases != 201907L +# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23" +# endif + +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif + +# ifndef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should be defined in c++23" +# endif +# if __cpp_lib_atomic_ref != 201806L +# error "__cpp_lib_atomic_ref should have the value 201806L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should be defined in c++23" +# endif +# if __cpp_lib_atomic_shared_ptr != 201711L +# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23" +# endif +# else +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++23" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC +# ifndef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should be defined in c++23" +# endif +# if __cpp_lib_atomic_wait != 201907L +# error "__cpp_lib_atomic_wait should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" +# endif +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should be defined in c++26" -# endif -# if __cpp_lib_atomic_flag_test != 201907L -# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should be defined in c++26" -# endif -# if __cpp_lib_atomic_float != 201711L -# error "__cpp_lib_atomic_float should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++26" -# endif -# if __cpp_lib_atomic_is_always_lock_free != 201603L -# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++26" -# endif -# if __cpp_lib_atomic_lock_free_type_aliases != 201907L -# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should be defined in c++26" -# endif -# if __cpp_lib_atomic_min_max != 202403L -# error "__cpp_lib_atomic_min_max should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should be defined in c++26" -# endif -# if __cpp_lib_atomic_ref != 201806L -# error "__cpp_lib_atomic_ref should have the value 201806L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should be defined in c++26" -# endif -# if __cpp_lib_atomic_shared_ptr != 201711L -# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++26" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC -# ifndef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should be defined in c++26" -# endif -# if __cpp_lib_atomic_wait != 201907L -# error "__cpp_lib_atomic_wait should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" -# endif -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# ifndef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should be defined in c++26" +# endif +# if __cpp_lib_atomic_flag_test != 201907L +# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should be defined in c++26" +# endif +# if __cpp_lib_atomic_float != 201711L +# error "__cpp_lib_atomic_float should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++26" +# endif +# if __cpp_lib_atomic_is_always_lock_free != 201603L +# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++26" +# endif +# if __cpp_lib_atomic_lock_free_type_aliases != 201907L +# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should be defined in c++26" +# endif +# if __cpp_lib_atomic_min_max != 202403L +# error "__cpp_lib_atomic_min_max should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should be defined in c++26" +# endif +# if __cpp_lib_atomic_ref != 201806L +# error "__cpp_lib_atomic_ref should have the value 201806L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should be defined in c++26" +# endif +# if __cpp_lib_atomic_shared_ptr != 201711L +# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++26" +# endif +# else +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++26" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC +# ifndef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should be defined in c++26" +# endif +# if __cpp_lib_atomic_wait != 201907L +# error "__cpp_lib_atomic_wait should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" +# endif +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 bf8c8fa802e15..0d025923728b7 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-threads @@ -17,75 +15,75 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_barrier 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined before c++20" -# endif +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined before c++20" -# endif +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined before c++20" -# endif +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_barrier -# error "__cpp_lib_barrier should be defined in c++20" -# endif -# if __cpp_lib_barrier != 201907L -# error "__cpp_lib_barrier should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_barrier +# error "__cpp_lib_barrier should be defined in c++20" +# endif +# if __cpp_lib_barrier != 201907L +# error "__cpp_lib_barrier should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_barrier -# error "__cpp_lib_barrier should be defined in c++23" -# endif -# if __cpp_lib_barrier != 201907L -# error "__cpp_lib_barrier should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_barrier +# error "__cpp_lib_barrier should be defined in c++23" +# endif +# if __cpp_lib_barrier != 201907L +# error "__cpp_lib_barrier should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_barrier -# error "__cpp_lib_barrier should be defined in c++26" -# endif -# if __cpp_lib_barrier != 201907L -# error "__cpp_lib_barrier should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_barrier +# error "__cpp_lib_barrier should be defined in c++26" +# endif +# if __cpp_lib_barrier != 201907L +# error "__cpp_lib_barrier should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 0e1d06b928019..35033419ac440 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 @@ -5,200 +5,194 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_bit_cast 201806L [C++20] - __cpp_lib_bitops 201907L [C++20] - __cpp_lib_byteswap 202110L [C++23] - __cpp_lib_endian 201907L [C++20] - __cpp_lib_int_pow2 202002L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should not be defined before c++20" -# endif +# ifdef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should not be defined before c++20" +# endif -# ifdef __cpp_lib_bitops -# error "__cpp_lib_bitops should not be defined before c++20" -# endif +# ifdef __cpp_lib_bitops +# error "__cpp_lib_bitops should not be defined before c++20" +# endif -# ifdef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should not be defined before c++23" -# endif +# ifdef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should not be defined before c++23" +# endif -# ifdef __cpp_lib_endian -# error "__cpp_lib_endian should not be defined before c++20" -# endif +# ifdef __cpp_lib_endian +# error "__cpp_lib_endian should not be defined before c++20" +# endif -# ifdef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should not be defined before c++20" -# endif +# ifdef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should not be defined before c++20" -# endif +# ifdef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should not be defined before c++20" +# endif -# ifdef __cpp_lib_bitops -# error "__cpp_lib_bitops should not be defined before c++20" -# endif +# ifdef __cpp_lib_bitops +# error "__cpp_lib_bitops should not be defined before c++20" +# endif -# ifdef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should not be defined before c++23" -# endif +# ifdef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should not be defined before c++23" +# endif -# ifdef __cpp_lib_endian -# error "__cpp_lib_endian should not be defined before c++20" -# endif +# ifdef __cpp_lib_endian +# error "__cpp_lib_endian should not be defined before c++20" +# endif -# ifdef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should not be defined before c++20" -# endif +# ifdef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should not be defined before c++20" -# endif +# ifdef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should not be defined before c++20" +# endif -# ifdef __cpp_lib_bitops -# error "__cpp_lib_bitops should not be defined before c++20" -# endif +# ifdef __cpp_lib_bitops +# error "__cpp_lib_bitops should not be defined before c++20" +# endif -# ifdef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should not be defined before c++23" -# endif +# ifdef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should not be defined before c++23" +# endif -# ifdef __cpp_lib_endian -# error "__cpp_lib_endian should not be defined before c++20" -# endif +# ifdef __cpp_lib_endian +# error "__cpp_lib_endian should not be defined before c++20" +# endif -# ifdef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should not be defined before c++20" -# endif +# ifdef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should be defined in c++20" -# endif -# if __cpp_lib_bit_cast != 201806L -# error "__cpp_lib_bit_cast should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_bitops -# error "__cpp_lib_bitops should be defined in c++20" -# endif -# if __cpp_lib_bitops != 201907L -# error "__cpp_lib_bitops should have the value 201907L in c++20" -# endif - -# ifdef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should not be defined before c++23" -# endif - -# ifndef __cpp_lib_endian -# error "__cpp_lib_endian should be defined in c++20" -# endif -# if __cpp_lib_endian != 201907L -# error "__cpp_lib_endian should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should be defined in c++20" -# endif -# if __cpp_lib_int_pow2 != 202002L -# error "__cpp_lib_int_pow2 should have the value 202002L in c++20" -# endif +# ifndef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should be defined in c++20" +# endif +# if __cpp_lib_bit_cast != 201806L +# error "__cpp_lib_bit_cast should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_bitops +# error "__cpp_lib_bitops should be defined in c++20" +# endif +# if __cpp_lib_bitops != 201907L +# error "__cpp_lib_bitops should have the value 201907L in c++20" +# endif + +# ifdef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should not be defined before c++23" +# endif + +# ifndef __cpp_lib_endian +# error "__cpp_lib_endian should be defined in c++20" +# endif +# if __cpp_lib_endian != 201907L +# error "__cpp_lib_endian should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should be defined in c++20" +# endif +# if __cpp_lib_int_pow2 != 202002L +# error "__cpp_lib_int_pow2 should have the value 202002L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should be defined in c++23" -# endif -# if __cpp_lib_bit_cast != 201806L -# error "__cpp_lib_bit_cast should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_bitops -# error "__cpp_lib_bitops should be defined in c++23" -# endif -# if __cpp_lib_bitops != 201907L -# error "__cpp_lib_bitops should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should be defined in c++23" -# endif -# if __cpp_lib_byteswap != 202110L -# error "__cpp_lib_byteswap should have the value 202110L in c++23" -# endif - -# ifndef __cpp_lib_endian -# error "__cpp_lib_endian should be defined in c++23" -# endif -# if __cpp_lib_endian != 201907L -# error "__cpp_lib_endian should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should be defined in c++23" -# endif -# if __cpp_lib_int_pow2 != 202002L -# error "__cpp_lib_int_pow2 should have the value 202002L in c++23" -# endif +# ifndef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should be defined in c++23" +# endif +# if __cpp_lib_bit_cast != 201806L +# error "__cpp_lib_bit_cast should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_bitops +# error "__cpp_lib_bitops should be defined in c++23" +# endif +# if __cpp_lib_bitops != 201907L +# error "__cpp_lib_bitops should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should be defined in c++23" +# endif +# if __cpp_lib_byteswap != 202110L +# error "__cpp_lib_byteswap should have the value 202110L in c++23" +# endif + +# ifndef __cpp_lib_endian +# error "__cpp_lib_endian should be defined in c++23" +# endif +# if __cpp_lib_endian != 201907L +# error "__cpp_lib_endian should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should be defined in c++23" +# endif +# if __cpp_lib_int_pow2 != 202002L +# error "__cpp_lib_int_pow2 should have the value 202002L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should be defined in c++26" -# endif -# if __cpp_lib_bit_cast != 201806L -# error "__cpp_lib_bit_cast should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_bitops -# error "__cpp_lib_bitops should be defined in c++26" -# endif -# if __cpp_lib_bitops != 201907L -# error "__cpp_lib_bitops should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should be defined in c++26" -# endif -# if __cpp_lib_byteswap != 202110L -# error "__cpp_lib_byteswap should have the value 202110L in c++26" -# endif - -# ifndef __cpp_lib_endian -# error "__cpp_lib_endian should be defined in c++26" -# endif -# if __cpp_lib_endian != 201907L -# error "__cpp_lib_endian should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should be defined in c++26" -# endif -# if __cpp_lib_int_pow2 != 202002L -# error "__cpp_lib_int_pow2 should have the value 202002L in c++26" -# endif +# ifndef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should be defined in c++26" +# endif +# if __cpp_lib_bit_cast != 201806L +# error "__cpp_lib_bit_cast should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_bitops +# error "__cpp_lib_bitops should be defined in c++26" +# endif +# if __cpp_lib_bitops != 201907L +# error "__cpp_lib_bitops should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should be defined in c++26" +# endif +# if __cpp_lib_byteswap != 202110L +# error "__cpp_lib_byteswap should have the value 202110L in c++26" +# endif + +# ifndef __cpp_lib_endian +# error "__cpp_lib_endian should be defined in c++26" +# endif +# if __cpp_lib_endian != 201907L +# error "__cpp_lib_endian should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should be defined in c++26" +# endif +# if __cpp_lib_int_pow2 != 202002L +# error "__cpp_lib_int_pow2 should have the value 202002L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 039935943dbd6..ea61d99736208 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 @@ -5,92 +5,89 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_bitset 202306L [C++26] - __cpp_lib_constexpr_bitset 202207L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif -# ifdef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif -# ifdef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif -# ifdef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should not be defined before c++23" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif -# ifdef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif -# ifndef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should be defined in c++23" -# endif -# if __cpp_lib_constexpr_bitset != 202207L -# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23" -# endif +# ifndef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should be defined in c++23" +# endif +# if __cpp_lib_constexpr_bitset != 202207L +# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_bitset -# error "__cpp_lib_bitset should be defined in c++26" -# endif -# if __cpp_lib_bitset != 202306L -# error "__cpp_lib_bitset should have the value 202306L in c++26" -# endif +# ifndef __cpp_lib_bitset +# error "__cpp_lib_bitset should be defined in c++26" +# endif +# if __cpp_lib_bitset != 202306L +# error "__cpp_lib_bitset should have the value 202306L in c++26" +# endif -# ifndef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should be defined in c++26" -# endif -# if __cpp_lib_constexpr_bitset != 202207L -# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26" -# endif +# ifndef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should be defined in c++26" +# endif +# if __cpp_lib_constexpr_bitset != 202207L +# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 cc38cbacd51b7..52b02562dc5ab 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 @@ -5,126 +5,122 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_constexpr_charconv 202207L [C++23] - __cpp_lib_to_chars 201611L [C++17] - 202306L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should not be defined before c++23" +# endif -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined before c++17" -# endif +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should not be defined before c++23" +# endif -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined before c++17" -# endif +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should be defined in c++17" -# endif -# if __cpp_lib_to_chars != 201611L -# error "__cpp_lib_to_chars should have the value 201611L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifdef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should be defined in c++17" +# endif +# if __cpp_lib_to_chars != 201611L +# error "__cpp_lib_to_chars should have the value 201611L in c++17" +# endif +# else +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should be defined in c++20" -# endif -# if __cpp_lib_to_chars != 201611L -# error "__cpp_lib_to_chars should have the value 201611L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifdef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should be defined in c++20" +# endif +# if __cpp_lib_to_chars != 201611L +# error "__cpp_lib_to_chars should have the value 201611L in c++20" +# endif +# else +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should be defined in c++23" -# endif -# if __cpp_lib_constexpr_charconv != 202207L -# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should be defined in c++23" -# endif -# if __cpp_lib_to_chars != 201611L -# error "__cpp_lib_to_chars should have the value 201611L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifndef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should be defined in c++23" +# endif +# if __cpp_lib_constexpr_charconv != 202207L +# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should be defined in c++23" +# endif +# if __cpp_lib_to_chars != 201611L +# error "__cpp_lib_to_chars should have the value 201611L in c++23" +# endif +# else +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should be defined in c++26" -# endif -# if __cpp_lib_constexpr_charconv != 202207L -# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should be defined in c++26" -# endif -# if __cpp_lib_to_chars != 202306L -# error "__cpp_lib_to_chars should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifndef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should be defined in c++26" +# endif +# if __cpp_lib_constexpr_charconv != 202207L +# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should be defined in c++26" +# endif +# if __cpp_lib_to_chars != 202306L +# error "__cpp_lib_to_chars should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 0aaec6d1910aa..1453938b01da0 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 @@ -5,110 +5,107 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_chrono 201611L [C++17] - __cpp_lib_chrono_udls 201304L [C++14] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_chrono -# error "__cpp_lib_chrono should not be defined before c++17" -# endif +# ifdef __cpp_lib_chrono +# error "__cpp_lib_chrono should not be defined before c++17" +# endif -# ifdef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should not be defined before c++14" -# endif +# ifdef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should not be defined before c++14" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_chrono -# error "__cpp_lib_chrono should not be defined before c++17" -# endif +# ifdef __cpp_lib_chrono +# error "__cpp_lib_chrono should not be defined before c++17" +# endif -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++14" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++14" -# endif +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++14" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++14" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_chrono -# error "__cpp_lib_chrono should be defined in c++17" -# endif -# if __cpp_lib_chrono != 201611L -# error "__cpp_lib_chrono should have the value 201611L in c++17" -# endif +# ifndef __cpp_lib_chrono +# error "__cpp_lib_chrono should be defined in c++17" +# endif +# if __cpp_lib_chrono != 201611L +# error "__cpp_lib_chrono should have the value 201611L in c++17" +# endif -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++17" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++17" -# endif +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++17" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_chrono -# error "__cpp_lib_chrono should be defined in c++20" -# endif -# if __cpp_lib_chrono != 201611L -# error "__cpp_lib_chrono should have the value 201611L in c++20" -# endif +# ifndef __cpp_lib_chrono +# error "__cpp_lib_chrono should be defined in c++20" +# endif +# if __cpp_lib_chrono != 201611L +# error "__cpp_lib_chrono should have the value 201611L in c++20" +# endif -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++20" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++20" -# endif +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++20" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_chrono -# error "__cpp_lib_chrono should be defined in c++23" -# endif -# if __cpp_lib_chrono != 201611L -# error "__cpp_lib_chrono should have the value 201611L in c++23" -# endif +# ifndef __cpp_lib_chrono +# error "__cpp_lib_chrono should be defined in c++23" +# endif +# if __cpp_lib_chrono != 201611L +# error "__cpp_lib_chrono should have the value 201611L in c++23" +# endif -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++23" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++23" -# endif +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++23" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_chrono -# error "__cpp_lib_chrono should be defined in c++26" -# endif -# if __cpp_lib_chrono != 201611L -# error "__cpp_lib_chrono should have the value 201611L in c++26" -# endif +# ifndef __cpp_lib_chrono +# error "__cpp_lib_chrono should be defined in c++26" +# endif +# if __cpp_lib_chrono != 201611L +# error "__cpp_lib_chrono should have the value 201611L in c++26" +# endif -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++26" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++26" -# endif +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++26" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 898a73c985917..507c7ab6084f8 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 @@ -5,208 +5,203 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __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] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif -# ifdef __cpp_lib_hypot -# error "__cpp_lib_hypot should not be defined before c++17" -# endif +# ifdef __cpp_lib_hypot +# error "__cpp_lib_hypot should not be defined before c++17" +# endif -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined before c++17" -# endif +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif -# ifdef __cpp_lib_hypot -# error "__cpp_lib_hypot should not be defined before c++17" -# endif +# ifdef __cpp_lib_hypot +# error "__cpp_lib_hypot should not be defined before c++17" +# endif -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined before c++17" -# endif +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif - -# ifndef __cpp_lib_hypot -# error "__cpp_lib_hypot should be defined in c++17" -# endif -# if __cpp_lib_hypot != 201603L -# error "__cpp_lib_hypot should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should be defined in c++17" -# endif -# if __cpp_lib_math_special_functions != 201603L -# error "__cpp_lib_math_special_functions should have the value 201603L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif + +# ifndef __cpp_lib_hypot +# error "__cpp_lib_hypot should be defined in c++17" +# endif +# if __cpp_lib_hypot != 201603L +# error "__cpp_lib_hypot should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should be defined in c++17" +# endif +# if __cpp_lib_math_special_functions != 201603L +# error "__cpp_lib_math_special_functions should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif - -# ifndef __cpp_lib_hypot -# error "__cpp_lib_hypot should be defined in c++20" -# endif -# if __cpp_lib_hypot != 201603L -# error "__cpp_lib_hypot should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++20" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should be defined in c++20" -# endif -# if __cpp_lib_math_special_functions != 201603L -# error "__cpp_lib_math_special_functions should have the value 201603L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif + +# ifndef __cpp_lib_hypot +# error "__cpp_lib_hypot should be defined in c++20" +# endif +# if __cpp_lib_hypot != 201603L +# error "__cpp_lib_hypot should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++20" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should be defined in c++20" +# endif +# if __cpp_lib_math_special_functions != 201603L +# error "__cpp_lib_math_special_functions should have the value 201603L in c++20" +# endif +# else +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should be defined in c++23" -# endif -# if __cpp_lib_constexpr_cmath != 202202L -# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_hypot -# error "__cpp_lib_hypot should be defined in c++23" -# endif -# if __cpp_lib_hypot != 201603L -# error "__cpp_lib_hypot should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++23" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should be defined in c++23" -# endif -# if __cpp_lib_math_special_functions != 201603L -# error "__cpp_lib_math_special_functions should have the value 201603L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should be defined in c++23" +# endif +# if __cpp_lib_constexpr_cmath != 202202L +# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_hypot +# error "__cpp_lib_hypot should be defined in c++23" +# endif +# if __cpp_lib_hypot != 201603L +# error "__cpp_lib_hypot should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++23" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should be defined in c++23" +# endif +# if __cpp_lib_math_special_functions != 201603L +# error "__cpp_lib_math_special_functions should have the value 201603L in c++23" +# endif +# else +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should be defined in c++26" -# endif -# if __cpp_lib_constexpr_cmath != 202202L -# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_hypot -# error "__cpp_lib_hypot should be defined in c++26" -# endif -# if __cpp_lib_hypot != 201603L -# error "__cpp_lib_hypot should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++26" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should be defined in c++26" -# endif -# if __cpp_lib_math_special_functions != 201603L -# error "__cpp_lib_math_special_functions should have the value 201603L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should be defined in c++26" +# endif +# if __cpp_lib_constexpr_cmath != 202202L +# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_hypot +# error "__cpp_lib_hypot should be defined in c++26" +# endif +# if __cpp_lib_hypot != 201603L +# error "__cpp_lib_hypot should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++26" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should be defined in c++26" +# endif +# if __cpp_lib_math_special_functions != 201603L +# error "__cpp_lib_math_special_functions should have the value 201603L in c++26" +# endif +# else +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 1d61f43f9ee51..56759a88a7348 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 @@ -5,67 +5,65 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_three_way_comparison 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should not be defined before c++20" -# endif +# ifdef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should not be defined before c++20" -# endif +# ifdef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should not be defined before c++20" -# endif +# ifdef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should be defined in c++20" -# endif -# if __cpp_lib_three_way_comparison != 201907L -# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20" -# endif +# ifndef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should be defined in c++20" +# endif +# if __cpp_lib_three_way_comparison != 201907L +# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should be defined in c++23" -# endif -# if __cpp_lib_three_way_comparison != 201907L -# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23" -# endif +# ifndef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should be defined in c++23" +# endif +# if __cpp_lib_three_way_comparison != 201907L +# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should be defined in c++26" -# endif -# if __cpp_lib_three_way_comparison != 201907L -# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26" -# endif +# ifndef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should be defined in c++26" +# endif +# if __cpp_lib_three_way_comparison != 201907L +# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 3718a9e222f98..b5efa984b456a 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 @@ -5,107 +5,104 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_complex_udls 201309L [C++14] - __cpp_lib_constexpr_complex 201711L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should not be defined before c++14" -# endif +# ifdef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should not be defined before c++14" +# endif -# ifdef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++14" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++14" -# endif +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++14" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++14" +# endif -# ifdef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++17" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++17" -# endif +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++17" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++17" +# endif -# ifdef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++20" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++20" -# endif +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++20" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++20" +# endif -# ifndef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should be defined in c++20" -# endif -# if __cpp_lib_constexpr_complex != 201711L -# error "__cpp_lib_constexpr_complex should have the value 201711L in c++20" -# endif +# ifndef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should be defined in c++20" +# endif +# if __cpp_lib_constexpr_complex != 201711L +# error "__cpp_lib_constexpr_complex should have the value 201711L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++23" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++23" -# endif +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++23" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++23" +# endif -# ifndef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should be defined in c++23" -# endif -# if __cpp_lib_constexpr_complex != 201711L -# error "__cpp_lib_constexpr_complex should have the value 201711L in c++23" -# endif +# ifndef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should be defined in c++23" +# endif +# if __cpp_lib_constexpr_complex != 201711L +# error "__cpp_lib_constexpr_complex should have the value 201711L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++26" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++26" -# endif +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++26" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++26" +# endif -# ifndef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should be defined in c++26" -# endif -# if __cpp_lib_constexpr_complex != 201711L -# error "__cpp_lib_constexpr_complex should have the value 201711L in c++26" -# endif +# ifndef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should be defined in c++26" +# endif +# if __cpp_lib_constexpr_complex != 201711L +# error "__cpp_lib_constexpr_complex should have the value 201711L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 aa82b9ef87b87..d9b2c43ecbd12 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 @@ -5,67 +5,65 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_concepts 202002L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_concepts -# error "__cpp_lib_concepts should not be defined before c++20" -# endif +# ifdef __cpp_lib_concepts +# error "__cpp_lib_concepts should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_concepts -# error "__cpp_lib_concepts should not be defined before c++20" -# endif +# ifdef __cpp_lib_concepts +# error "__cpp_lib_concepts should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_concepts -# error "__cpp_lib_concepts should not be defined before c++20" -# endif +# ifdef __cpp_lib_concepts +# error "__cpp_lib_concepts should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_concepts -# error "__cpp_lib_concepts should be defined in c++20" -# endif -# if __cpp_lib_concepts != 202002L -# error "__cpp_lib_concepts should have the value 202002L in c++20" -# endif +# ifndef __cpp_lib_concepts +# error "__cpp_lib_concepts should be defined in c++20" +# endif +# if __cpp_lib_concepts != 202002L +# error "__cpp_lib_concepts should have the value 202002L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_concepts -# error "__cpp_lib_concepts should be defined in c++23" -# endif -# if __cpp_lib_concepts != 202002L -# error "__cpp_lib_concepts should have the value 202002L in c++23" -# endif +# ifndef __cpp_lib_concepts +# error "__cpp_lib_concepts should be defined in c++23" +# endif +# if __cpp_lib_concepts != 202002L +# error "__cpp_lib_concepts should have the value 202002L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_concepts -# error "__cpp_lib_concepts should be defined in c++26" -# endif -# if __cpp_lib_concepts != 202002L -# error "__cpp_lib_concepts should have the value 202002L in c++26" -# endif +# ifndef __cpp_lib_concepts +# error "__cpp_lib_concepts should be defined in c++26" +# endif +# if __cpp_lib_concepts != 202002L +# error "__cpp_lib_concepts should have the value 202002L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 eedc05f1a6c6b..b472b205f89d5 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 @@ -5,67 +5,65 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_coroutine 201902L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should not be defined before c++20" -# endif +# ifdef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should not be defined before c++20" -# endif +# ifdef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should not be defined before c++20" -# endif +# ifdef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should be defined in c++20" -# endif -# if __cpp_lib_coroutine != 201902L -# error "__cpp_lib_coroutine should have the value 201902L in c++20" -# endif +# ifndef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should be defined in c++20" +# endif +# if __cpp_lib_coroutine != 201902L +# error "__cpp_lib_coroutine should have the value 201902L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should be defined in c++23" -# endif -# if __cpp_lib_coroutine != 201902L -# error "__cpp_lib_coroutine should have the value 201902L in c++23" -# endif +# ifndef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should be defined in c++23" +# endif +# if __cpp_lib_coroutine != 201902L +# error "__cpp_lib_coroutine should have the value 201902L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should be defined in c++26" -# endif -# if __cpp_lib_coroutine != 201902L -# error "__cpp_lib_coroutine should have the value 201902L in c++26" -# endif +# ifndef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should be defined in c++26" +# endif +# if __cpp_lib_coroutine != 201902L +# error "__cpp_lib_coroutine should have the value 201902L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 8365f4e5efd70..ccc034418cde0 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 @@ -5,70 +5,68 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_byte 201603L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_byte -# error "__cpp_lib_byte should not be defined before c++17" -# endif +# ifdef __cpp_lib_byte +# error "__cpp_lib_byte should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_byte -# error "__cpp_lib_byte should not be defined before c++17" -# endif +# ifdef __cpp_lib_byte +# error "__cpp_lib_byte should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_byte -# error "__cpp_lib_byte should be defined in c++17" -# endif -# if __cpp_lib_byte != 201603L -# error "__cpp_lib_byte should have the value 201603L in c++17" -# endif +# ifndef __cpp_lib_byte +# error "__cpp_lib_byte should be defined in c++17" +# endif +# if __cpp_lib_byte != 201603L +# error "__cpp_lib_byte should have the value 201603L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_byte -# error "__cpp_lib_byte should be defined in c++20" -# endif -# if __cpp_lib_byte != 201603L -# error "__cpp_lib_byte should have the value 201603L in c++20" -# endif +# ifndef __cpp_lib_byte +# error "__cpp_lib_byte should be defined in c++20" +# endif +# if __cpp_lib_byte != 201603L +# error "__cpp_lib_byte should have the value 201603L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_byte -# error "__cpp_lib_byte should be defined in c++23" -# endif -# if __cpp_lib_byte != 201603L -# error "__cpp_lib_byte should have the value 201603L in c++23" -# endif +# ifndef __cpp_lib_byte +# error "__cpp_lib_byte should be defined in c++23" +# endif +# if __cpp_lib_byte != 201603L +# error "__cpp_lib_byte should have the value 201603L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_byte -# error "__cpp_lib_byte should be defined in c++26" -# endif -# if __cpp_lib_byte != 201603L -# error "__cpp_lib_byte should have the value 201603L in c++26" -# endif +# ifndef __cpp_lib_byte +# error "__cpp_lib_byte should be defined in c++26" +# endif +# if __cpp_lib_byte != 201603L +# error "__cpp_lib_byte should have the value 201603L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 610c8c0265216..f250798c129ea 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 @@ -5,76 +5,74 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_constexpr_cmath 202202L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should be defined in c++23" -# endif -# if __cpp_lib_constexpr_cmath != 202202L -# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should be defined in c++23" +# endif +# if __cpp_lib_constexpr_cmath != 202202L +# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should be defined in c++26" -# endif -# if __cpp_lib_constexpr_cmath != 202202L -# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should be defined in c++26" +# endif +# if __cpp_lib_constexpr_cmath != 202202L +# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp index 345acf1e599d4..675c918cac417 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/cstring.version.compile.pass.cpp @@ -5,67 +5,65 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_freestanding_cstring 202306L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should be defined in c++26" -# endif -# if __cpp_lib_freestanding_cstring != 202306L -# error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should be defined in c++26" +# endif +# if __cpp_lib_freestanding_cstring != 202306L +# error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 d0e4ac130c60e..eff8689be9fb8 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 @@ -5,206 +5,200 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_containers_ranges 202202L [C++23] - __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] - __cpp_lib_erase_if 202002L [C++20] - __cpp_lib_nonmember_container_access 201411L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif #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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" -# endif -# if __cpp_lib_default_template_type_for_algorithm_values != 202403L -# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" +# endif +# if __cpp_lib_default_template_type_for_algorithm_values != 202403L +# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 f8a4da7fd1bd5..60d6418c7459a 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 @@ -5,70 +5,68 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_uncaught_exceptions 201411L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should not be defined before c++17" -# endif +# ifdef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should not be defined before c++17" -# endif +# ifdef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should be defined in c++17" -# endif -# if __cpp_lib_uncaught_exceptions != 201411L -# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should be defined in c++17" +# endif +# if __cpp_lib_uncaught_exceptions != 201411L +# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should be defined in c++20" -# endif -# if __cpp_lib_uncaught_exceptions != 201411L -# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should be defined in c++20" +# endif +# if __cpp_lib_uncaught_exceptions != 201411L +# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should be defined in c++23" -# endif -# if __cpp_lib_uncaught_exceptions != 201411L -# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should be defined in c++23" +# endif +# if __cpp_lib_uncaught_exceptions != 201411L +# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should be defined in c++26" -# endif -# if __cpp_lib_uncaught_exceptions != 201411L -# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should be defined in c++26" +# endif +# if __cpp_lib_uncaught_exceptions != 201411L +# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 d3c6d7b158eba..b843aab42e6eb 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 @@ -5,129 +5,125 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_execution 201603L [C++17] - 201902L [C++20] - __cpp_lib_senders 202406L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined before c++17" -# endif +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined before c++17" +# endif -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined before c++17" -# endif +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined before c++17" +# endif -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_execution -# error "__cpp_lib_execution should be defined in c++17" -# endif -# if __cpp_lib_execution != 201603L -# error "__cpp_lib_execution should have the value 201603L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_execution +# error "__cpp_lib_execution should be defined in c++17" +# endif +# if __cpp_lib_execution != 201603L +# error "__cpp_lib_execution should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_execution -# error "__cpp_lib_execution should be defined in c++20" -# endif -# if __cpp_lib_execution != 201902L -# error "__cpp_lib_execution should have the value 201902L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_execution +# error "__cpp_lib_execution should be defined in c++20" +# endif +# if __cpp_lib_execution != 201902L +# error "__cpp_lib_execution should have the value 201902L in c++20" +# endif +# else +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_execution -# error "__cpp_lib_execution should be defined in c++23" -# endif -# if __cpp_lib_execution != 201902L -# error "__cpp_lib_execution should have the value 201902L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_execution +# error "__cpp_lib_execution should be defined in c++23" +# endif +# if __cpp_lib_execution != 201902L +# error "__cpp_lib_execution should have the value 201902L in c++23" +# endif +# else +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_execution -# error "__cpp_lib_execution should be defined in c++26" -# endif -# if __cpp_lib_execution != 201902L -# error "__cpp_lib_execution should have the value 201902L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_senders -# error "__cpp_lib_senders should be defined in c++26" -# endif -# if __cpp_lib_senders != 202406L -# error "__cpp_lib_senders should have the value 202406L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_execution +# error "__cpp_lib_execution should be defined in c++26" +# endif +# if __cpp_lib_execution != 201902L +# error "__cpp_lib_execution should have the value 201902L in c++26" +# endif +# else +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_senders +# error "__cpp_lib_senders should be defined in c++26" +# endif +# if __cpp_lib_senders != 202406L +# error "__cpp_lib_senders should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 175e9501eb958..d58f726f66e2f 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 @@ -5,98 +5,95 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_expected 202211L [C++23] - __cpp_lib_freestanding_expected 202311L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_expected -# error "__cpp_lib_expected should not be defined before c++23" -# endif +# ifdef __cpp_lib_expected +# error "__cpp_lib_expected should not be defined before c++23" +# endif -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_expected -# error "__cpp_lib_expected should not be defined before c++23" -# endif +# ifdef __cpp_lib_expected +# error "__cpp_lib_expected should not be defined before c++23" +# endif -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_expected -# error "__cpp_lib_expected should not be defined before c++23" -# endif +# ifdef __cpp_lib_expected +# error "__cpp_lib_expected should not be defined before c++23" +# endif -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_expected -# error "__cpp_lib_expected should not be defined before c++23" -# endif +# ifdef __cpp_lib_expected +# error "__cpp_lib_expected should not be defined before c++23" +# endif -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_expected -# error "__cpp_lib_expected should be defined in c++23" -# endif -# if __cpp_lib_expected != 202211L -# error "__cpp_lib_expected should have the value 202211L in c++23" -# endif +# ifndef __cpp_lib_expected +# error "__cpp_lib_expected should be defined in c++23" +# endif +# if __cpp_lib_expected != 202211L +# error "__cpp_lib_expected should have the value 202211L in c++23" +# endif -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_expected -# error "__cpp_lib_expected should be defined in c++26" -# endif -# if __cpp_lib_expected != 202211L -# error "__cpp_lib_expected should have the value 202211L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should be defined in c++26" -# endif -# if __cpp_lib_freestanding_expected != 202311L -# error "__cpp_lib_freestanding_expected should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifndef __cpp_lib_expected +# error "__cpp_lib_expected should be defined in c++26" +# endif +# if __cpp_lib_expected != 202211L +# error "__cpp_lib_expected should have the value 202211L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should be defined in c++26" +# endif +# if __cpp_lib_freestanding_expected != 202311L +# error "__cpp_lib_freestanding_expected should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 1a95acd3683d2..98acf8bb602ca 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-filesystem @@ -17,170 +15,168 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_char8_t 201907L [C++20] - __cpp_lib_filesystem 201703L [C++17] - __cpp_lib_format_path 202403L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined before c++17" -# endif +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined before c++17" +# endif -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined before c++17" -# endif +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined before c++17" +# endif -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) -# ifndef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should be defined in c++17" -# endif -# if __cpp_lib_filesystem != 201703L -# error "__cpp_lib_filesystem should have the value 201703L in c++17" -# endif -# else -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) +# ifndef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should be defined in c++17" +# endif +# if __cpp_lib_filesystem != 201703L +# error "__cpp_lib_filesystem should have the value 201703L in c++17" +# endif +# else +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) -# ifndef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should be defined in c++20" -# endif -# if __cpp_lib_filesystem != 201703L -# error "__cpp_lib_filesystem should have the value 201703L in c++20" -# endif -# else -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) +# ifndef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should be defined in c++20" +# endif +# if __cpp_lib_filesystem != 201703L +# error "__cpp_lib_filesystem should have the value 201703L in c++20" +# endif +# else +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) -# ifndef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should be defined in c++23" -# endif -# if __cpp_lib_filesystem != 201703L -# error "__cpp_lib_filesystem should have the value 201703L in c++23" -# endif -# else -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) +# ifndef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should be defined in c++23" +# endif +# if __cpp_lib_filesystem != 201703L +# error "__cpp_lib_filesystem should have the value 201703L in c++23" +# endif +# else +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) -# ifndef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should be defined in c++26" -# endif -# if __cpp_lib_filesystem != 201703L -# error "__cpp_lib_filesystem should have the value 201703L in c++26" -# endif -# else -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_format_path -# error "__cpp_lib_format_path should be defined in c++26" -# endif -# if __cpp_lib_format_path != 202403L -# error "__cpp_lib_format_path should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) +# ifndef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should be defined in c++26" +# endif +# if __cpp_lib_filesystem != 201703L +# error "__cpp_lib_filesystem should have the value 201703L in c++26" +# endif +# else +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_format_path +# error "__cpp_lib_format_path should be defined in c++26" +# endif +# if __cpp_lib_format_path != 202403L +# error "__cpp_lib_format_path should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp index 0add849312d5e..19e2fd79a4295 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_map.version.compile.pass.cpp @@ -5,64 +5,62 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_flat_map 202207L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should not be defined before c++23" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should be defined in c++23" -# endif -# if __cpp_lib_flat_map != 202207L -# error "__cpp_lib_flat_map should have the value 202207L in c++23" -# endif +# ifndef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should be defined in c++23" +# endif +# if __cpp_lib_flat_map != 202207L +# error "__cpp_lib_flat_map should have the value 202207L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should be defined in c++26" -# endif -# if __cpp_lib_flat_map != 202207L -# error "__cpp_lib_flat_map should have the value 202207L in c++26" -# endif +# ifndef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should be defined in c++26" +# endif +# if __cpp_lib_flat_map != 202207L +# error "__cpp_lib_flat_map should have the value 202207L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp index 1d96845288b29..d078f9bda23c9 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp @@ -5,64 +5,62 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_flat_set 202207L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should not be defined before c++23" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should be defined in c++23" -# endif -# if __cpp_lib_flat_set != 202207L -# error "__cpp_lib_flat_set should have the value 202207L in c++23" -# endif +# ifndef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should be defined in c++23" +# endif +# if __cpp_lib_flat_set != 202207L +# error "__cpp_lib_flat_set should have the value 202207L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should be defined in c++26" -# endif -# if __cpp_lib_flat_set != 202207L -# error "__cpp_lib_flat_set should have the value 202207L in c++26" -# endif +# ifndef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should be defined in c++26" +# endif +# if __cpp_lib_flat_set != 202207L +# error "__cpp_lib_flat_set should have the value 202207L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 6a96325661346..3fa4334143b1a 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 @@ -5,150 +5,146 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_format 202110L [C++20] - __cpp_lib_format_ranges 202207L [C++23] - __cpp_lib_format_uchar 202311L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined before c++20" -# endif +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined before c++20" +# endif -# ifdef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should not be defined before c++20" -# endif +# ifdef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined before c++20" -# endif +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined before c++20" +# endif -# ifdef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should not be defined before c++20" -# endif +# ifdef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined before c++20" -# endif +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined before c++20" +# endif -# ifdef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should not be defined before c++20" -# endif +# ifdef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_format -# error "__cpp_lib_format should be defined in c++20" -# endif -# if __cpp_lib_format != 202110L -# error "__cpp_lib_format should have the value 202110L in c++20" -# endif -# else -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif - -# ifdef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should not be defined before c++23" -# endif - -# ifndef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should be defined in c++20" -# endif -# if __cpp_lib_format_uchar != 202311L -# error "__cpp_lib_format_uchar should have the value 202311L in c++20" -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_format +# error "__cpp_lib_format should be defined in c++20" +# endif +# if __cpp_lib_format != 202110L +# error "__cpp_lib_format should have the value 202110L in c++20" +# endif +# else +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif + +# ifdef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should not be defined before c++23" +# endif + +# ifndef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should be defined in c++20" +# endif +# if __cpp_lib_format_uchar != 202311L +# error "__cpp_lib_format_uchar should have the value 202311L in c++20" +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_format -# error "__cpp_lib_format should be defined in c++23" -# endif -# if __cpp_lib_format != 202110L -# error "__cpp_lib_format should have the value 202110L in c++23" -# endif -# else -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif - -# ifndef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should be defined in c++23" -# endif -# if __cpp_lib_format_ranges != 202207L -# error "__cpp_lib_format_ranges should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should be defined in c++23" -# endif -# if __cpp_lib_format_uchar != 202311L -# error "__cpp_lib_format_uchar should have the value 202311L in c++23" -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_format +# error "__cpp_lib_format should be defined in c++23" +# endif +# if __cpp_lib_format != 202110L +# error "__cpp_lib_format should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif + +# ifndef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should be defined in c++23" +# endif +# if __cpp_lib_format_ranges != 202207L +# error "__cpp_lib_format_ranges should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should be defined in c++23" +# endif +# if __cpp_lib_format_uchar != 202311L +# error "__cpp_lib_format_uchar should have the value 202311L in c++23" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_format -# error "__cpp_lib_format should be defined in c++26" -# endif -# if __cpp_lib_format != 202110L -# error "__cpp_lib_format should have the value 202110L in c++26" -# endif -# else -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif - -# ifndef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should be defined in c++26" -# endif -# if __cpp_lib_format_ranges != 202207L -# error "__cpp_lib_format_ranges should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should be defined in c++26" -# endif -# if __cpp_lib_format_uchar != 202311L -# error "__cpp_lib_format_uchar should have the value 202311L in c++26" -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_format +# error "__cpp_lib_format should be defined in c++26" +# endif +# if __cpp_lib_format != 202110L +# error "__cpp_lib_format should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif + +# ifndef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should be defined in c++26" +# endif +# if __cpp_lib_format_ranges != 202207L +# error "__cpp_lib_format_ranges should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should be defined in c++26" +# endif +# if __cpp_lib_format_uchar != 202311L +# error "__cpp_lib_format_uchar should have the value 202311L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 bcb606451b27f..31b3e900aabcd 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 @@ -5,277 +5,269 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_containers_ranges 202202L [C++23] - __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] - __cpp_lib_erase_if 202002L [C++20] - __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] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" -# endif +# ifdef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" +# endif -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" -# endif +# ifdef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" +# endif -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++17" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17" -# endif - -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++17" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17" +# endif + +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif #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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++20" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20" -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++20" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++20" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20" +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++20" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++23" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23" -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++23" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++23" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23" +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++23" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" -# endif -# if __cpp_lib_default_template_type_for_algorithm_values != 202403L -# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++26" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26" -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++26" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" +# endif +# if __cpp_lib_default_template_type_for_algorithm_values != 202403L +# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++26" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26" +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++26" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/fstream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/fstream.version.compile.pass.cpp index d75ea4c37c89f..ee32346d61080 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/fstream.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/fstream.version.compile.pass.cpp @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,57 +15,57 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_fstream_native_handle 202306L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION) -# ifndef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should be defined in c++26" -# endif -# if __cpp_lib_fstream_native_handle != 202306L -# error "__cpp_lib_fstream_native_handle should have the value 202306L in c++26" -# endif -# else -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION) +# ifndef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should be defined in c++26" +# endif +# if __cpp_lib_fstream_native_handle != 202306L +# error "__cpp_lib_fstream_native_handle should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 e19ed321515ec..8dbbbf432ddbf 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 @@ -5,565 +5,545 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_bind_back 202202L [C++23] - __cpp_lib_bind_front 201907L [C++20] - 202306L [C++26] - __cpp_lib_boyer_moore_searcher 201603L [C++17] - __cpp_lib_constexpr_functional 201907L [C++20] - __cpp_lib_copyable_function 202306L [C++26] - __cpp_lib_function_ref 202306L [C++26] - __cpp_lib_invoke 201411L [C++17] - __cpp_lib_invoke_r 202106L [C++23] - __cpp_lib_move_only_function 202110L [C++23] - __cpp_lib_not_fn 201603L [C++17] - 202306L [C++26] - __cpp_lib_ranges 202110L [C++20] - 202406L [C++23] - __cpp_lib_reference_wrapper 202403L [C++26] - __cpp_lib_result_of_sfinae 201210L [C++14] - __cpp_lib_transparent_operators 201210L [C++14] - 201510L [C++17] - __cpp_lib_unwrap_ref 201811L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should not be defined before c++23" -# endif +# ifdef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should not be defined before c++23" +# endif -# ifdef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should not be defined before c++20" -# endif +# ifdef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should not be defined before c++20" +# endif -# ifdef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17" -# endif +# ifdef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should not be defined before c++20" +# endif -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif -# ifdef __cpp_lib_invoke -# error "__cpp_lib_invoke should not be defined before c++17" -# endif +# ifdef __cpp_lib_invoke +# error "__cpp_lib_invoke should not be defined before c++17" +# endif -# ifdef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should not be defined before c++23" -# endif +# ifdef __cpp_lib_invoke_r +# 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++23" -# endif +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined before c++23" +# endif -# ifdef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should not be defined before c++17" -# endif +# ifdef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should not be defined before c++17" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif -# ifdef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should not be defined before c++14" -# endif +# ifdef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should not be defined before c++14" +# endif -# ifdef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should not be defined before c++14" -# endif +# ifdef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should not be defined before c++14" +# endif -# ifdef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should not be defined before c++20" -# endif +# ifdef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should not be defined before c++23" -# endif +# ifdef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should not be defined before c++23" +# endif -# ifdef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should not be defined before c++20" -# endif +# ifdef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should not be defined before c++20" +# endif -# ifdef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17" -# endif +# ifdef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should not be defined before c++20" +# endif -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif -# ifdef __cpp_lib_invoke -# error "__cpp_lib_invoke should not be defined before c++17" -# endif +# ifdef __cpp_lib_invoke +# error "__cpp_lib_invoke should not be defined before c++17" +# endif -# ifdef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should not be defined before c++23" -# endif +# ifdef __cpp_lib_invoke_r +# 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++23" -# endif +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined before c++23" +# endif -# ifdef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should not be defined before c++17" -# endif +# ifdef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should not be defined before c++17" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++14" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14" -# endif +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++14" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14" +# endif -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++14" -# endif -# if __cpp_lib_transparent_operators != 201210L -# error "__cpp_lib_transparent_operators should have the value 201210L in c++14" -# endif +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++14" +# endif +# if __cpp_lib_transparent_operators != 201210L +# error "__cpp_lib_transparent_operators should have the value 201210L in c++14" +# endif -# ifdef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should not be defined before c++20" -# endif +# ifdef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should not be defined before c++23" -# endif - -# ifdef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should not be defined before c++20" -# endif - -# ifndef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should be defined in c++17" -# endif -# if __cpp_lib_boyer_moore_searcher != 201603L -# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should not be defined before c++20" -# endif - -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif - -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif - -# ifndef __cpp_lib_invoke -# error "__cpp_lib_invoke should be defined in c++17" -# endif -# if __cpp_lib_invoke != 201411L -# error "__cpp_lib_invoke should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should not be defined before c++23" -# endif - -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined before c++23" -# endif - -# ifndef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should be defined in c++17" -# endif -# if __cpp_lib_not_fn != 201603L -# error "__cpp_lib_not_fn should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif - -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++17" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++17" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++17" -# endif - -# ifdef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should not be defined before c++20" -# endif +# ifdef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should not be defined before c++23" +# endif + +# ifdef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should not be defined before c++20" +# endif + +# ifndef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should be defined in c++17" +# endif +# if __cpp_lib_boyer_moore_searcher != 201603L +# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should not be defined before c++20" +# endif + +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif + +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif + +# ifndef __cpp_lib_invoke +# error "__cpp_lib_invoke should be defined in c++17" +# endif +# if __cpp_lib_invoke != 201411L +# error "__cpp_lib_invoke should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should not be defined before c++23" +# endif + +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined before c++23" +# endif + +# ifndef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should be defined in c++17" +# endif +# if __cpp_lib_not_fn != 201603L +# error "__cpp_lib_not_fn should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif + +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++17" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++17" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++17" +# endif + +# ifdef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should not be defined before c++23" -# endif - -# ifndef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should be defined in c++20" -# endif -# if __cpp_lib_bind_front != 201907L -# error "__cpp_lib_bind_front should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should be defined in c++20" -# endif -# if __cpp_lib_boyer_moore_searcher != 201603L -# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should be defined in c++20" -# endif -# if __cpp_lib_constexpr_functional != 201907L -# error "__cpp_lib_constexpr_functional should have the value 201907L in c++20" -# endif - -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif - -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif - -# ifndef __cpp_lib_invoke -# error "__cpp_lib_invoke should be defined in c++20" -# endif -# if __cpp_lib_invoke != 201411L -# error "__cpp_lib_invoke should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should not be defined before c++23" -# endif - -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined before c++23" -# endif - -# ifndef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should be defined in c++20" -# endif -# if __cpp_lib_not_fn != 201603L -# error "__cpp_lib_not_fn should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++20" -# endif -# if __cpp_lib_ranges != 202110L -# error "__cpp_lib_ranges should have the value 202110L in c++20" -# endif - -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++20" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++20" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++20" -# endif - -# ifndef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should be defined in c++20" -# endif -# if __cpp_lib_unwrap_ref != 201811L -# error "__cpp_lib_unwrap_ref should have the value 201811L in c++20" -# endif +# ifdef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should not be defined before c++23" +# endif + +# ifndef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should be defined in c++20" +# endif +# if __cpp_lib_bind_front != 201907L +# error "__cpp_lib_bind_front should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should be defined in c++20" +# endif +# if __cpp_lib_boyer_moore_searcher != 201603L +# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should be defined in c++20" +# endif +# if __cpp_lib_constexpr_functional != 201907L +# error "__cpp_lib_constexpr_functional should have the value 201907L in c++20" +# endif + +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif + +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif + +# ifndef __cpp_lib_invoke +# error "__cpp_lib_invoke should be defined in c++20" +# endif +# if __cpp_lib_invoke != 201411L +# error "__cpp_lib_invoke should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should not be defined before c++23" +# endif + +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined before c++23" +# endif + +# ifndef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should be defined in c++20" +# endif +# if __cpp_lib_not_fn != 201603L +# error "__cpp_lib_not_fn should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++20" +# endif +# if __cpp_lib_ranges != 202110L +# error "__cpp_lib_ranges should have the value 202110L in c++20" +# endif + +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++20" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++20" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++20" +# endif + +# ifndef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should be defined in c++20" +# endif +# if __cpp_lib_unwrap_ref != 201811L +# error "__cpp_lib_unwrap_ref should have the value 201811L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should be defined in c++23" -# endif -# if __cpp_lib_bind_back != 202202L -# error "__cpp_lib_bind_back should have the value 202202L in c++23" -# endif - -# ifndef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should be defined in c++23" -# endif -# if __cpp_lib_bind_front != 201907L -# error "__cpp_lib_bind_front should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should be defined in c++23" -# endif -# if __cpp_lib_boyer_moore_searcher != 201603L -# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should be defined in c++23" -# endif -# if __cpp_lib_constexpr_functional != 201907L -# error "__cpp_lib_constexpr_functional should have the value 201907L in c++23" -# endif - -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif - -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif - -# ifndef __cpp_lib_invoke -# error "__cpp_lib_invoke should be defined in c++23" -# endif -# if __cpp_lib_invoke != 201411L -# error "__cpp_lib_invoke should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should be defined in c++23" -# endif -# if __cpp_lib_invoke_r != 202106L -# error "__cpp_lib_invoke_r should have the value 202106L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should be defined in c++23" -# endif -# if __cpp_lib_move_only_function != 202110L -# error "__cpp_lib_move_only_function should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should be defined in c++23" -# endif -# if __cpp_lib_not_fn != 201603L -# error "__cpp_lib_not_fn should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++23" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++23" -# endif - -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++23" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++23" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++23" -# endif - -# ifndef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should be defined in c++23" -# endif -# if __cpp_lib_unwrap_ref != 201811L -# error "__cpp_lib_unwrap_ref should have the value 201811L in c++23" -# endif +# ifndef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should be defined in c++23" +# endif +# if __cpp_lib_bind_back != 202202L +# error "__cpp_lib_bind_back should have the value 202202L in c++23" +# endif + +# ifndef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should be defined in c++23" +# endif +# if __cpp_lib_bind_front != 201907L +# error "__cpp_lib_bind_front should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should be defined in c++23" +# endif +# if __cpp_lib_boyer_moore_searcher != 201603L +# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should be defined in c++23" +# endif +# if __cpp_lib_constexpr_functional != 201907L +# error "__cpp_lib_constexpr_functional should have the value 201907L in c++23" +# endif + +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif + +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif + +# ifndef __cpp_lib_invoke +# error "__cpp_lib_invoke should be defined in c++23" +# endif +# if __cpp_lib_invoke != 201411L +# error "__cpp_lib_invoke should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should be defined in c++23" +# endif +# if __cpp_lib_invoke_r != 202106L +# error "__cpp_lib_invoke_r should have the value 202106L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should be defined in c++23" +# endif +# if __cpp_lib_move_only_function != 202110L +# error "__cpp_lib_move_only_function should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should be defined in c++23" +# endif +# if __cpp_lib_not_fn != 201603L +# error "__cpp_lib_not_fn should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++23" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++23" +# endif + +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++23" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++23" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++23" +# endif + +# ifndef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should be defined in c++23" +# endif +# if __cpp_lib_unwrap_ref != 201811L +# error "__cpp_lib_unwrap_ref should have the value 201811L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should be defined in c++26" -# endif -# if __cpp_lib_bind_back != 202202L -# error "__cpp_lib_bind_back should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should be defined in c++26" -# endif -# if __cpp_lib_bind_front != 202306L -# error "__cpp_lib_bind_front should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should be defined in c++26" -# endif -# if __cpp_lib_boyer_moore_searcher != 201603L -# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should be defined in c++26" -# endif -# if __cpp_lib_constexpr_functional != 201907L -# error "__cpp_lib_constexpr_functional should have the value 201907L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should be defined in c++26" -# endif -# if __cpp_lib_copyable_function != 202306L -# error "__cpp_lib_copyable_function should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should be defined in c++26" -# endif -# if __cpp_lib_function_ref != 202306L -# error "__cpp_lib_function_ref should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_invoke -# error "__cpp_lib_invoke should be defined in c++26" -# endif -# if __cpp_lib_invoke != 201411L -# error "__cpp_lib_invoke should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should be defined in c++26" -# endif -# if __cpp_lib_invoke_r != 202106L -# error "__cpp_lib_invoke_r should have the value 202106L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should be defined in c++26" -# endif -# if __cpp_lib_move_only_function != 202110L -# error "__cpp_lib_move_only_function should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should be defined in c++26" -# endif -# if __cpp_lib_not_fn != 202306L -# error "__cpp_lib_not_fn should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++26" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++26" -# endif - -# ifndef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should be defined in c++26" -# endif -# if __cpp_lib_reference_wrapper != 202403L -# error "__cpp_lib_reference_wrapper should have the value 202403L in c++26" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++26" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++26" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++26" -# endif - -# ifndef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should be defined in c++26" -# endif -# if __cpp_lib_unwrap_ref != 201811L -# error "__cpp_lib_unwrap_ref should have the value 201811L in c++26" -# endif +# ifndef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should be defined in c++26" +# endif +# if __cpp_lib_bind_back != 202202L +# error "__cpp_lib_bind_back should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should be defined in c++26" +# endif +# if __cpp_lib_bind_front != 202306L +# error "__cpp_lib_bind_front should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should be defined in c++26" +# endif +# if __cpp_lib_boyer_moore_searcher != 201603L +# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should be defined in c++26" +# endif +# if __cpp_lib_constexpr_functional != 201907L +# error "__cpp_lib_constexpr_functional should have the value 201907L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should be defined in c++26" +# endif +# if __cpp_lib_copyable_function != 202306L +# error "__cpp_lib_copyable_function should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should be defined in c++26" +# endif +# if __cpp_lib_function_ref != 202306L +# error "__cpp_lib_function_ref should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_invoke +# error "__cpp_lib_invoke should be defined in c++26" +# endif +# if __cpp_lib_invoke != 201411L +# error "__cpp_lib_invoke should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should be defined in c++26" +# endif +# if __cpp_lib_invoke_r != 202106L +# error "__cpp_lib_invoke_r should have the value 202106L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should be defined in c++26" +# endif +# if __cpp_lib_move_only_function != 202110L +# error "__cpp_lib_move_only_function should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should be defined in c++26" +# endif +# if __cpp_lib_not_fn != 202306L +# error "__cpp_lib_not_fn should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++26" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++26" +# endif + +# ifndef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should be defined in c++26" +# endif +# if __cpp_lib_reference_wrapper != 202403L +# error "__cpp_lib_reference_wrapper should have the value 202403L in c++26" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++26" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++26" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++26" +# endif + +# ifndef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should be defined in c++26" +# endif +# if __cpp_lib_unwrap_ref != 201811L +# error "__cpp_lib_unwrap_ref should have the value 201811L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 f3ac7a0a572f0..37deba7c9661a 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,93 +15,93 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_quoted_string_io 201304L [C++14] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined before c++14" -# endif +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined before c++14" +# endif #elif TEST_STD_VER == 14 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++14" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++14" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++14" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++14" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif #elif TEST_STD_VER == 17 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++17" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++17" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++17" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++17" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++20" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++20" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++20" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++20" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++23" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++23" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++23" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++23" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++26" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++26" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++26" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++26" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ios.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ios.version.compile.pass.cpp index f245815eaa40d..179c3ce066b6f 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/ios.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ios.version.compile.pass.cpp @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,54 +15,54 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_ios_noreplace 202207L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should not be defined before c++23" -# endif +# ifdef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should not be defined before c++23" -# endif +# ifdef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should not be defined before c++23" -# endif +# ifdef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should not be defined before c++23" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should not be defined before c++23" -# endif +# ifdef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should be defined in c++23" -# endif -# if __cpp_lib_ios_noreplace != 202207L -# error "__cpp_lib_ios_noreplace should have the value 202207L in c++23" -# endif +# ifndef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should be defined in c++23" +# endif +# if __cpp_lib_ios_noreplace != 202207L +# error "__cpp_lib_ios_noreplace should have the value 202207L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should be defined in c++26" -# endif -# if __cpp_lib_ios_noreplace != 202207L -# error "__cpp_lib_ios_noreplace should have the value 202207L in c++26" -# endif +# ifndef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should be defined in c++26" +# endif +# if __cpp_lib_ios_noreplace != 202207L +# error "__cpp_lib_ios_noreplace should have the value 202207L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 fe3e6490386de..46238896f79c3 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,75 +15,75 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_char8_t 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 a756d10fcc375..75dcb18a5428c 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 @@ -5,325 +5,314 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_array_constexpr 201603L [C++17] - 201811L [C++20] - __cpp_lib_constexpr_iterator 201811L [C++20] - __cpp_lib_make_reverse_iterator 201402L [C++14] - __cpp_lib_move_iterator_concept 202207L [C++20] - __cpp_lib_nonmember_container_access 201411L [C++17] - __cpp_lib_null_iterators 201304L [C++14] - __cpp_lib_ranges 202110L [C++20] - 202406L [C++23] - __cpp_lib_ssize 201902L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should not be defined before c++20" +# endif -# ifdef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should not be defined before c++14" -# endif +# ifdef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should not be defined before c++14" +# endif -# ifdef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should not be defined before c++20" -# endif +# ifdef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should not be defined before c++14" -# endif +# ifdef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should not be defined before c++14" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_ssize -# error "__cpp_lib_ssize should not be defined before c++20" -# endif +# ifdef __cpp_lib_ssize +# error "__cpp_lib_ssize should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should not be defined before c++20" +# endif -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++14" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++14" -# endif +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++14" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++14" +# endif -# ifdef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should not be defined before c++20" -# endif +# ifdef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++14" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++14" -# endif +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++14" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++14" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_ssize -# error "__cpp_lib_ssize should not be defined before c++20" -# endif +# ifdef __cpp_lib_ssize +# error "__cpp_lib_ssize should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++17" -# endif -# if __cpp_lib_array_constexpr != 201603L -# error "__cpp_lib_array_constexpr should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should not be defined before c++20" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++17" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17" -# endif - -# ifdef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should not be defined before c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++17" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif - -# ifdef __cpp_lib_ssize -# error "__cpp_lib_ssize should not be defined before c++20" -# endif +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++17" +# endif +# if __cpp_lib_array_constexpr != 201603L +# error "__cpp_lib_array_constexpr should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should not be defined before c++20" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++17" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17" +# endif + +# ifdef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should not be defined before c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++17" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif + +# ifdef __cpp_lib_ssize +# error "__cpp_lib_ssize should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++20" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should be defined in c++20" -# endif -# if __cpp_lib_constexpr_iterator != 201811L -# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++20" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20" -# endif - -# ifndef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should be defined in c++20" -# endif -# if __cpp_lib_move_iterator_concept != 202207L -# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++20" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++20" -# endif -# if __cpp_lib_ranges != 202110L -# error "__cpp_lib_ranges should have the value 202110L in c++20" -# endif - -# ifndef __cpp_lib_ssize -# error "__cpp_lib_ssize should be defined in c++20" -# endif -# if __cpp_lib_ssize != 201902L -# error "__cpp_lib_ssize should have the value 201902L in c++20" -# endif +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++20" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should be defined in c++20" +# endif +# if __cpp_lib_constexpr_iterator != 201811L +# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++20" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20" +# endif + +# ifndef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should be defined in c++20" +# endif +# if __cpp_lib_move_iterator_concept != 202207L +# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++20" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++20" +# endif +# if __cpp_lib_ranges != 202110L +# error "__cpp_lib_ranges should have the value 202110L in c++20" +# endif + +# ifndef __cpp_lib_ssize +# error "__cpp_lib_ssize should be defined in c++20" +# endif +# if __cpp_lib_ssize != 201902L +# error "__cpp_lib_ssize should have the value 201902L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++23" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should be defined in c++23" -# endif -# if __cpp_lib_constexpr_iterator != 201811L -# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++23" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23" -# endif - -# ifndef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should be defined in c++23" -# endif -# if __cpp_lib_move_iterator_concept != 202207L -# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++23" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++23" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++23" -# endif - -# ifndef __cpp_lib_ssize -# error "__cpp_lib_ssize should be defined in c++23" -# endif -# if __cpp_lib_ssize != 201902L -# error "__cpp_lib_ssize should have the value 201902L in c++23" -# endif +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++23" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should be defined in c++23" +# endif +# if __cpp_lib_constexpr_iterator != 201811L +# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++23" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23" +# endif + +# ifndef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should be defined in c++23" +# endif +# if __cpp_lib_move_iterator_concept != 202207L +# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++23" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++23" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++23" +# endif + +# ifndef __cpp_lib_ssize +# error "__cpp_lib_ssize should be defined in c++23" +# endif +# if __cpp_lib_ssize != 201902L +# error "__cpp_lib_ssize should have the value 201902L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++26" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should be defined in c++26" -# endif -# if __cpp_lib_constexpr_iterator != 201811L -# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++26" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++26" -# endif - -# ifndef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should be defined in c++26" -# endif -# if __cpp_lib_move_iterator_concept != 202207L -# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++26" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++26" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++26" -# endif - -# ifndef __cpp_lib_ssize -# error "__cpp_lib_ssize should be defined in c++26" -# endif -# if __cpp_lib_ssize != 201902L -# error "__cpp_lib_ssize should have the value 201902L in c++26" -# endif +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++26" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should be defined in c++26" +# endif +# if __cpp_lib_constexpr_iterator != 201811L +# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++26" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++26" +# endif + +# ifndef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should be defined in c++26" +# endif +# if __cpp_lib_move_iterator_concept != 202207L +# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++26" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++26" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++26" +# endif + +# ifndef __cpp_lib_ssize +# error "__cpp_lib_ssize should be defined in c++26" +# endif +# if __cpp_lib_ssize != 201902L +# error "__cpp_lib_ssize should have the value 201902L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 34521fdffa221..6857c54460650 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-threads @@ -17,75 +15,75 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_latch 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined before c++20" -# endif +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined before c++20" -# endif +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined before c++20" -# endif +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_latch -# error "__cpp_lib_latch should be defined in c++20" -# endif -# if __cpp_lib_latch != 201907L -# error "__cpp_lib_latch should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_latch +# error "__cpp_lib_latch should be defined in c++20" +# endif +# if __cpp_lib_latch != 201907L +# error "__cpp_lib_latch should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_latch -# error "__cpp_lib_latch should be defined in c++23" -# endif -# if __cpp_lib_latch != 201907L -# error "__cpp_lib_latch should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_latch +# error "__cpp_lib_latch should be defined in c++23" +# endif +# if __cpp_lib_latch != 201907L +# error "__cpp_lib_latch should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_latch -# error "__cpp_lib_latch should be defined in c++26" -# endif -# if __cpp_lib_latch != 201907L -# error "__cpp_lib_latch should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_latch +# error "__cpp_lib_latch should be defined in c++26" +# endif +# if __cpp_lib_latch != 201907L +# error "__cpp_lib_latch should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 70baec07a3972..0b3d6f5d2bd9c 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 @@ -5,85 +5,83 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_char8_t 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 9cd3c3bc941c0..9fd638087fcea 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 @@ -5,277 +5,269 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_containers_ranges 202202L [C++23] - __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] - __cpp_lib_erase_if 202002L [C++20] - __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] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" -# endif +# ifdef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" +# endif -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" -# endif +# ifdef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" +# endif -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++17" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17" -# endif - -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++17" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17" +# endif + +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif #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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++20" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20" -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++20" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++20" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20" +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++20" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++23" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23" -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++23" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++23" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23" +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++23" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" -# endif -# if __cpp_lib_default_template_type_for_algorithm_values != 202403L -# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++26" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26" -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++26" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" +# endif +# if __cpp_lib_default_template_type_for_algorithm_values != 202403L +# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++26" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26" +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++26" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 2674123a2c38a..e1a04d1b0e087 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,75 +15,75 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_char8_t 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 4ffb72d1442e5..4044c2b1b2e0f 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 @@ -5,407 +5,395 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_associative_heterogeneous_erasure 202110L [C++23] - __cpp_lib_associative_heterogeneous_insertion 202306L [C++26] - __cpp_lib_containers_ranges 202202L [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_tuple_like 202207L [C++23] - 202311L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should not be defined before c++14" -# endif +# ifdef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should not be defined before c++14" +# endif -# ifdef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should not be defined before c++17" -# endif +# ifdef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should not be defined before c++17" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++14" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14" -# endif +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++14" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14" +# endif -# ifdef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should not be defined before c++17" -# endif +# ifdef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should not be defined before c++17" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++17" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should be defined in c++17" -# endif -# if __cpp_lib_map_try_emplace != 201411L -# error "__cpp_lib_map_try_emplace should have the value 201411L in c++17" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++17" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++17" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should be defined in c++17" +# endif +# if __cpp_lib_map_try_emplace != 201411L +# error "__cpp_lib_map_try_emplace should have the value 201411L in c++17" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++17" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like 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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++20" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should be defined in c++20" -# endif -# if __cpp_lib_map_try_emplace != 201411L -# error "__cpp_lib_map_try_emplace should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++20" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++20" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should be defined in c++20" +# endif +# if __cpp_lib_map_try_emplace != 201411L +# error "__cpp_lib_map_try_emplace should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++20" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++23" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should be defined in c++23" -# endif -# if __cpp_lib_map_try_emplace != 201411L -# error "__cpp_lib_map_try_emplace should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++23" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++23" -# endif -# if __cpp_lib_tuple_like != 202207L -# error "__cpp_lib_tuple_like should have the value 202207L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++23" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should be defined in c++23" +# endif +# if __cpp_lib_map_try_emplace != 201411L +# error "__cpp_lib_map_try_emplace should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++23" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++23" +# endif +# if __cpp_lib_tuple_like != 202207L +# error "__cpp_lib_tuple_like should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_insertion != 202306L -# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++26" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should be defined in c++26" -# endif -# if __cpp_lib_map_try_emplace != 201411L -# error "__cpp_lib_map_try_emplace should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++26" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++26" -# endif -# if __cpp_lib_tuple_like != 202311L -# error "__cpp_lib_tuple_like should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_insertion != 202306L +# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++26" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should be defined in c++26" +# endif +# if __cpp_lib_map_try_emplace != 201411L +# error "__cpp_lib_map_try_emplace should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++26" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++26" +# endif +# if __cpp_lib_tuple_like != 202311L +# error "__cpp_lib_tuple_like should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 64d1c99b223f4..28524438f644b 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 @@ -5,133 +5,128 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_freestanding_mdspan 202311L [C++26] - __cpp_lib_mdspan 202207L [C++23] - 202406L [C++26] - __cpp_lib_submdspan 202306L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif -# ifdef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should not be defined before c++23" -# endif +# ifdef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should not be defined before c++23" +# endif -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif -# ifdef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should not be defined before c++23" -# endif +# ifdef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should not be defined before c++23" +# endif -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif -# ifdef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should not be defined before c++23" -# endif +# ifdef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should not be defined before c++23" +# endif -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif -# ifdef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should not be defined before c++23" -# endif +# ifdef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should not be defined before c++23" +# endif -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif -# ifndef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should be defined in c++23" -# endif -# if __cpp_lib_mdspan != 202207L -# error "__cpp_lib_mdspan should have the value 202207L in c++23" -# endif +# ifndef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should be defined in c++23" +# endif +# if __cpp_lib_mdspan != 202207L +# error "__cpp_lib_mdspan should have the value 202207L in c++23" +# endif -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should be defined in c++26" -# endif -# if __cpp_lib_freestanding_mdspan != 202311L -# error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should be defined in c++26" -# endif -# if __cpp_lib_mdspan != 202406L -# error "__cpp_lib_mdspan should have the value 202406L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should be defined in c++26" -# endif -# if __cpp_lib_submdspan != 202306L -# error "__cpp_lib_submdspan should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should be defined in c++26" +# endif +# if __cpp_lib_freestanding_mdspan != 202311L +# error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should be defined in c++26" +# endif +# if __cpp_lib_mdspan != 202406L +# error "__cpp_lib_mdspan should have the value 202406L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should be defined in c++26" +# endif +# if __cpp_lib_submdspan != 202306L +# error "__cpp_lib_submdspan should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 0094bed44be07..fc70df3ae2ef9 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 @@ -5,674 +5,650 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_addressof_constexpr 201603L [C++17] - __cpp_lib_allocate_at_least 202302L [C++23] - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_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++23] - __cpp_lib_enable_shared_from_this 201603L [C++17] - __cpp_lib_make_unique 201304L [C++14] - __cpp_lib_out_ptr 202106L [C++23] - 202311L [C++26] - __cpp_lib_ranges 202110L [C++20] - 202406L [C++23] - __cpp_lib_raw_memory_algorithms 201606L [C++17] - __cpp_lib_shared_ptr_arrays 201611L [C++17] - 201707L [C++20] - __cpp_lib_shared_ptr_weak_type 201606L [C++17] - __cpp_lib_smart_ptr_for_overwrite 202002L [C++20] - __cpp_lib_smart_ptr_owner_equality 202306L [C++26] - __cpp_lib_to_address 201711L [C++20] - __cpp_lib_transparent_operators 201210L [C++14] - 201510L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should not be defined before c++23" -# endif +# ifdef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should not be defined before c++23" +# endif -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should not be defined before c++20" -# endif +# ifdef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should not be defined before c++20" +# endif -# ifdef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should not be defined before c++17" -# endif +# ifdef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should not be defined before c++17" +# endif -# ifdef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should not be defined before c++14" -# endif +# ifdef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should not be defined before c++14" +# endif -# ifdef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should not be defined before c++23" -# endif +# ifdef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17" -# endif +# ifdef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17" +# endif -# ifdef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17" -# endif +# ifdef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17" +# endif -# ifdef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17" -# endif +# ifdef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17" +# endif -# ifdef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" -# endif +# ifdef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" +# endif -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_to_address -# error "__cpp_lib_to_address should not be defined before c++20" -# endif +# ifdef __cpp_lib_to_address +# error "__cpp_lib_to_address should not be defined before c++20" +# endif -# ifdef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should not be defined before c++14" -# endif +# ifdef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should not be defined before c++14" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should not be defined before c++23" -# endif +# ifdef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should not be defined before c++23" +# endif -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should not be defined before c++20" -# endif +# ifdef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should not be defined before c++20" +# endif -# ifdef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should not be defined before c++17" -# endif +# ifdef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should not be defined before c++17" +# endif -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++14" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++14" -# endif +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++14" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++14" +# endif -# ifdef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should not be defined before c++23" -# endif +# ifdef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17" -# endif +# ifdef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17" +# endif -# ifdef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17" -# endif +# ifdef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17" +# endif -# ifdef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17" -# endif +# ifdef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17" +# endif -# ifdef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" -# endif +# ifdef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" +# endif -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_to_address -# error "__cpp_lib_to_address should not be defined before c++20" -# endif +# ifdef __cpp_lib_to_address +# error "__cpp_lib_to_address should not be defined before c++20" +# endif -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++14" -# endif -# if __cpp_lib_transparent_operators != 201210L -# error "__cpp_lib_transparent_operators should have the value 201210L in c++14" -# endif +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++14" +# endif +# if __cpp_lib_transparent_operators != 201210L +# error "__cpp_lib_transparent_operators should have the value 201210L in c++14" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should be defined in c++17" -# endif -# if __cpp_lib_addressof_constexpr != 201603L -# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should not be defined before c++23" -# endif - -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should not be defined before c++20" -# endif - -# ifndef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should be defined in c++17" -# endif -# if __cpp_lib_enable_shared_from_this != 201603L -# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++17" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif - -# ifndef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should be defined in c++17" -# endif -# if __cpp_lib_raw_memory_algorithms != 201606L -# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should be defined in c++17" -# endif -# if __cpp_lib_shared_ptr_arrays != 201611L -# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17" -# endif - -# ifndef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should be defined in c++17" -# endif -# if __cpp_lib_shared_ptr_weak_type != 201606L -# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" -# endif - -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif - -# ifdef __cpp_lib_to_address -# error "__cpp_lib_to_address should not be defined before c++20" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++17" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++17" -# endif +# ifndef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should be defined in c++17" +# endif +# if __cpp_lib_addressof_constexpr != 201603L +# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should not be defined before c++23" +# endif + +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should not be defined before c++20" +# endif + +# ifndef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should be defined in c++17" +# endif +# if __cpp_lib_enable_shared_from_this != 201603L +# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++17" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif + +# ifndef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should be defined in c++17" +# endif +# if __cpp_lib_raw_memory_algorithms != 201606L +# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should be defined in c++17" +# endif +# if __cpp_lib_shared_ptr_arrays != 201611L +# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17" +# endif + +# ifndef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should be defined in c++17" +# endif +# if __cpp_lib_shared_ptr_weak_type != 201606L +# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" +# endif + +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif + +# ifdef __cpp_lib_to_address +# error "__cpp_lib_to_address should not be defined before c++20" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++17" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should be defined in c++20" -# endif -# if __cpp_lib_addressof_constexpr != 201603L -# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20" -# endif - -# ifdef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should not be defined before c++23" -# endif - -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should be defined in c++20" -# endif -# if __cpp_lib_assume_aligned != 201811L -# error "__cpp_lib_assume_aligned should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++20" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20" -# endif -# if __cpp_lib_constexpr_dynamic_alloc != 201907L -# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should be defined in c++20" -# endif -# if __cpp_lib_constexpr_memory != 201811L -# error "__cpp_lib_constexpr_memory should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should be defined in c++20" -# endif -# if __cpp_lib_enable_shared_from_this != 201603L -# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++20" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++20" -# endif - -# ifdef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should not be defined before c++23" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++20" -# endif -# if __cpp_lib_ranges != 202110L -# error "__cpp_lib_ranges should have the value 202110L in c++20" -# endif - -# ifndef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should be defined in c++20" -# endif -# if __cpp_lib_raw_memory_algorithms != 201606L -# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should be defined in c++20" -# endif -# if __cpp_lib_shared_ptr_arrays != 201707L -# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++20" -# endif - -# ifndef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should be defined in c++20" -# endif -# if __cpp_lib_shared_ptr_weak_type != 201606L -# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20" -# endif -# if __cpp_lib_smart_ptr_for_overwrite != 202002L -# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20" -# endif - -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_to_address -# error "__cpp_lib_to_address should be defined in c++20" -# endif -# if __cpp_lib_to_address != 201711L -# error "__cpp_lib_to_address should have the value 201711L in c++20" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++20" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++20" -# endif +# ifndef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should be defined in c++20" +# endif +# if __cpp_lib_addressof_constexpr != 201603L +# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20" +# endif + +# ifdef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should not be defined before c++23" +# endif + +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should be defined in c++20" +# endif +# if __cpp_lib_assume_aligned != 201811L +# error "__cpp_lib_assume_aligned should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++20" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20" +# endif +# if __cpp_lib_constexpr_dynamic_alloc != 201907L +# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should be defined in c++20" +# endif +# if __cpp_lib_constexpr_memory != 201811L +# error "__cpp_lib_constexpr_memory should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should be defined in c++20" +# endif +# if __cpp_lib_enable_shared_from_this != 201603L +# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++20" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++20" +# endif + +# ifdef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should not be defined before c++23" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++20" +# endif +# if __cpp_lib_ranges != 202110L +# error "__cpp_lib_ranges should have the value 202110L in c++20" +# endif + +# ifndef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should be defined in c++20" +# endif +# if __cpp_lib_raw_memory_algorithms != 201606L +# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should be defined in c++20" +# endif +# if __cpp_lib_shared_ptr_arrays != 201707L +# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++20" +# endif + +# ifndef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should be defined in c++20" +# endif +# if __cpp_lib_shared_ptr_weak_type != 201606L +# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20" +# endif +# if __cpp_lib_smart_ptr_for_overwrite != 202002L +# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20" +# endif + +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_to_address +# error "__cpp_lib_to_address should be defined in c++20" +# endif +# if __cpp_lib_to_address != 201711L +# error "__cpp_lib_to_address should have the value 201711L in c++20" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++20" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should be defined in c++23" -# endif -# if __cpp_lib_addressof_constexpr != 201603L -# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should be defined in c++23" -# endif -# if __cpp_lib_allocate_at_least != 202302L -# error "__cpp_lib_allocate_at_least should have the value 202302L in c++23" -# endif - -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should be defined in c++23" -# endif -# if __cpp_lib_assume_aligned != 201811L -# error "__cpp_lib_assume_aligned should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++23" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++23" -# endif -# if __cpp_lib_constexpr_dynamic_alloc != 201907L -# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should be defined in c++23" -# endif -# if __cpp_lib_constexpr_memory != 202202L -# error "__cpp_lib_constexpr_memory should have the value 202202L in c++23" -# endif - -# ifndef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should be defined in c++23" -# endif -# if __cpp_lib_enable_shared_from_this != 201603L -# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++23" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should be defined in c++23" -# endif -# if __cpp_lib_out_ptr != 202106L -# error "__cpp_lib_out_ptr should have the value 202106L in c++23" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++23" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++23" -# endif - -# ifndef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should be defined in c++23" -# endif -# if __cpp_lib_raw_memory_algorithms != 201606L -# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should be defined in c++23" -# endif -# if __cpp_lib_shared_ptr_arrays != 201707L -# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++23" -# endif - -# ifndef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should be defined in c++23" -# endif -# if __cpp_lib_shared_ptr_weak_type != 201606L -# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++23" -# endif -# if __cpp_lib_smart_ptr_for_overwrite != 202002L -# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23" -# endif - -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_to_address -# error "__cpp_lib_to_address should be defined in c++23" -# endif -# if __cpp_lib_to_address != 201711L -# error "__cpp_lib_to_address should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++23" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++23" -# endif +# ifndef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should be defined in c++23" +# endif +# if __cpp_lib_addressof_constexpr != 201603L +# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should be defined in c++23" +# endif +# if __cpp_lib_allocate_at_least != 202302L +# error "__cpp_lib_allocate_at_least should have the value 202302L in c++23" +# endif + +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should be defined in c++23" +# endif +# if __cpp_lib_assume_aligned != 201811L +# error "__cpp_lib_assume_aligned should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++23" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++23" +# endif +# if __cpp_lib_constexpr_dynamic_alloc != 201907L +# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should be defined in c++23" +# endif +# if __cpp_lib_constexpr_memory != 202202L +# error "__cpp_lib_constexpr_memory should have the value 202202L in c++23" +# endif + +# ifndef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should be defined in c++23" +# endif +# if __cpp_lib_enable_shared_from_this != 201603L +# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++23" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should be defined in c++23" +# endif +# if __cpp_lib_out_ptr != 202106L +# error "__cpp_lib_out_ptr should have the value 202106L in c++23" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++23" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++23" +# endif + +# ifndef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should be defined in c++23" +# endif +# if __cpp_lib_raw_memory_algorithms != 201606L +# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should be defined in c++23" +# endif +# if __cpp_lib_shared_ptr_arrays != 201707L +# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++23" +# endif + +# ifndef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should be defined in c++23" +# endif +# if __cpp_lib_shared_ptr_weak_type != 201606L +# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++23" +# endif +# if __cpp_lib_smart_ptr_for_overwrite != 202002L +# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23" +# endif + +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_to_address +# error "__cpp_lib_to_address should be defined in c++23" +# endif +# if __cpp_lib_to_address != 201711L +# error "__cpp_lib_to_address should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++23" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should be defined in c++26" -# endif -# if __cpp_lib_addressof_constexpr != 201603L -# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should be defined in c++26" -# endif -# if __cpp_lib_allocate_at_least != 202302L -# error "__cpp_lib_allocate_at_least should have the value 202302L in c++26" -# endif - -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should be defined in c++26" -# endif -# if __cpp_lib_assume_aligned != 201811L -# error "__cpp_lib_assume_aligned should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++26" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++26" -# endif -# if __cpp_lib_constexpr_dynamic_alloc != 201907L -# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should be defined in c++26" -# endif -# if __cpp_lib_constexpr_memory != 202202L -# error "__cpp_lib_constexpr_memory should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should be defined in c++26" -# endif -# if __cpp_lib_enable_shared_from_this != 201603L -# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++26" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should be defined in c++26" -# endif -# if __cpp_lib_out_ptr != 202311L -# error "__cpp_lib_out_ptr should have the value 202311L in c++26" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++26" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++26" -# endif - -# ifndef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should be defined in c++26" -# endif -# if __cpp_lib_raw_memory_algorithms != 201606L -# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should be defined in c++26" -# endif -# if __cpp_lib_shared_ptr_arrays != 201707L -# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++26" -# endif - -# ifndef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should be defined in c++26" -# endif -# if __cpp_lib_shared_ptr_weak_type != 201606L -# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++26" -# endif -# if __cpp_lib_smart_ptr_for_overwrite != 202002L -# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should be defined in c++26" -# endif -# if __cpp_lib_smart_ptr_owner_equality != 202306L -# error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_to_address -# error "__cpp_lib_to_address should be defined in c++26" -# endif -# if __cpp_lib_to_address != 201711L -# error "__cpp_lib_to_address should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++26" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++26" -# endif +# ifndef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should be defined in c++26" +# endif +# if __cpp_lib_addressof_constexpr != 201603L +# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should be defined in c++26" +# endif +# if __cpp_lib_allocate_at_least != 202302L +# error "__cpp_lib_allocate_at_least should have the value 202302L in c++26" +# endif + +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should be defined in c++26" +# endif +# if __cpp_lib_assume_aligned != 201811L +# error "__cpp_lib_assume_aligned should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++26" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++26" +# endif +# if __cpp_lib_constexpr_dynamic_alloc != 201907L +# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should be defined in c++26" +# endif +# if __cpp_lib_constexpr_memory != 202202L +# error "__cpp_lib_constexpr_memory should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should be defined in c++26" +# endif +# if __cpp_lib_enable_shared_from_this != 201603L +# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++26" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should be defined in c++26" +# endif +# if __cpp_lib_out_ptr != 202311L +# error "__cpp_lib_out_ptr should have the value 202311L in c++26" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++26" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++26" +# endif + +# ifndef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should be defined in c++26" +# endif +# if __cpp_lib_raw_memory_algorithms != 201606L +# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should be defined in c++26" +# endif +# if __cpp_lib_shared_ptr_arrays != 201707L +# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++26" +# endif + +# ifndef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should be defined in c++26" +# endif +# if __cpp_lib_shared_ptr_weak_type != 201606L +# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++26" +# endif +# if __cpp_lib_smart_ptr_for_overwrite != 202002L +# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should be defined in c++26" +# endif +# if __cpp_lib_smart_ptr_owner_equality != 202306L +# error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_to_address +# error "__cpp_lib_to_address should be defined in c++26" +# endif +# if __cpp_lib_to_address != 201711L +# error "__cpp_lib_to_address should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++26" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 f2bec492363d1..52fc2d1854fec 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 @@ -5,146 +5,143 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_memory_resource 201603L [C++17] - __cpp_lib_polymorphic_allocator 201902L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined before c++17" -# endif +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined before c++17" +# endif -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" -# endif +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined before c++17" -# endif +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined before c++17" +# endif -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" -# endif +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should be defined in c++17" -# endif -# if __cpp_lib_memory_resource != 201603L -# error "__cpp_lib_memory_resource should have the value 201603L in c++17" -# endif -# else -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should be defined in c++17" +# endif +# if __cpp_lib_memory_resource != 201603L +# error "__cpp_lib_memory_resource should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should be defined in c++20" -# endif -# if __cpp_lib_memory_resource != 201603L -# error "__cpp_lib_memory_resource should have the value 201603L in c++20" -# endif -# else -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should be defined in c++20" -# endif -# if __cpp_lib_polymorphic_allocator != 201902L -# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20" -# endif -# else -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should be defined in c++20" +# endif +# if __cpp_lib_memory_resource != 201603L +# error "__cpp_lib_memory_resource should have the value 201603L in c++20" +# endif +# else +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should be defined in c++20" +# endif +# if __cpp_lib_polymorphic_allocator != 201902L +# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20" +# endif +# else +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should be defined in c++23" -# endif -# if __cpp_lib_memory_resource != 201603L -# error "__cpp_lib_memory_resource should have the value 201603L in c++23" -# endif -# else -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should be defined in c++23" -# endif -# if __cpp_lib_polymorphic_allocator != 201902L -# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23" -# endif -# else -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should be defined in c++23" +# endif +# if __cpp_lib_memory_resource != 201603L +# error "__cpp_lib_memory_resource should have the value 201603L in c++23" +# endif +# else +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should be defined in c++23" +# endif +# if __cpp_lib_polymorphic_allocator != 201902L +# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23" +# endif +# else +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should be defined in c++26" -# endif -# if __cpp_lib_memory_resource != 201603L -# error "__cpp_lib_memory_resource should have the value 201603L in c++26" -# endif -# else -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should be defined in c++26" -# endif -# if __cpp_lib_polymorphic_allocator != 201902L -# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++26" -# endif -# else -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should be defined in c++26" +# endif +# if __cpp_lib_memory_resource != 201603L +# error "__cpp_lib_memory_resource should have the value 201603L in c++26" +# endif +# else +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should be defined in c++26" +# endif +# if __cpp_lib_polymorphic_allocator != 201902L +# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++26" +# endif +# else +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 49601e4d78cea..fb3734fff10e5 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-threads @@ -17,84 +15,84 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_scoped_lock 201703L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined before c++17" -# endif +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined before c++17" -# endif +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should be defined in c++17" -# endif -# if __cpp_lib_scoped_lock != 201703L -# error "__cpp_lib_scoped_lock should have the value 201703L in c++17" -# endif -# else -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should be defined in c++17" +# endif +# if __cpp_lib_scoped_lock != 201703L +# error "__cpp_lib_scoped_lock should have the value 201703L in c++17" +# endif +# else +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should be defined in c++20" -# endif -# if __cpp_lib_scoped_lock != 201703L -# error "__cpp_lib_scoped_lock should have the value 201703L in c++20" -# endif -# else -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should be defined in c++20" +# endif +# if __cpp_lib_scoped_lock != 201703L +# error "__cpp_lib_scoped_lock should have the value 201703L in c++20" +# endif +# else +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should be defined in c++23" -# endif -# if __cpp_lib_scoped_lock != 201703L -# error "__cpp_lib_scoped_lock should have the value 201703L in c++23" -# endif -# else -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should be defined in c++23" +# endif +# if __cpp_lib_scoped_lock != 201703L +# error "__cpp_lib_scoped_lock should have the value 201703L in c++23" +# endif +# else +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should be defined in c++26" -# endif -# if __cpp_lib_scoped_lock != 201703L -# error "__cpp_lib_scoped_lock should have the value 201703L in c++26" -# endif -# else -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should be defined in c++26" +# endif +# if __cpp_lib_scoped_lock != 201703L +# error "__cpp_lib_scoped_lock should have the value 201703L in c++26" +# endif +# else +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 18dae0e4db6c0..b1de3f7629e9d 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 @@ -5,217 +5,212 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_constexpr_new 202406L [C++26] - __cpp_lib_destroying_delete 201806L [C++20] - __cpp_lib_hardware_interference_size 201703L [C++17] - __cpp_lib_launder 201606L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined before c++20" -# endif +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined before c++20" +# endif -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined before c++17" -# endif +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined before c++17" +# endif -# ifdef __cpp_lib_launder -# error "__cpp_lib_launder should not be defined before c++17" -# endif +# ifdef __cpp_lib_launder +# error "__cpp_lib_launder should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined before c++20" -# endif +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined before c++20" +# endif -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined before c++17" -# endif +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined before c++17" +# endif -# ifdef __cpp_lib_launder -# error "__cpp_lib_launder should not be defined before c++17" -# endif +# ifdef __cpp_lib_launder +# error "__cpp_lib_launder should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif - -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined before c++20" -# endif - -# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) -# ifndef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should be defined in c++17" -# endif -# if __cpp_lib_hardware_interference_size != 201703L -# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17" -# endif -# else -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" -# endif -# endif - -# ifndef __cpp_lib_launder -# error "__cpp_lib_launder should be defined in c++17" -# endif -# if __cpp_lib_launder != 201606L -# error "__cpp_lib_launder should have the value 201606L in c++17" -# endif +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif + +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined before c++20" +# endif + +# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) +# ifndef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should be defined in c++17" +# endif +# if __cpp_lib_hardware_interference_size != 201703L +# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17" +# endif +# else +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" +# endif +# endif + +# ifndef __cpp_lib_launder +# error "__cpp_lib_launder should be defined in c++17" +# endif +# if __cpp_lib_launder != 201606L +# error "__cpp_lib_launder should have the value 201606L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif - -# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L -# ifndef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should be defined in c++20" -# endif -# if __cpp_lib_destroying_delete != 201806L -# error "__cpp_lib_destroying_delete should have the value 201806L in c++20" -# endif -# else -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) -# ifndef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should be defined in c++20" -# endif -# if __cpp_lib_hardware_interference_size != 201703L -# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20" -# endif -# else -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" -# endif -# endif - -# ifndef __cpp_lib_launder -# error "__cpp_lib_launder should be defined in c++20" -# endif -# if __cpp_lib_launder != 201606L -# error "__cpp_lib_launder should have the value 201606L in c++20" -# endif +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif + +# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L +# ifndef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should be defined in c++20" +# endif +# if __cpp_lib_destroying_delete != 201806L +# error "__cpp_lib_destroying_delete should have the value 201806L in c++20" +# endif +# else +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) +# ifndef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should be defined in c++20" +# endif +# if __cpp_lib_hardware_interference_size != 201703L +# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20" +# endif +# else +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" +# endif +# endif + +# ifndef __cpp_lib_launder +# error "__cpp_lib_launder should be defined in c++20" +# endif +# if __cpp_lib_launder != 201606L +# error "__cpp_lib_launder should have the value 201606L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif - -# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L -# ifndef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should be defined in c++23" -# endif -# if __cpp_lib_destroying_delete != 201806L -# error "__cpp_lib_destroying_delete should have the value 201806L in c++23" -# endif -# else -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) -# ifndef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should be defined in c++23" -# endif -# if __cpp_lib_hardware_interference_size != 201703L -# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23" -# endif -# else -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" -# endif -# endif - -# ifndef __cpp_lib_launder -# error "__cpp_lib_launder should be defined in c++23" -# endif -# if __cpp_lib_launder != 201606L -# error "__cpp_lib_launder should have the value 201606L in c++23" -# endif +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif + +# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L +# ifndef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should be defined in c++23" +# endif +# if __cpp_lib_destroying_delete != 201806L +# error "__cpp_lib_destroying_delete should have the value 201806L in c++23" +# endif +# else +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) +# ifndef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should be defined in c++23" +# endif +# if __cpp_lib_hardware_interference_size != 201703L +# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23" +# endif +# else +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" +# endif +# endif + +# ifndef __cpp_lib_launder +# error "__cpp_lib_launder should be defined in c++23" +# endif +# if __cpp_lib_launder != 201606L +# error "__cpp_lib_launder should have the value 201606L in c++23" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_ABI_VCRUNTIME) -# ifndef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should be defined in c++26" -# endif -# if __cpp_lib_constexpr_new != 202406L -# error "__cpp_lib_constexpr_new should have the value 202406L in c++26" -# endif -# else -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined when the requirement '!defined(_LIBCPP_ABI_VCRUNTIME)' is not met!" -# endif -# endif - -# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L -# ifndef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should be defined in c++26" -# endif -# if __cpp_lib_destroying_delete != 201806L -# error "__cpp_lib_destroying_delete should have the value 201806L in c++26" -# endif -# else -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) -# ifndef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should be defined in c++26" -# endif -# if __cpp_lib_hardware_interference_size != 201703L -# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++26" -# endif -# else -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" -# endif -# endif - -# ifndef __cpp_lib_launder -# error "__cpp_lib_launder should be defined in c++26" -# endif -# if __cpp_lib_launder != 201606L -# error "__cpp_lib_launder should have the value 201606L in c++26" -# endif +# if !defined(_LIBCPP_ABI_VCRUNTIME) +# ifndef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should be defined in c++26" +# endif +# if __cpp_lib_constexpr_new != 202406L +# error "__cpp_lib_constexpr_new should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined when the requirement '!defined(_LIBCPP_ABI_VCRUNTIME)' is not met!" +# endif +# endif + +# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L +# ifndef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should be defined in c++26" +# endif +# if __cpp_lib_destroying_delete != 201806L +# error "__cpp_lib_destroying_delete should have the value 201806L in c++26" +# endif +# else +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) +# ifndef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should be defined in c++26" +# endif +# if __cpp_lib_hardware_interference_size != 201703L +# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++26" +# endif +# else +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" +# endif +# endif + +# ifndef __cpp_lib_launder +# error "__cpp_lib_launder should be defined in c++26" +# endif +# if __cpp_lib_launder != 201606L +# error "__cpp_lib_launder should have the value 201606L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 2e80a8eac103f..e8f109610a3e5 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 @@ -5,67 +5,65 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_math_constants 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should not be defined before c++20" -# endif +# ifdef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should not be defined before c++20" -# endif +# ifdef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should not be defined before c++20" -# endif +# ifdef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should be defined in c++20" -# endif -# if __cpp_lib_math_constants != 201907L -# error "__cpp_lib_math_constants should have the value 201907L in c++20" -# endif +# ifndef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should be defined in c++20" +# endif +# if __cpp_lib_math_constants != 201907L +# error "__cpp_lib_math_constants should have the value 201907L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should be defined in c++23" -# endif -# if __cpp_lib_math_constants != 201907L -# error "__cpp_lib_math_constants should have the value 201907L in c++23" -# endif +# ifndef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should be defined in c++23" +# endif +# if __cpp_lib_math_constants != 201907L +# error "__cpp_lib_math_constants should have the value 201907L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should be defined in c++26" -# endif -# if __cpp_lib_math_constants != 201907L -# error "__cpp_lib_math_constants should have the value 201907L in c++26" -# endif +# ifndef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should be defined in c++26" +# endif +# if __cpp_lib_math_constants != 201907L +# error "__cpp_lib_math_constants should have the value 201907L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 0743c6c71840c..687c343e34e08 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 @@ -5,258 +5,251 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_constexpr_numeric 201911L [C++20] - __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++23] - __cpp_lib_saturation_arithmetic 202311L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should not be defined before c++20" +# endif -# ifdef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should not be defined before c++17" -# endif +# ifdef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should not be defined before c++17" +# endif -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined before c++17" -# endif +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined before c++17" +# endif -# ifdef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should not be defined before c++23" +# endif -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should not be defined before c++20" +# endif -# ifdef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should not be defined before c++17" -# endif +# ifdef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should not be defined before c++17" +# endif -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined before c++17" -# endif +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined before c++17" +# endif -# ifdef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should not be defined before c++23" +# endif -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should not be defined before c++20" -# endif - -# ifndef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should be defined in c++17" -# endif -# if __cpp_lib_gcd_lcm != 201606L -# error "__cpp_lib_gcd_lcm should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++17" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should not be defined before c++23" -# endif - -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif +# ifdef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should not be defined before c++20" +# endif + +# ifndef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should be defined in c++17" +# endif +# if __cpp_lib_gcd_lcm != 201606L +# error "__cpp_lib_gcd_lcm should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++17" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should not be defined before c++23" +# endif + +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should be defined in c++20" -# endif -# if __cpp_lib_constexpr_numeric != 201911L -# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20" -# endif - -# ifndef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should be defined in c++20" -# endif -# if __cpp_lib_gcd_lcm != 201606L -# error "__cpp_lib_gcd_lcm should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++20" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++20" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should not be defined before c++23" -# endif - -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif +# ifndef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should be defined in c++20" +# endif +# if __cpp_lib_constexpr_numeric != 201911L +# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20" +# endif + +# ifndef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should be defined in c++20" +# endif +# if __cpp_lib_gcd_lcm != 201606L +# error "__cpp_lib_gcd_lcm should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++20" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++20" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should not be defined before c++23" +# endif + +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should be defined in c++23" -# endif -# if __cpp_lib_constexpr_numeric != 201911L -# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++23" -# endif - -# ifndef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should be defined in c++23" -# endif -# if __cpp_lib_gcd_lcm != 201606L -# error "__cpp_lib_gcd_lcm should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++23" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++23" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should be defined in c++23" -# endif -# if __cpp_lib_ranges_iota != 202202L -# error "__cpp_lib_ranges_iota should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif +# ifndef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should be defined in c++23" +# endif +# if __cpp_lib_constexpr_numeric != 201911L +# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++23" +# endif + +# ifndef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should be defined in c++23" +# endif +# if __cpp_lib_gcd_lcm != 201606L +# error "__cpp_lib_gcd_lcm should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++23" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++23" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should be defined in c++23" +# endif +# if __cpp_lib_ranges_iota != 202202L +# error "__cpp_lib_ranges_iota should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should be defined in c++26" -# endif -# if __cpp_lib_constexpr_numeric != 201911L -# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++26" -# endif - -# ifndef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should be defined in c++26" -# endif -# if __cpp_lib_gcd_lcm != 201606L -# error "__cpp_lib_gcd_lcm should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++26" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++26" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should be defined in c++26" -# endif -# if __cpp_lib_ranges_iota != 202202L -# error "__cpp_lib_ranges_iota should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should be defined in c++26" -# endif -# if __cpp_lib_saturation_arithmetic != 202311L -# error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26" -# endif +# ifndef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should be defined in c++26" +# endif +# if __cpp_lib_constexpr_numeric != 201911L +# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++26" +# endif + +# ifndef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should be defined in c++26" +# endif +# if __cpp_lib_gcd_lcm != 201606L +# error "__cpp_lib_gcd_lcm should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++26" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++26" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should be defined in c++26" +# endif +# if __cpp_lib_ranges_iota != 202202L +# error "__cpp_lib_ranges_iota should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should be defined in c++26" +# endif +# if __cpp_lib_saturation_arithmetic != 202311L +# error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 91abbbc77837b..f8ff69f618777 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 @@ -5,174 +5,167 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_constrained_equality 202403L [C++26] - __cpp_lib_freestanding_optional 202311L [C++26] - __cpp_lib_optional 201606L [C++17] - 202106L [C++20] - 202110L [C++23] - __cpp_lib_optional_range_support 202406L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif -# ifdef __cpp_lib_optional -# error "__cpp_lib_optional should not be defined before c++17" -# endif +# ifdef __cpp_lib_optional +# error "__cpp_lib_optional should not be defined before c++17" +# endif -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif -# ifdef __cpp_lib_optional -# error "__cpp_lib_optional should not be defined before c++17" -# endif +# ifdef __cpp_lib_optional +# error "__cpp_lib_optional should not be defined before c++17" +# endif -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif -# ifndef __cpp_lib_optional -# error "__cpp_lib_optional should be defined in c++17" -# endif -# if __cpp_lib_optional != 201606L -# error "__cpp_lib_optional should have the value 201606L in c++17" -# endif +# ifndef __cpp_lib_optional +# error "__cpp_lib_optional should be defined in c++17" +# endif +# if __cpp_lib_optional != 201606L +# error "__cpp_lib_optional should have the value 201606L in c++17" +# endif -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif -# ifndef __cpp_lib_optional -# error "__cpp_lib_optional should be defined in c++20" -# endif -# if __cpp_lib_optional != 202106L -# error "__cpp_lib_optional should have the value 202106L in c++20" -# endif +# ifndef __cpp_lib_optional +# error "__cpp_lib_optional should be defined in c++20" +# endif +# if __cpp_lib_optional != 202106L +# error "__cpp_lib_optional should have the value 202106L in c++20" +# endif -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif -# ifndef __cpp_lib_optional -# error "__cpp_lib_optional should be defined in c++23" -# endif -# if __cpp_lib_optional != 202110L -# error "__cpp_lib_optional should have the value 202110L in c++23" -# endif +# ifndef __cpp_lib_optional +# error "__cpp_lib_optional should be defined in c++23" +# endif +# if __cpp_lib_optional != 202110L +# error "__cpp_lib_optional should have the value 202110L in c++23" +# endif -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should be defined in c++26" -# endif -# if __cpp_lib_constrained_equality != 202403L -# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should be defined in c++26" -# endif -# if __cpp_lib_freestanding_optional != 202311L -# error "__cpp_lib_freestanding_optional should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_optional -# error "__cpp_lib_optional should be defined in c++26" -# endif -# if __cpp_lib_optional != 202110L -# error "__cpp_lib_optional should have the value 202110L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should be defined in c++26" -# endif -# if __cpp_lib_optional_range_support != 202406L -# error "__cpp_lib_optional_range_support should have the value 202406L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should be defined in c++26" +# endif +# if __cpp_lib_constrained_equality != 202403L +# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should be defined in c++26" +# endif +# if __cpp_lib_freestanding_optional != 202311L +# error "__cpp_lib_freestanding_optional should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_optional +# error "__cpp_lib_optional should be defined in c++26" +# endif +# if __cpp_lib_optional != 202110L +# error "__cpp_lib_optional should have the value 202110L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should be defined in c++26" +# endif +# if __cpp_lib_optional_range_support != 202406L +# error "__cpp_lib_optional_range_support should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 61d7747e4b6d1..de0520af18e2a 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,118 +15,117 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_char8_t 201907L [C++20] - __cpp_lib_print 202207L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif #elif TEST_STD_VER == 20 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_print -# error "__cpp_lib_print should be defined in c++23" -# endif -# if __cpp_lib_print != 202207L -# error "__cpp_lib_print should have the value 202207L in c++23" -# endif -# else -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_print +# error "__cpp_lib_print should be defined in c++23" +# endif +# if __cpp_lib_print != 202207L +# error "__cpp_lib_print should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_print -# error "__cpp_lib_print should be defined in c++26" -# endif -# if __cpp_lib_print != 202207L -# error "__cpp_lib_print should have the value 202207L in c++26" -# endif -# else -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_print +# error "__cpp_lib_print should be defined in c++26" +# endif +# if __cpp_lib_print != 202207L +# error "__cpp_lib_print should have the value 202207L in c++26" +# endif +# else +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/print.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/print.version.compile.pass.cpp index c9743cf41ef1e..263d20ace2fd9 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/print.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/print.version.compile.pass.cpp @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-filesystem @@ -17,66 +15,66 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_print 202207L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_print -# error "__cpp_lib_print should be defined in c++23" -# endif -# if __cpp_lib_print != 202207L -# error "__cpp_lib_print should have the value 202207L in c++23" -# endif -# else -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_print +# error "__cpp_lib_print should be defined in c++23" +# endif +# if __cpp_lib_print != 202207L +# error "__cpp_lib_print should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_print -# error "__cpp_lib_print should be defined in c++26" -# endif -# if __cpp_lib_print != 202207L -# error "__cpp_lib_print should have the value 202207L in c++26" -# endif -# else -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_print +# error "__cpp_lib_print should be defined in c++26" +# endif +# if __cpp_lib_print != 202207L +# error "__cpp_lib_print should have the value 202207L in c++26" +# endif +# else +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 5a5739ff5e7c7..6aff89ae3f95a 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 @@ -5,95 +5,92 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_adaptor_iterator_pair_constructor 202106L [C++23] - __cpp_lib_containers_ranges 202202L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges 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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges 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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges 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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_adaptor_iterator_pair_constructor -# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23" -# endif -# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L -# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23" -# endif +# ifndef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23" +# endif +# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L +# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23" +# endif -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_adaptor_iterator_pair_constructor -# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26" -# endif -# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L -# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26" -# endif +# ifndef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26" +# endif +# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L +# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26" +# endif -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp index 2e36c73172cd4..d40d115443977 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/random.version.compile.pass.cpp @@ -5,101 +5,98 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_generate_random 202403L [C++26] - __cpp_lib_philox_engine 202406L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should be defined in c++26" -# endif -# if __cpp_lib_generate_random != 202403L -# error "__cpp_lib_generate_random should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should be defined in c++26" -# endif -# if __cpp_lib_philox_engine != 202406L -# error "__cpp_lib_philox_engine should have the value 202406L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should be defined in c++26" +# endif +# if __cpp_lib_generate_random != 202403L +# error "__cpp_lib_generate_random should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should be defined in c++26" +# endif +# if __cpp_lib_philox_engine != 202406L +# error "__cpp_lib_philox_engine should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 8493505ef0236..c7c8112e123cd 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 @@ -5,475 +5,461 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] - __cpp_lib_ranges 202110L [C++20] - 202406L [C++23] - __cpp_lib_ranges_as_const 202207L [C++23] - __cpp_lib_ranges_as_rvalue 202207L [C++23] - __cpp_lib_ranges_chunk 202202L [C++23] - __cpp_lib_ranges_chunk_by 202202L [C++23] - __cpp_lib_ranges_concat 202403L [C++26] - __cpp_lib_ranges_join_with 202202L [C++23] - __cpp_lib_ranges_repeat 202207L [C++23] - __cpp_lib_ranges_slide 202202L [C++23] - __cpp_lib_ranges_to_container 202202L [C++23] - __cpp_lib_ranges_zip 202110L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++20" -# endif -# if __cpp_lib_ranges != 202110L -# error "__cpp_lib_ranges should have the value 202110L in c++20" -# endif +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++20" +# endif +# if __cpp_lib_ranges != 202110L +# error "__cpp_lib_ranges should have the value 202110L in c++20" +# endif -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++23" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should be defined in c++23" -# endif -# if __cpp_lib_ranges_as_const != 202207L -# error "__cpp_lib_ranges_as_const should have the value 202207L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should be defined in c++23" -# endif -# if __cpp_lib_ranges_as_rvalue != 202207L -# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should be defined in c++23" -# endif -# if __cpp_lib_ranges_chunk != 202202L -# error "__cpp_lib_ranges_chunk should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should be defined in c++23" -# endif -# if __cpp_lib_ranges_chunk_by != 202202L -# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should be defined in c++23" -# endif -# if __cpp_lib_ranges_join_with != 202202L -# error "__cpp_lib_ranges_join_with should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should be defined in c++23" -# endif -# if __cpp_lib_ranges_repeat != 202207L -# error "__cpp_lib_ranges_repeat should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should be defined in c++23" -# endif -# if __cpp_lib_ranges_slide != 202202L -# error "__cpp_lib_ranges_slide should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should be defined in c++23" -# endif -# if __cpp_lib_ranges_to_container != 202202L -# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should be defined in c++23" -# endif -# if __cpp_lib_ranges_zip != 202110L -# error "__cpp_lib_ranges_zip should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++23" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should be defined in c++23" +# endif +# if __cpp_lib_ranges_as_const != 202207L +# error "__cpp_lib_ranges_as_const should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should be defined in c++23" +# endif +# if __cpp_lib_ranges_as_rvalue != 202207L +# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should be defined in c++23" +# endif +# if __cpp_lib_ranges_chunk != 202202L +# error "__cpp_lib_ranges_chunk should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should be defined in c++23" +# endif +# if __cpp_lib_ranges_chunk_by != 202202L +# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should be defined in c++23" +# endif +# if __cpp_lib_ranges_join_with != 202202L +# error "__cpp_lib_ranges_join_with should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should be defined in c++23" +# endif +# if __cpp_lib_ranges_repeat != 202207L +# error "__cpp_lib_ranges_repeat should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should be defined in c++23" +# endif +# if __cpp_lib_ranges_slide != 202202L +# error "__cpp_lib_ranges_slide should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should be defined in c++23" +# endif +# if __cpp_lib_ranges_to_container != 202202L +# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should be defined in c++23" +# endif +# if __cpp_lib_ranges_zip != 202110L +# error "__cpp_lib_ranges_zip should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" -# endif -# if __cpp_lib_default_template_type_for_algorithm_values != 202403L -# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++26" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should be defined in c++26" -# endif -# if __cpp_lib_ranges_as_const != 202207L -# error "__cpp_lib_ranges_as_const should have the value 202207L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should be defined in c++26" -# endif -# if __cpp_lib_ranges_as_rvalue != 202207L -# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should be defined in c++26" -# endif -# if __cpp_lib_ranges_chunk != 202202L -# error "__cpp_lib_ranges_chunk should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should be defined in c++26" -# endif -# if __cpp_lib_ranges_chunk_by != 202202L -# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should be defined in c++26" -# endif -# if __cpp_lib_ranges_concat != 202403L -# error "__cpp_lib_ranges_concat should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should be defined in c++26" -# endif -# if __cpp_lib_ranges_join_with != 202202L -# error "__cpp_lib_ranges_join_with should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should be defined in c++26" -# endif -# if __cpp_lib_ranges_repeat != 202207L -# error "__cpp_lib_ranges_repeat should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should be defined in c++26" -# endif -# if __cpp_lib_ranges_slide != 202202L -# error "__cpp_lib_ranges_slide should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should be defined in c++26" -# endif -# if __cpp_lib_ranges_to_container != 202202L -# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should be defined in c++26" -# endif -# if __cpp_lib_ranges_zip != 202110L -# error "__cpp_lib_ranges_zip should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" +# endif +# if __cpp_lib_default_template_type_for_algorithm_values != 202403L +# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++26" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should be defined in c++26" +# endif +# if __cpp_lib_ranges_as_const != 202207L +# error "__cpp_lib_ranges_as_const should have the value 202207L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should be defined in c++26" +# endif +# if __cpp_lib_ranges_as_rvalue != 202207L +# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should be defined in c++26" +# endif +# if __cpp_lib_ranges_chunk != 202202L +# error "__cpp_lib_ranges_chunk should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should be defined in c++26" +# endif +# if __cpp_lib_ranges_chunk_by != 202202L +# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should be defined in c++26" +# endif +# if __cpp_lib_ranges_concat != 202403L +# error "__cpp_lib_ranges_concat should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should be defined in c++26" +# endif +# if __cpp_lib_ranges_join_with != 202202L +# error "__cpp_lib_ranges_join_with should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should be defined in c++26" +# endif +# if __cpp_lib_ranges_repeat != 202207L +# error "__cpp_lib_ranges_repeat should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should be defined in c++26" +# endif +# if __cpp_lib_ranges_slide != 202202L +# error "__cpp_lib_ranges_slide should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should be defined in c++26" +# endif +# if __cpp_lib_ranges_to_container != 202202L +# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should be defined in c++26" +# endif +# if __cpp_lib_ranges_zip != 202110L +# error "__cpp_lib_ranges_zip should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/ratio.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/ratio.version.compile.pass.cpp index 38adba62079d7..6507e1c683f24 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/ratio.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/ratio.version.compile.pass.cpp @@ -5,61 +5,59 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_ratio 202306L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_ratio -# error "__cpp_lib_ratio should be defined in c++26" -# endif -# if __cpp_lib_ratio != 202306L -# error "__cpp_lib_ratio should have the value 202306L in c++26" -# endif +# ifndef __cpp_lib_ratio +# error "__cpp_lib_ratio should be defined in c++26" +# endif +# if __cpp_lib_ratio != 202306L +# error "__cpp_lib_ratio should have the value 202306L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 5aa8ae0eba72c..d6acf35d63ab0 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,60 +15,60 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_nonmember_container_access 201411L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 7e254ccb1ff4f..4246f2515dc09 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 @@ -5,70 +5,68 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif #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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 bdc818ce8d688..fd0f0c51e72b2 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-threads @@ -17,75 +15,75 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_semaphore 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined before c++20" -# endif +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined before c++20" -# endif +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined before c++20" -# endif +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should be defined in c++20" -# endif -# if __cpp_lib_semaphore != 201907L -# error "__cpp_lib_semaphore should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should be defined in c++20" +# endif +# if __cpp_lib_semaphore != 201907L +# error "__cpp_lib_semaphore should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should be defined in c++23" -# endif -# if __cpp_lib_semaphore != 201907L -# error "__cpp_lib_semaphore should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should be defined in c++23" +# endif +# if __cpp_lib_semaphore != 201907L +# error "__cpp_lib_semaphore should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should be defined in c++26" -# endif -# if __cpp_lib_semaphore != 201907L -# error "__cpp_lib_semaphore should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should be defined in c++26" +# endif +# if __cpp_lib_semaphore != 201907L +# error "__cpp_lib_semaphore should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 a733f17c3153c..80eae6e1fd274 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 @@ -5,326 +5,317 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_associative_heterogeneous_erasure 202110L [C++23] - __cpp_lib_associative_heterogeneous_insertion 202306L [C++26] - __cpp_lib_containers_ranges 202202L [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] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should not be defined before c++14" -# endif +# ifdef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should not be defined before c++14" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++14" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14" -# endif +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++14" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++17" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++17" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++17" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++17" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif #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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++20" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++20" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++20" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++20" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++23" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++23" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++23" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++23" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_insertion != 202306L -# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++26" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++26" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_insertion != 202306L +# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++26" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++26" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 0dd6303cbfd04..4392173ebbb3a 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-threads @@ -17,154 +15,153 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_shared_mutex 201505L [C++17] - __cpp_lib_shared_timed_mutex 201402L [C++14] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined before c++17" -# endif +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined before c++17" +# endif -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined before c++14" -# endif +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined before c++14" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined before c++17" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++14" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++14" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined before c++17" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++14" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++14" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #elif TEST_STD_VER == 17 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should be defined in c++17" -# endif -# if __cpp_lib_shared_mutex != 201505L -# error "__cpp_lib_shared_mutex should have the value 201505L in c++17" -# endif -# else -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++17" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should be defined in c++17" +# endif +# if __cpp_lib_shared_mutex != 201505L +# error "__cpp_lib_shared_mutex should have the value 201505L in c++17" +# endif +# else +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++17" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should be defined in c++20" -# endif -# if __cpp_lib_shared_mutex != 201505L -# error "__cpp_lib_shared_mutex should have the value 201505L in c++20" -# endif -# else -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++20" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should be defined in c++20" +# endif +# if __cpp_lib_shared_mutex != 201505L +# error "__cpp_lib_shared_mutex should have the value 201505L in c++20" +# endif +# else +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++20" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should be defined in c++23" -# endif -# if __cpp_lib_shared_mutex != 201505L -# error "__cpp_lib_shared_mutex should have the value 201505L in c++23" -# endif -# else -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++23" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should be defined in c++23" +# endif +# if __cpp_lib_shared_mutex != 201505L +# error "__cpp_lib_shared_mutex should have the value 201505L in c++23" +# endif +# else +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++23" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should be defined in c++26" -# endif -# if __cpp_lib_shared_mutex != 201505L -# error "__cpp_lib_shared_mutex should have the value 201505L in c++26" -# endif -# else -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++26" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++26" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should be defined in c++26" +# endif +# if __cpp_lib_shared_mutex != 201505L +# error "__cpp_lib_shared_mutex should have the value 201505L in c++26" +# endif +# else +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++26" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++26" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 7c5d882a37e61..2b326e2b37832 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 @@ -5,67 +5,65 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_source_location 201907L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_source_location -# error "__cpp_lib_source_location should not be defined before c++20" -# endif +# ifdef __cpp_lib_source_location +# error "__cpp_lib_source_location should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_source_location -# error "__cpp_lib_source_location should not be defined before c++20" -# endif +# ifdef __cpp_lib_source_location +# error "__cpp_lib_source_location should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_source_location -# error "__cpp_lib_source_location should not be defined before c++20" -# endif +# ifdef __cpp_lib_source_location +# error "__cpp_lib_source_location should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_source_location -# error "__cpp_lib_source_location should be defined in c++20" -# endif -# if __cpp_lib_source_location != 201907L -# error "__cpp_lib_source_location should have the value 201907L in c++20" -# endif +# ifndef __cpp_lib_source_location +# error "__cpp_lib_source_location should be defined in c++20" +# endif +# if __cpp_lib_source_location != 201907L +# error "__cpp_lib_source_location should have the value 201907L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_source_location -# error "__cpp_lib_source_location should be defined in c++23" -# endif -# if __cpp_lib_source_location != 201907L -# error "__cpp_lib_source_location should have the value 201907L in c++23" -# endif +# ifndef __cpp_lib_source_location +# error "__cpp_lib_source_location should be defined in c++23" +# endif +# if __cpp_lib_source_location != 201907L +# error "__cpp_lib_source_location should have the value 201907L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_source_location -# error "__cpp_lib_source_location should be defined in c++26" -# endif -# if __cpp_lib_source_location != 201907L -# error "__cpp_lib_source_location should have the value 201907L in c++26" -# endif +# ifndef __cpp_lib_source_location +# error "__cpp_lib_source_location should be defined in c++26" +# endif +# if __cpp_lib_source_location != 201907L +# error "__cpp_lib_source_location should have the value 201907L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 e1694308f12a7..3c550e0fa676e 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 @@ -5,123 +5,119 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_span 202002L [C++20] - __cpp_lib_span_at 202311L [C++26] - __cpp_lib_span_initializer_list 202311L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_span -# error "__cpp_lib_span should not be defined before c++20" -# endif +# ifdef __cpp_lib_span +# error "__cpp_lib_span should not be defined before c++20" +# endif -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_span -# error "__cpp_lib_span should not be defined before c++20" -# endif +# ifdef __cpp_lib_span +# error "__cpp_lib_span should not be defined before c++20" +# endif -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_span -# error "__cpp_lib_span should not be defined before c++20" -# endif +# ifdef __cpp_lib_span +# error "__cpp_lib_span should not be defined before c++20" +# endif -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_span -# error "__cpp_lib_span should be defined in c++20" -# endif -# if __cpp_lib_span != 202002L -# error "__cpp_lib_span should have the value 202002L in c++20" -# endif +# ifndef __cpp_lib_span +# error "__cpp_lib_span should be defined in c++20" +# endif +# if __cpp_lib_span != 202002L +# error "__cpp_lib_span should have the value 202002L in c++20" +# endif -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_span -# error "__cpp_lib_span should be defined in c++23" -# endif -# if __cpp_lib_span != 202002L -# error "__cpp_lib_span should have the value 202002L in c++23" -# endif +# ifndef __cpp_lib_span +# error "__cpp_lib_span should be defined in c++23" +# endif +# if __cpp_lib_span != 202002L +# error "__cpp_lib_span should have the value 202002L in c++23" +# endif -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_span -# error "__cpp_lib_span should be defined in c++26" -# endif -# if __cpp_lib_span != 202002L -# error "__cpp_lib_span should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_span_at -# error "__cpp_lib_span_at should be defined in c++26" -# endif -# if __cpp_lib_span_at != 202311L -# error "__cpp_lib_span_at should have the value 202311L in c++26" -# endif - -# ifndef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should be defined in c++26" -# endif -# if __cpp_lib_span_initializer_list != 202311L -# error "__cpp_lib_span_initializer_list should have the value 202311L in c++26" -# endif +# ifndef __cpp_lib_span +# error "__cpp_lib_span should be defined in c++26" +# endif +# if __cpp_lib_span != 202002L +# error "__cpp_lib_span should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_span_at +# error "__cpp_lib_span_at should be defined in c++26" +# endif +# if __cpp_lib_span_at != 202311L +# error "__cpp_lib_span_at should have the value 202311L in c++26" +# endif + +# ifndef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should be defined in c++26" +# endif +# if __cpp_lib_span_initializer_list != 202311L +# error "__cpp_lib_span_initializer_list should have the value 202311L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/sstream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/sstream.version.compile.pass.cpp index ad3c8e4012ecf..b7650c436128e 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/sstream.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/sstream.version.compile.pass.cpp @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,51 +15,51 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_sstream_from_string_view 202306L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should be defined in c++26" -# endif -# if __cpp_lib_sstream_from_string_view != 202306L -# error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26" -# endif +# ifndef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should be defined in c++26" +# endif +# if __cpp_lib_sstream_from_string_view != 202306L +# error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 db51c4782b6ce..1e530ccc3043d 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 @@ -5,95 +5,92 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_adaptor_iterator_pair_constructor 202106L [C++23] - __cpp_lib_containers_ranges 202202L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges 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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges 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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges 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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_adaptor_iterator_pair_constructor -# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23" -# endif -# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L -# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23" -# endif +# ifndef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23" +# endif +# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L +# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23" +# endif -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_adaptor_iterator_pair_constructor -# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26" -# endif -# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L -# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26" -# endif +# ifndef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26" +# endif +# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L +# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26" +# endif -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 c25137adbc156..113ffce2a5d12 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-threads @@ -17,54 +15,54 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_stdatomic_h 202011L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should not be defined before c++23" -# endif +# ifdef __cpp_lib_stdatomic_h +# 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++23" -# endif +# ifdef __cpp_lib_stdatomic_h +# 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++23" -# endif +# ifdef __cpp_lib_stdatomic_h +# 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++23" -# endif +# ifdef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should be defined in c++23" -# endif -# if __cpp_lib_stdatomic_h != 202011L -# error "__cpp_lib_stdatomic_h should have the value 202011L in c++23" -# endif +# ifndef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should be defined in c++23" +# endif +# if __cpp_lib_stdatomic_h != 202011L +# error "__cpp_lib_stdatomic_h should have the value 202011L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should be defined in c++26" -# endif -# if __cpp_lib_stdatomic_h != 202011L -# error "__cpp_lib_stdatomic_h should have the value 202011L in c++26" -# endif +# ifndef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should be defined in c++26" +# endif +# if __cpp_lib_stdatomic_h != 202011L +# error "__cpp_lib_stdatomic_h should have the value 202011L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/stop_token.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/stop_token.version.compile.pass.cpp index c4fa735bf4e63..ac70b0c21e018 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/stop_token.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/stop_token.version.compile.pass.cpp @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-threads @@ -17,75 +15,75 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_jthread 201911L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++20" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++20" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++20" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++20" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++23" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++23" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++23" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++23" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++26" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++26" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++26" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++26" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 69a938edd1cb9..40a6c07081008 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 @@ -5,501 +5,485 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_char8_t 201907L [C++20] - __cpp_lib_constexpr_string 201907L [C++20] - __cpp_lib_containers_ranges 202202L [C++23] - __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] - __cpp_lib_erase_if 202002L [C++20] - __cpp_lib_nonmember_container_access 201411L [C++17] - __cpp_lib_starts_ends_with 201711L [C++20] - __cpp_lib_string_contains 202011L [C++23] - __cpp_lib_string_resize_and_overwrite 202110L [C++23] - __cpp_lib_string_udls 201304L [C++14] - __cpp_lib_string_view 201606L [C++17] - 201803L [C++20] - 202403L [C++26] - __cpp_lib_to_string 202306L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should not be defined before c++20" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif -# ifdef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" +# endif -# ifdef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should not be defined before c++14" -# endif +# ifdef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should not be defined before c++14" +# endif -# ifdef __cpp_lib_string_view -# error "__cpp_lib_string_view should not be defined before c++17" -# endif +# ifdef __cpp_lib_string_view +# error "__cpp_lib_string_view should not be defined before c++17" +# endif -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should not be defined before c++20" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif -# ifdef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" +# endif -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++14" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++14" -# endif +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++14" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++14" +# endif -# ifdef __cpp_lib_string_view -# error "__cpp_lib_string_view should not be defined before c++17" -# endif +# ifdef __cpp_lib_string_view +# error "__cpp_lib_string_view should not be defined before c++17" +# endif -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should not be defined before c++20" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif - -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++17" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++17" -# endif -# if __cpp_lib_string_view != 201606L -# error "__cpp_lib_string_view should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should not be defined before c++20" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif + +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++17" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++17" +# endif +# if __cpp_lib_string_view != 201606L +# error "__cpp_lib_string_view should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# 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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should be defined in c++20" -# endif -# if __cpp_lib_constexpr_string != 201907L -# error "__cpp_lib_constexpr_string should have the value 201907L in c++20" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++20" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++20" -# endif - -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++20" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++20" -# endif -# if __cpp_lib_string_view != 201803L -# error "__cpp_lib_string_view should have the value 201803L in c++20" -# endif - -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should be defined in c++20" +# endif +# if __cpp_lib_constexpr_string != 201907L +# error "__cpp_lib_constexpr_string should have the value 201907L in c++20" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++20" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++20" +# endif + +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++20" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++20" +# endif +# if __cpp_lib_string_view != 201803L +# error "__cpp_lib_string_view should have the value 201803L in c++20" +# endif + +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should be defined in c++23" -# endif -# if __cpp_lib_constexpr_string != 201907L -# error "__cpp_lib_constexpr_string should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++23" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should be defined in c++23" -# endif -# if __cpp_lib_string_contains != 202011L -# error "__cpp_lib_string_contains should have the value 202011L in c++23" -# endif - -# ifndef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should be defined in c++23" -# endif -# if __cpp_lib_string_resize_and_overwrite != 202110L -# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++23" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++23" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++23" -# endif -# if __cpp_lib_string_view != 201803L -# error "__cpp_lib_string_view should have the value 201803L in c++23" -# endif - -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should be defined in c++23" +# endif +# if __cpp_lib_constexpr_string != 201907L +# error "__cpp_lib_constexpr_string should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++23" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should be defined in c++23" +# endif +# if __cpp_lib_string_contains != 202011L +# error "__cpp_lib_string_contains should have the value 202011L in c++23" +# endif + +# ifndef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should be defined in c++23" +# endif +# if __cpp_lib_string_resize_and_overwrite != 202110L +# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++23" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++23" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++23" +# endif +# if __cpp_lib_string_view != 201803L +# error "__cpp_lib_string_view should have the value 201803L in c++23" +# endif + +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should be defined in c++26" -# endif -# if __cpp_lib_constexpr_string != 201907L -# error "__cpp_lib_constexpr_string should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" -# endif -# if __cpp_lib_default_template_type_for_algorithm_values != 202403L -# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++26" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should be defined in c++26" -# endif -# if __cpp_lib_string_contains != 202011L -# error "__cpp_lib_string_contains should have the value 202011L in c++26" -# endif - -# ifndef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should be defined in c++26" -# endif -# if __cpp_lib_string_resize_and_overwrite != 202110L -# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++26" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++26" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++26" -# endif -# if __cpp_lib_string_view != 202403L -# error "__cpp_lib_string_view should have the value 202403L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_string -# error "__cpp_lib_to_string should be defined in c++26" -# endif -# if __cpp_lib_to_string != 202306L -# error "__cpp_lib_to_string should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!" -# endif -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should be defined in c++26" +# endif +# if __cpp_lib_constexpr_string != 201907L +# error "__cpp_lib_constexpr_string should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" +# endif +# if __cpp_lib_default_template_type_for_algorithm_values != 202403L +# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++26" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should be defined in c++26" +# endif +# if __cpp_lib_string_contains != 202011L +# error "__cpp_lib_string_contains should have the value 202011L in c++26" +# endif + +# ifndef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should be defined in c++26" +# endif +# if __cpp_lib_string_resize_and_overwrite != 202110L +# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++26" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++26" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++26" +# endif +# if __cpp_lib_string_view != 202403L +# error "__cpp_lib_string_view should have the value 202403L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_string +# error "__cpp_lib_to_string should be defined in c++26" +# endif +# if __cpp_lib_to_string != 202306L +# error "__cpp_lib_to_string should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 f3c70cf977973..bda523614106c 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 @@ -5,257 +5,248 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_char8_t 201907L [C++20] - __cpp_lib_constexpr_string_view 201811L [C++20] - __cpp_lib_freestanding_string_view 202311L [C++26] - __cpp_lib_starts_ends_with 201711L [C++20] - __cpp_lib_string_contains 202011L [C++23] - __cpp_lib_string_view 201606L [C++17] - 201803L [C++20] - 202403L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should not be defined before c++20" +# endif -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif -# ifdef __cpp_lib_string_view -# error "__cpp_lib_string_view should not be defined before c++17" -# endif +# ifdef __cpp_lib_string_view +# error "__cpp_lib_string_view should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should not be defined before c++20" +# endif -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif -# ifdef __cpp_lib_string_view -# error "__cpp_lib_string_view should not be defined before c++17" -# endif +# ifdef __cpp_lib_string_view +# error "__cpp_lib_string_view should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should not be defined before c++20" +# endif -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++17" -# endif -# if __cpp_lib_string_view != 201606L -# error "__cpp_lib_string_view should have the value 201606L in c++17" -# endif +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++17" +# endif +# if __cpp_lib_string_view != 201606L +# error "__cpp_lib_string_view should have the value 201606L in c++17" +# endif #elif TEST_STD_VER == 20 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should be defined in c++20" -# endif -# if __cpp_lib_constexpr_string_view != 201811L -# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20" -# endif - -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++20" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++20" -# endif - -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++20" -# endif -# if __cpp_lib_string_view != 201803L -# error "__cpp_lib_string_view should have the value 201803L in c++20" -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should be defined in c++20" +# endif +# if __cpp_lib_constexpr_string_view != 201811L +# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20" +# endif + +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++20" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++20" +# endif + +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++20" +# endif +# if __cpp_lib_string_view != 201803L +# error "__cpp_lib_string_view should have the value 201803L in c++20" +# endif #elif TEST_STD_VER == 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should be defined in c++23" -# endif -# if __cpp_lib_constexpr_string_view != 201811L -# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23" -# endif - -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++23" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should be defined in c++23" -# endif -# if __cpp_lib_string_contains != 202011L -# error "__cpp_lib_string_contains should have the value 202011L in c++23" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++23" -# endif -# if __cpp_lib_string_view != 201803L -# error "__cpp_lib_string_view should have the value 201803L in c++23" -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should be defined in c++23" +# endif +# if __cpp_lib_constexpr_string_view != 201811L +# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23" +# endif + +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++23" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should be defined in c++23" +# endif +# if __cpp_lib_string_contains != 202011L +# error "__cpp_lib_string_contains should have the value 202011L in c++23" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++23" +# endif +# if __cpp_lib_string_view != 201803L +# error "__cpp_lib_string_view should have the value 201803L in c++23" +# endif #elif TEST_STD_VER > 23 -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should be defined in c++26" -# endif -# if __cpp_lib_constexpr_string_view != 201811L -# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should be defined in c++26" -# endif -# if __cpp_lib_freestanding_string_view != 202311L -# error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++26" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should be defined in c++26" -# endif -# if __cpp_lib_string_contains != 202011L -# error "__cpp_lib_string_contains should have the value 202011L in c++26" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++26" -# endif -# if __cpp_lib_string_view != 202403L -# error "__cpp_lib_string_view should have the value 202403L in c++26" -# endif +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should be defined in c++26" +# endif +# if __cpp_lib_constexpr_string_view != 201811L +# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should be defined in c++26" +# endif +# if __cpp_lib_freestanding_string_view != 202311L +# error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++26" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should be defined in c++26" +# endif +# if __cpp_lib_string_contains != 202011L +# error "__cpp_lib_string_contains should have the value 202011L in c++26" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++26" +# endif +# if __cpp_lib_string_view != 202403L +# error "__cpp_lib_string_view should have the value 202403L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp b/libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp index 9cf763701ffc0..0eaf9f1aff4fe 100644 --- a/libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp +++ b/libcxx/test/std/language.support/support.limits/support.limits.general/syncstream.version.compile.pass.cpp @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-localization @@ -17,75 +15,75 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_syncbuf 201803L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined before c++20" -# endif +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined before c++20" -# endif +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined before c++20" -# endif +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM -# ifndef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should be defined in c++20" -# endif -# if __cpp_lib_syncbuf != 201803L -# error "__cpp_lib_syncbuf should have the value 201803L in c++20" -# endif -# else -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM +# ifndef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should be defined in c++20" +# endif +# if __cpp_lib_syncbuf != 201803L +# error "__cpp_lib_syncbuf should have the value 201803L in c++20" +# endif +# else +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM -# ifndef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should be defined in c++23" -# endif -# if __cpp_lib_syncbuf != 201803L -# error "__cpp_lib_syncbuf should have the value 201803L in c++23" -# endif -# else -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM +# ifndef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should be defined in c++23" +# endif +# if __cpp_lib_syncbuf != 201803L +# error "__cpp_lib_syncbuf should have the value 201803L in c++23" +# endif +# else +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM -# ifndef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should be defined in c++26" -# endif -# if __cpp_lib_syncbuf != 201803L -# error "__cpp_lib_syncbuf should have the value 201803L in c++26" -# endif -# else -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM +# ifndef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should be defined in c++26" +# endif +# if __cpp_lib_syncbuf != 201803L +# error "__cpp_lib_syncbuf should have the value 201803L in c++26" +# endif +# else +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 d1a9919afeb37..e6c44a223ee89 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 @@ -5,11 +5,9 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // UNSUPPORTED: no-threads @@ -17,118 +15,117 @@ // Test the feature test macros defined by -/* Constant Value - __cpp_lib_formatters 202302L [C++23] - __cpp_lib_jthread 201911L [C++20] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined before c++23" -# endif +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined before c++23" +# endif -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined before c++23" -# endif +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined before c++23" +# endif -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined before c++23" -# endif +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined before c++23" +# endif -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++20" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++20" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++20" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++20" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER == 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_formatters -# error "__cpp_lib_formatters should be defined in c++23" -# endif -# if __cpp_lib_formatters != 202302L -# error "__cpp_lib_formatters should have the value 202302L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++23" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++23" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_formatters +# error "__cpp_lib_formatters should be defined in c++23" +# endif +# if __cpp_lib_formatters != 202302L +# error "__cpp_lib_formatters should have the value 202302L in c++23" +# endif +# else +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++23" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++23" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_formatters -# error "__cpp_lib_formatters should be defined in c++26" -# endif -# if __cpp_lib_formatters != 202302L -# error "__cpp_lib_formatters should have the value 202302L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++26" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++26" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_formatters +# error "__cpp_lib_formatters should be defined in c++26" +# endif +# if __cpp_lib_formatters != 202302L +# error "__cpp_lib_formatters should have the value 202302L in c++26" +# endif +# else +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++26" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++26" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 6dd2e968fb8da..f4a2fd8b29f45 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 @@ -5,342 +5,332 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_apply 201603L [C++17] - __cpp_lib_constexpr_tuple 201811L [C++20] - __cpp_lib_constrained_equality 202403L [C++26] - __cpp_lib_make_from_tuple 201606L [C++17] - __cpp_lib_ranges_zip 202110L [C++23] - __cpp_lib_tuple_element_t 201402L [C++14] - __cpp_lib_tuple_like 202207L [C++23] - 202311L [C++26] - __cpp_lib_tuples_by_type 201304L [C++14] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_apply -# error "__cpp_lib_apply should not be defined before c++17" -# endif +# ifdef __cpp_lib_apply +# error "__cpp_lib_apply should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should not be defined before c++20" +# endif -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should not be defined before c++17" -# endif +# ifdef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should not be defined before c++17" +# endif -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif -# ifdef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should not be defined before c++14" -# endif +# ifdef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should not be defined before c++14" +# endif -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif -# ifdef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should not be defined before c++14" -# endif +# ifdef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should not be defined before c++14" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_apply -# error "__cpp_lib_apply should not be defined before c++17" -# endif +# ifdef __cpp_lib_apply +# error "__cpp_lib_apply should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should not be defined before c++20" +# endif -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should not be defined before c++17" -# endif +# ifdef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should not be defined before c++17" +# endif -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++14" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++14" -# endif +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++14" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++14" +# endif -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++14" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++14" -# endif +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++14" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++14" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_apply -# error "__cpp_lib_apply should be defined in c++17" -# endif -# if __cpp_lib_apply != 201603L -# error "__cpp_lib_apply should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should be defined in c++17" -# endif -# if __cpp_lib_make_from_tuple != 201606L -# error "__cpp_lib_make_from_tuple should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++17" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++17" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++17" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++17" -# endif +# ifndef __cpp_lib_apply +# error "__cpp_lib_apply should be defined in c++17" +# endif +# if __cpp_lib_apply != 201603L +# error "__cpp_lib_apply should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should be defined in c++17" +# endif +# if __cpp_lib_make_from_tuple != 201606L +# error "__cpp_lib_make_from_tuple should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++17" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++17" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++17" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_apply -# error "__cpp_lib_apply should be defined in c++20" -# endif -# if __cpp_lib_apply != 201603L -# error "__cpp_lib_apply should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should be defined in c++20" -# endif -# if __cpp_lib_constexpr_tuple != 201811L -# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should be defined in c++20" -# endif -# if __cpp_lib_make_from_tuple != 201606L -# error "__cpp_lib_make_from_tuple should have the value 201606L in c++20" -# endif - -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++20" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++20" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++20" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++20" -# endif +# ifndef __cpp_lib_apply +# error "__cpp_lib_apply should be defined in c++20" +# endif +# if __cpp_lib_apply != 201603L +# error "__cpp_lib_apply should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should be defined in c++20" +# endif +# if __cpp_lib_constexpr_tuple != 201811L +# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should be defined in c++20" +# endif +# if __cpp_lib_make_from_tuple != 201606L +# error "__cpp_lib_make_from_tuple should have the value 201606L in c++20" +# endif + +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++20" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++20" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++20" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_apply -# error "__cpp_lib_apply should be defined in c++23" -# endif -# if __cpp_lib_apply != 201603L -# error "__cpp_lib_apply should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should be defined in c++23" -# endif -# if __cpp_lib_constexpr_tuple != 201811L -# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++23" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should be defined in c++23" -# endif -# if __cpp_lib_make_from_tuple != 201606L -# error "__cpp_lib_make_from_tuple should have the value 201606L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should be defined in c++23" -# endif -# if __cpp_lib_ranges_zip != 202110L -# error "__cpp_lib_ranges_zip should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++23" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++23" -# endif -# if __cpp_lib_tuple_like != 202207L -# error "__cpp_lib_tuple_like should have the value 202207L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++23" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++23" -# endif +# ifndef __cpp_lib_apply +# error "__cpp_lib_apply should be defined in c++23" +# endif +# if __cpp_lib_apply != 201603L +# error "__cpp_lib_apply should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should be defined in c++23" +# endif +# if __cpp_lib_constexpr_tuple != 201811L +# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++23" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should be defined in c++23" +# endif +# if __cpp_lib_make_from_tuple != 201606L +# error "__cpp_lib_make_from_tuple should have the value 201606L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should be defined in c++23" +# endif +# if __cpp_lib_ranges_zip != 202110L +# error "__cpp_lib_ranges_zip should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++23" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++23" +# endif +# if __cpp_lib_tuple_like != 202207L +# error "__cpp_lib_tuple_like should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++23" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_apply -# error "__cpp_lib_apply should be defined in c++26" -# endif -# if __cpp_lib_apply != 201603L -# error "__cpp_lib_apply should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should be defined in c++26" -# endif -# if __cpp_lib_constexpr_tuple != 201811L -# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should be defined in c++26" -# endif -# if __cpp_lib_constrained_equality != 202403L -# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should be defined in c++26" -# endif -# if __cpp_lib_make_from_tuple != 201606L -# error "__cpp_lib_make_from_tuple should have the value 201606L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should be defined in c++26" -# endif -# if __cpp_lib_ranges_zip != 202110L -# error "__cpp_lib_ranges_zip should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++26" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++26" -# endif -# if __cpp_lib_tuple_like != 202311L -# error "__cpp_lib_tuple_like should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++26" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++26" -# endif +# ifndef __cpp_lib_apply +# error "__cpp_lib_apply should be defined in c++26" +# endif +# if __cpp_lib_apply != 201603L +# error "__cpp_lib_apply should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should be defined in c++26" +# endif +# if __cpp_lib_constexpr_tuple != 201811L +# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should be defined in c++26" +# endif +# if __cpp_lib_constrained_equality != 202403L +# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should be defined in c++26" +# endif +# if __cpp_lib_make_from_tuple != 201606L +# error "__cpp_lib_make_from_tuple should have the value 201606L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should be defined in c++26" +# endif +# if __cpp_lib_ranges_zip != 202110L +# error "__cpp_lib_ranges_zip should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++26" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++26" +# endif +# if __cpp_lib_tuple_like != 202311L +# error "__cpp_lib_tuple_like should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++26" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 d9d698ace2b65..45c51b5807c69 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 @@ -5,988 +5,962 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_bool_constant 201505L [C++17] - __cpp_lib_bounded_array_traits 201902L [C++20] - __cpp_lib_has_unique_object_representations 201606L [C++17] - __cpp_lib_integral_constant_callable 201304L [C++14] - __cpp_lib_is_aggregate 201703L [C++17] - __cpp_lib_is_constant_evaluated 201811L [C++20] - __cpp_lib_is_final 201402L [C++14] - __cpp_lib_is_implicit_lifetime 202302L [C++23] - __cpp_lib_is_invocable 201703L [C++17] - __cpp_lib_is_layout_compatible 201907L [C++20] - __cpp_lib_is_nothrow_convertible 201806L [C++20] - __cpp_lib_is_null_pointer 201309L [C++14] - __cpp_lib_is_pointer_interconvertible 201907L [C++20] - __cpp_lib_is_scoped_enum 202011L [C++23] - __cpp_lib_is_swappable 201603L [C++17] - __cpp_lib_is_virtual_base_of 202406L [C++26] - __cpp_lib_is_within_lifetime 202306L [C++26] - __cpp_lib_logical_traits 201510L [C++17] - __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] - __cpp_lib_type_identity 201806L [C++20] - __cpp_lib_type_trait_variable_templates 201510L [C++17] - __cpp_lib_void_t 201411L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should not be defined before c++17" -# endif +# ifdef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should not be defined before c++17" +# endif -# ifdef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should not be defined before c++20" -# endif +# ifdef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should not be defined before c++20" +# endif -# ifdef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should not be defined before c++17" -# endif +# ifdef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should not be defined before c++17" +# endif -# ifdef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should not be defined before c++14" -# endif +# ifdef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should not be defined before c++14" +# endif -# ifdef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should not be defined before c++17" -# endif +# ifdef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should not be defined before c++17" +# endif -# ifdef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" -# endif +# ifdef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" +# endif -# ifdef __cpp_lib_is_final -# error "__cpp_lib_is_final should not be defined before c++14" -# endif +# ifdef __cpp_lib_is_final +# error "__cpp_lib_is_final should not be defined before c++14" +# endif -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" -# endif +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" +# endif -# ifdef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should not be defined before c++17" -# endif +# ifdef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should not be defined before c++17" +# endif -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined before c++20" -# endif +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined before c++20" +# endif -# ifdef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" -# endif +# ifdef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" +# endif -# ifdef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should not be defined before c++14" -# endif +# ifdef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should not be defined before c++14" +# endif -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" -# endif +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" +# endif -# ifdef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should not be defined before c++23" -# endif +# ifdef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should not be defined before c++23" +# endif -# ifdef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should not be defined before c++17" -# endif +# ifdef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should not be defined before c++17" +# endif -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif -# ifdef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should not be defined before c++17" -# endif +# ifdef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should not be defined before c++17" +# endif -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined before c++23" -# endif +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined before c++23" +# endif -# ifdef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should not be defined before c++20" -# endif +# ifdef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should not be defined before c++20" +# endif -# ifdef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should not be defined before c++14" -# endif +# ifdef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should not be defined before c++14" +# endif -# ifdef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should not be defined before c++14" -# endif +# ifdef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should not be defined before c++14" +# endif -# ifdef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should not be defined before c++20" -# endif +# ifdef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should not be defined before c++20" +# endif -# ifdef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17" -# endif +# ifdef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17" +# endif -# ifdef __cpp_lib_void_t -# error "__cpp_lib_void_t should not be defined before c++17" -# endif +# ifdef __cpp_lib_void_t +# error "__cpp_lib_void_t should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should not be defined before c++17" -# endif - -# ifdef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should not be defined before c++20" -# endif - -# ifdef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should not be defined before c++17" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++14" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should not be defined before c++17" -# endif - -# ifdef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++14" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++14" -# endif - -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" -# endif - -# ifdef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should not be defined before c++17" -# endif - -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined before c++20" -# endif - -# ifdef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++14" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++14" -# endif - -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" -# endif - -# ifdef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should not be defined before c++23" -# endif - -# ifdef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should not be defined before c++17" -# endif - -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif - -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif - -# ifdef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should not be defined before c++17" -# endif - -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined before c++23" -# endif - -# ifdef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should not be defined before c++20" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++14" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++14" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should not be defined before c++20" -# endif - -# ifdef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17" -# endif - -# ifdef __cpp_lib_void_t -# error "__cpp_lib_void_t should not be defined before c++17" -# endif +# ifdef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should not be defined before c++17" +# endif + +# ifdef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should not be defined before c++20" +# endif + +# ifdef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should not be defined before c++17" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++14" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should not be defined before c++17" +# endif + +# ifdef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++14" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++14" +# endif + +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" +# endif + +# ifdef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should not be defined before c++17" +# endif + +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined before c++20" +# endif + +# ifdef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++14" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++14" +# endif + +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" +# endif + +# ifdef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should not be defined before c++23" +# endif + +# ifdef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should not be defined before c++17" +# endif + +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif + +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif + +# ifdef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should not be defined before c++17" +# endif + +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined before c++23" +# endif + +# ifdef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should not be defined before c++20" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++14" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++14" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should not be defined before c++20" +# endif + +# ifdef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17" +# endif + +# ifdef __cpp_lib_void_t +# error "__cpp_lib_void_t should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should be defined in c++17" -# endif -# if __cpp_lib_bool_constant != 201505L -# error "__cpp_lib_bool_constant should have the value 201505L in c++17" -# endif - -# ifdef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should not be defined before c++20" -# endif - -# ifndef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should be defined in c++17" -# endif -# if __cpp_lib_has_unique_object_representations != 201606L -# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++17" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should be defined in c++17" -# endif -# if __cpp_lib_is_aggregate != 201703L -# error "__cpp_lib_is_aggregate should have the value 201703L in c++17" -# endif - -# ifdef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++17" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++17" -# endif - -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should be defined in c++17" -# endif -# if __cpp_lib_is_invocable != 201703L -# error "__cpp_lib_is_invocable should have the value 201703L in c++17" -# endif - -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined before c++20" -# endif - -# ifdef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++17" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++17" -# endif - -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" -# endif - -# ifdef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should be defined in c++17" -# endif -# if __cpp_lib_is_swappable != 201603L -# error "__cpp_lib_is_swappable should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif - -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif - -# ifndef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should be defined in c++17" -# endif -# if __cpp_lib_logical_traits != 201510L -# error "__cpp_lib_logical_traits should have the value 201510L in c++17" -# endif - -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined before c++23" -# endif - -# ifdef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should not be defined before c++20" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++17" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++17" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should not be defined before c++20" -# endif - -# ifndef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should be defined in c++17" -# endif -# if __cpp_lib_type_trait_variable_templates != 201510L -# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17" -# endif - -# ifndef __cpp_lib_void_t -# error "__cpp_lib_void_t should be defined in c++17" -# endif -# if __cpp_lib_void_t != 201411L -# error "__cpp_lib_void_t should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should be defined in c++17" +# endif +# if __cpp_lib_bool_constant != 201505L +# error "__cpp_lib_bool_constant should have the value 201505L in c++17" +# endif + +# ifdef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should not be defined before c++20" +# endif + +# ifndef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should be defined in c++17" +# endif +# if __cpp_lib_has_unique_object_representations != 201606L +# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++17" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should be defined in c++17" +# endif +# if __cpp_lib_is_aggregate != 201703L +# error "__cpp_lib_is_aggregate should have the value 201703L in c++17" +# endif + +# ifdef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++17" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++17" +# endif + +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should be defined in c++17" +# endif +# if __cpp_lib_is_invocable != 201703L +# error "__cpp_lib_is_invocable should have the value 201703L in c++17" +# endif + +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined before c++20" +# endif + +# ifdef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++17" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++17" +# endif + +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" +# endif + +# ifdef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should be defined in c++17" +# endif +# if __cpp_lib_is_swappable != 201603L +# error "__cpp_lib_is_swappable should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif + +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif + +# ifndef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should be defined in c++17" +# endif +# if __cpp_lib_logical_traits != 201510L +# error "__cpp_lib_logical_traits should have the value 201510L in c++17" +# endif + +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined before c++23" +# endif + +# ifdef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should not be defined before c++20" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++17" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++17" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should not be defined before c++20" +# endif + +# ifndef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should be defined in c++17" +# endif +# if __cpp_lib_type_trait_variable_templates != 201510L +# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17" +# endif + +# ifndef __cpp_lib_void_t +# error "__cpp_lib_void_t should be defined in c++17" +# endif +# if __cpp_lib_void_t != 201411L +# error "__cpp_lib_void_t should have the value 201411L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifndef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should be defined in c++20" -# endif -# if __cpp_lib_bool_constant != 201505L -# error "__cpp_lib_bool_constant should have the value 201505L in c++20" -# endif - -# ifndef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should be defined in c++20" -# endif -# if __cpp_lib_bounded_array_traits != 201902L -# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20" -# endif - -# ifndef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should be defined in c++20" -# endif -# if __cpp_lib_has_unique_object_representations != 201606L -# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++20" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should be defined in c++20" -# endif -# if __cpp_lib_is_aggregate != 201703L -# error "__cpp_lib_is_aggregate should have the value 201703L in c++20" -# endif - -# ifndef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should be defined in c++20" -# endif -# if __cpp_lib_is_constant_evaluated != 201811L -# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++20" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++20" -# endif - -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should be defined in c++20" -# endif -# if __cpp_lib_is_invocable != 201703L -# error "__cpp_lib_is_invocable should have the value 201703L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should be defined in c++20" -# endif -# if __cpp_lib_is_layout_compatible != 201907L -# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should be defined in c++20" -# endif -# if __cpp_lib_is_nothrow_convertible != 201806L -# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++20" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should be defined in c++20" -# endif -# if __cpp_lib_is_pointer_interconvertible != 201907L -# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should be defined in c++20" -# endif -# if __cpp_lib_is_swappable != 201603L -# error "__cpp_lib_is_swappable should have the value 201603L in c++20" -# endif - -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif - -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif - -# ifndef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should be defined in c++20" -# endif -# if __cpp_lib_logical_traits != 201510L -# error "__cpp_lib_logical_traits should have the value 201510L in c++20" -# endif - -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined before c++23" -# endif - -# ifndef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should be defined in c++20" -# endif -# if __cpp_lib_remove_cvref != 201711L -# error "__cpp_lib_remove_cvref should have the value 201711L in c++20" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++20" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++20" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should be defined in c++20" -# endif -# if __cpp_lib_type_identity != 201806L -# error "__cpp_lib_type_identity should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should be defined in c++20" -# endif -# if __cpp_lib_type_trait_variable_templates != 201510L -# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20" -# endif - -# ifndef __cpp_lib_void_t -# error "__cpp_lib_void_t should be defined in c++20" -# endif -# if __cpp_lib_void_t != 201411L -# error "__cpp_lib_void_t should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should be defined in c++20" +# endif +# if __cpp_lib_bool_constant != 201505L +# error "__cpp_lib_bool_constant should have the value 201505L in c++20" +# endif + +# ifndef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should be defined in c++20" +# endif +# if __cpp_lib_bounded_array_traits != 201902L +# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20" +# endif + +# ifndef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should be defined in c++20" +# endif +# if __cpp_lib_has_unique_object_representations != 201606L +# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++20" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should be defined in c++20" +# endif +# if __cpp_lib_is_aggregate != 201703L +# error "__cpp_lib_is_aggregate should have the value 201703L in c++20" +# endif + +# ifndef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should be defined in c++20" +# endif +# if __cpp_lib_is_constant_evaluated != 201811L +# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++20" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++20" +# endif + +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should be defined in c++20" +# endif +# if __cpp_lib_is_invocable != 201703L +# error "__cpp_lib_is_invocable should have the value 201703L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should be defined in c++20" +# endif +# if __cpp_lib_is_layout_compatible != 201907L +# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should be defined in c++20" +# endif +# if __cpp_lib_is_nothrow_convertible != 201806L +# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++20" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should be defined in c++20" +# endif +# if __cpp_lib_is_pointer_interconvertible != 201907L +# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should be defined in c++20" +# endif +# if __cpp_lib_is_swappable != 201603L +# error "__cpp_lib_is_swappable should have the value 201603L in c++20" +# endif + +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif + +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif + +# ifndef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should be defined in c++20" +# endif +# if __cpp_lib_logical_traits != 201510L +# error "__cpp_lib_logical_traits should have the value 201510L in c++20" +# endif + +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined before c++23" +# endif + +# ifndef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should be defined in c++20" +# endif +# if __cpp_lib_remove_cvref != 201711L +# error "__cpp_lib_remove_cvref should have the value 201711L in c++20" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++20" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++20" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should be defined in c++20" +# endif +# if __cpp_lib_type_identity != 201806L +# error "__cpp_lib_type_identity should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should be defined in c++20" +# endif +# if __cpp_lib_type_trait_variable_templates != 201510L +# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20" +# endif + +# ifndef __cpp_lib_void_t +# error "__cpp_lib_void_t should be defined in c++20" +# endif +# if __cpp_lib_void_t != 201411L +# error "__cpp_lib_void_t should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should be defined in c++23" -# endif -# if __cpp_lib_bool_constant != 201505L -# error "__cpp_lib_bool_constant should have the value 201505L in c++23" -# endif - -# ifndef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should be defined in c++23" -# endif -# if __cpp_lib_bounded_array_traits != 201902L -# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++23" -# endif - -# ifndef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should be defined in c++23" -# endif -# if __cpp_lib_has_unique_object_representations != 201606L -# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++23" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should be defined in c++23" -# endif -# if __cpp_lib_is_aggregate != 201703L -# error "__cpp_lib_is_aggregate should have the value 201703L in c++23" -# endif - -# ifndef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should be defined in c++23" -# endif -# if __cpp_lib_is_constant_evaluated != 201811L -# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++23" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++23" -# endif - -# if __has_builtin(__builtin_is_implicit_lifetime) -# ifndef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should be defined in c++23" -# endif -# if __cpp_lib_is_implicit_lifetime != 202302L -# error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++23" -# endif -# else -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should be defined in c++23" -# endif -# if __cpp_lib_is_invocable != 201703L -# error "__cpp_lib_is_invocable should have the value 201703L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should be defined in c++23" -# endif -# if __cpp_lib_is_layout_compatible != 201907L -# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should be defined in c++23" -# endif -# if __cpp_lib_is_nothrow_convertible != 201806L -# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++23" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should be defined in c++23" -# endif -# if __cpp_lib_is_pointer_interconvertible != 201907L -# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should be defined in c++23" -# endif -# if __cpp_lib_is_scoped_enum != 202011L -# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++23" -# endif - -# ifndef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should be defined in c++23" -# endif -# if __cpp_lib_is_swappable != 201603L -# error "__cpp_lib_is_swappable should have the value 201603L in c++23" -# endif - -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif - -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif - -# ifndef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should be defined in c++23" -# endif -# if __cpp_lib_logical_traits != 201510L -# error "__cpp_lib_logical_traits should have the value 201510L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should be defined in c++23" -# endif -# if __cpp_lib_reference_from_temporary != 202202L -# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should be defined in c++23" -# endif -# if __cpp_lib_remove_cvref != 201711L -# error "__cpp_lib_remove_cvref should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++23" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++23" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should be defined in c++23" -# endif -# if __cpp_lib_type_identity != 201806L -# error "__cpp_lib_type_identity should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should be defined in c++23" -# endif -# if __cpp_lib_type_trait_variable_templates != 201510L -# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++23" -# endif - -# ifndef __cpp_lib_void_t -# error "__cpp_lib_void_t should be defined in c++23" -# endif -# if __cpp_lib_void_t != 201411L -# error "__cpp_lib_void_t should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should be defined in c++23" +# endif +# if __cpp_lib_bool_constant != 201505L +# error "__cpp_lib_bool_constant should have the value 201505L in c++23" +# endif + +# ifndef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should be defined in c++23" +# endif +# if __cpp_lib_bounded_array_traits != 201902L +# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++23" +# endif + +# ifndef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should be defined in c++23" +# endif +# if __cpp_lib_has_unique_object_representations != 201606L +# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++23" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should be defined in c++23" +# endif +# if __cpp_lib_is_aggregate != 201703L +# error "__cpp_lib_is_aggregate should have the value 201703L in c++23" +# endif + +# ifndef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should be defined in c++23" +# endif +# if __cpp_lib_is_constant_evaluated != 201811L +# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++23" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++23" +# endif + +# if __has_builtin(__builtin_is_implicit_lifetime) +# ifndef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should be defined in c++23" +# endif +# if __cpp_lib_is_implicit_lifetime != 202302L +# error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++23" +# endif +# else +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should be defined in c++23" +# endif +# if __cpp_lib_is_invocable != 201703L +# error "__cpp_lib_is_invocable should have the value 201703L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should be defined in c++23" +# endif +# if __cpp_lib_is_layout_compatible != 201907L +# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should be defined in c++23" +# endif +# if __cpp_lib_is_nothrow_convertible != 201806L +# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++23" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should be defined in c++23" +# endif +# if __cpp_lib_is_pointer_interconvertible != 201907L +# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should be defined in c++23" +# endif +# if __cpp_lib_is_scoped_enum != 202011L +# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++23" +# endif + +# ifndef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should be defined in c++23" +# endif +# if __cpp_lib_is_swappable != 201603L +# error "__cpp_lib_is_swappable should have the value 201603L in c++23" +# endif + +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif + +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif + +# ifndef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should be defined in c++23" +# endif +# if __cpp_lib_logical_traits != 201510L +# error "__cpp_lib_logical_traits should have the value 201510L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should be defined in c++23" +# endif +# if __cpp_lib_reference_from_temporary != 202202L +# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should be defined in c++23" +# endif +# if __cpp_lib_remove_cvref != 201711L +# error "__cpp_lib_remove_cvref should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++23" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++23" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should be defined in c++23" +# endif +# if __cpp_lib_type_identity != 201806L +# error "__cpp_lib_type_identity should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should be defined in c++23" +# endif +# if __cpp_lib_type_trait_variable_templates != 201510L +# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++23" +# endif + +# ifndef __cpp_lib_void_t +# error "__cpp_lib_void_t should be defined in c++23" +# endif +# if __cpp_lib_void_t != 201411L +# error "__cpp_lib_void_t should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should be defined in c++26" -# endif -# if __cpp_lib_bool_constant != 201505L -# error "__cpp_lib_bool_constant should have the value 201505L in c++26" -# endif - -# ifndef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should be defined in c++26" -# endif -# if __cpp_lib_bounded_array_traits != 201902L -# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++26" -# endif - -# ifndef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should be defined in c++26" -# endif -# if __cpp_lib_has_unique_object_representations != 201606L -# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++26" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should be defined in c++26" -# endif -# if __cpp_lib_is_aggregate != 201703L -# error "__cpp_lib_is_aggregate should have the value 201703L in c++26" -# endif - -# ifndef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should be defined in c++26" -# endif -# if __cpp_lib_is_constant_evaluated != 201811L -# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++26" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++26" -# endif - -# if __has_builtin(__builtin_is_implicit_lifetime) -# ifndef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should be defined in c++26" -# endif -# if __cpp_lib_is_implicit_lifetime != 202302L -# error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++26" -# endif -# else -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should be defined in c++26" -# endif -# if __cpp_lib_is_invocable != 201703L -# error "__cpp_lib_is_invocable should have the value 201703L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should be defined in c++26" -# endif -# if __cpp_lib_is_layout_compatible != 201907L -# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should be defined in c++26" -# endif -# if __cpp_lib_is_nothrow_convertible != 201806L -# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++26" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should be defined in c++26" -# endif -# if __cpp_lib_is_pointer_interconvertible != 201907L -# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should be defined in c++26" -# endif -# if __cpp_lib_is_scoped_enum != 202011L -# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++26" -# endif - -# ifndef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should be defined in c++26" -# endif -# if __cpp_lib_is_swappable != 201603L -# error "__cpp_lib_is_swappable should have the value 201603L in c++26" -# endif - -# if __has_builtin(__builtin_is_virtual_base_of) -# ifndef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should be defined in c++26" -# endif -# if __cpp_lib_is_virtual_base_of != 202406L -# error "__cpp_lib_is_virtual_base_of should have the value 202406L in c++26" -# endif -# else -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined when the requirement '__has_builtin(__builtin_is_virtual_base_of)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should be defined in c++26" -# endif -# if __cpp_lib_is_within_lifetime != 202306L -# error "__cpp_lib_is_within_lifetime should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should be defined in c++26" -# endif -# if __cpp_lib_logical_traits != 201510L -# error "__cpp_lib_logical_traits should have the value 201510L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should be defined in c++26" -# endif -# if __cpp_lib_reference_from_temporary != 202202L -# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should be defined in c++26" -# endif -# if __cpp_lib_remove_cvref != 201711L -# error "__cpp_lib_remove_cvref should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++26" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++26" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should be defined in c++26" -# endif -# if __cpp_lib_type_identity != 201806L -# error "__cpp_lib_type_identity should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should be defined in c++26" -# endif -# if __cpp_lib_type_trait_variable_templates != 201510L -# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++26" -# endif - -# ifndef __cpp_lib_void_t -# error "__cpp_lib_void_t should be defined in c++26" -# endif -# if __cpp_lib_void_t != 201411L -# error "__cpp_lib_void_t should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should be defined in c++26" +# endif +# if __cpp_lib_bool_constant != 201505L +# error "__cpp_lib_bool_constant should have the value 201505L in c++26" +# endif + +# ifndef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should be defined in c++26" +# endif +# if __cpp_lib_bounded_array_traits != 201902L +# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++26" +# endif + +# ifndef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should be defined in c++26" +# endif +# if __cpp_lib_has_unique_object_representations != 201606L +# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++26" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should be defined in c++26" +# endif +# if __cpp_lib_is_aggregate != 201703L +# error "__cpp_lib_is_aggregate should have the value 201703L in c++26" +# endif + +# ifndef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should be defined in c++26" +# endif +# if __cpp_lib_is_constant_evaluated != 201811L +# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++26" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++26" +# endif + +# if __has_builtin(__builtin_is_implicit_lifetime) +# ifndef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should be defined in c++26" +# endif +# if __cpp_lib_is_implicit_lifetime != 202302L +# error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++26" +# endif +# else +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should be defined in c++26" +# endif +# if __cpp_lib_is_invocable != 201703L +# error "__cpp_lib_is_invocable should have the value 201703L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should be defined in c++26" +# endif +# if __cpp_lib_is_layout_compatible != 201907L +# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should be defined in c++26" +# endif +# if __cpp_lib_is_nothrow_convertible != 201806L +# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++26" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should be defined in c++26" +# endif +# if __cpp_lib_is_pointer_interconvertible != 201907L +# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should be defined in c++26" +# endif +# if __cpp_lib_is_scoped_enum != 202011L +# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++26" +# endif + +# ifndef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should be defined in c++26" +# endif +# if __cpp_lib_is_swappable != 201603L +# error "__cpp_lib_is_swappable should have the value 201603L in c++26" +# endif + +# if __has_builtin(__builtin_is_virtual_base_of) +# ifndef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should be defined in c++26" +# endif +# if __cpp_lib_is_virtual_base_of != 202406L +# error "__cpp_lib_is_virtual_base_of should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined when the requirement '__has_builtin(__builtin_is_virtual_base_of)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should be defined in c++26" +# endif +# if __cpp_lib_is_within_lifetime != 202306L +# error "__cpp_lib_is_within_lifetime should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should be defined in c++26" +# endif +# if __cpp_lib_logical_traits != 201510L +# error "__cpp_lib_logical_traits should have the value 201510L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should be defined in c++26" +# endif +# if __cpp_lib_reference_from_temporary != 202202L +# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should be defined in c++26" +# endif +# if __cpp_lib_remove_cvref != 201711L +# error "__cpp_lib_remove_cvref should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++26" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++26" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should be defined in c++26" +# endif +# if __cpp_lib_type_identity != 201806L +# error "__cpp_lib_type_identity should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should be defined in c++26" +# endif +# if __cpp_lib_type_trait_variable_templates != 201510L +# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++26" +# endif + +# ifndef __cpp_lib_void_t +# error "__cpp_lib_void_t should be defined in c++26" +# endif +# if __cpp_lib_void_t != 201411L +# error "__cpp_lib_void_t should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 aa67917587bfa..0729b0b37ee6a 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 @@ -5,64 +5,62 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_constexpr_typeinfo 202106L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_typeinfo +# 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++23" -# endif +# ifdef __cpp_lib_constexpr_typeinfo +# 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++23" -# endif +# ifdef __cpp_lib_constexpr_typeinfo +# 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++23" -# endif +# ifdef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should be defined in c++23" -# endif -# if __cpp_lib_constexpr_typeinfo != 202106L -# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23" -# endif +# ifndef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should be defined in c++23" +# endif +# if __cpp_lib_constexpr_typeinfo != 202106L +# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should be defined in c++26" -# endif -# if __cpp_lib_constexpr_typeinfo != 202106L -# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26" -# endif +# ifndef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should be defined in c++26" +# endif +# if __cpp_lib_constexpr_typeinfo != 202106L +# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 83c12730a671d..74b3c8fff69b3 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 @@ -5,401 +5,389 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_associative_heterogeneous_erasure 202110L [C++23] - __cpp_lib_associative_heterogeneous_insertion 202306L [C++26] - __cpp_lib_containers_ranges 202202L [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_tuple_like 202207L [C++23] - 202311L [C++26] - __cpp_lib_unordered_map_try_emplace 201411L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif -# ifdef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17" -# endif +# ifdef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif -# ifdef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17" -# endif +# ifdef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++17" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should be defined in c++17" -# endif -# if __cpp_lib_unordered_map_try_emplace != 201411L -# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++17" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should be defined in c++17" +# endif +# if __cpp_lib_unordered_map_try_emplace != 201411L +# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17" +# endif #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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++20" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++20" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should be defined in c++20" -# endif -# if __cpp_lib_unordered_map_try_emplace != 201411L -# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++20" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++20" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should be defined in c++20" +# endif +# if __cpp_lib_unordered_map_try_emplace != 201411L +# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++23" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++23" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++23" -# endif -# if __cpp_lib_tuple_like != 202207L -# error "__cpp_lib_tuple_like should have the value 202207L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should be defined in c++23" -# endif -# if __cpp_lib_unordered_map_try_emplace != 201411L -# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++23" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++23" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++23" +# endif +# if __cpp_lib_tuple_like != 202207L +# error "__cpp_lib_tuple_like should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should be defined in c++23" +# endif +# if __cpp_lib_unordered_map_try_emplace != 201411L +# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_insertion != 202306L -# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++26" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++26" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++26" -# endif -# if __cpp_lib_tuple_like != 202311L -# error "__cpp_lib_tuple_like should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should be defined in c++26" -# endif -# if __cpp_lib_unordered_map_try_emplace != 201411L -# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_insertion != 202306L +# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++26" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++26" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++26" +# endif +# if __cpp_lib_tuple_like != 202311L +# error "__cpp_lib_tuple_like should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should be defined in c++26" +# endif +# if __cpp_lib_unordered_map_try_emplace != 201411L +# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 4da49a45698d4..9c400ddd2f657 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 @@ -5,320 +5,311 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_associative_heterogeneous_erasure 202110L [C++23] - __cpp_lib_associative_heterogeneous_insertion 202306L [C++26] - __cpp_lib_containers_ranges 202202L [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] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++17" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++17" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif #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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++20" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++20" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++20" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++20" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++23" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++23" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++23" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++23" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_insertion != 202306L -# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++26" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++26" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_insertion != 202306L +# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++26" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++26" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 2a750addbb95f..e0a83c7813b28 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 @@ -5,507 +5,491 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_as_const 201510L [C++17] - __cpp_lib_constexpr_algorithms 201806L [C++20] - 202306L [C++26] - __cpp_lib_constexpr_utility 201811L [C++20] - __cpp_lib_constrained_equality 202403L [C++26] - __cpp_lib_exchange_function 201304L [C++14] - __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++23] - __cpp_lib_to_underlying 202102L [C++23] - __cpp_lib_tuple_like 202207L [C++23] - 202311L [C++26] - __cpp_lib_tuples_by_type 201304L [C++14] - __cpp_lib_unreachable 202202L [C++23] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_as_const -# error "__cpp_lib_as_const should not be defined before c++17" -# endif +# ifdef __cpp_lib_as_const +# error "__cpp_lib_as_const should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should not be defined before c++20" +# endif -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should not be defined before c++14" -# endif +# ifdef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should not be defined before c++14" +# endif -# ifdef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should not be defined before c++23" +# endif -# ifdef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" -# endif +# ifdef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" +# endif -# ifdef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should not be defined before c++14" -# endif +# ifdef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should not be defined before c++14" +# endif -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif -# ifdef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should not be defined before c++23" -# endif +# ifdef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should not be defined before c++23" +# endif -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif -# ifdef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should not be defined before c++14" -# endif +# ifdef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should not be defined before c++14" +# endif -# ifdef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should not be defined before c++23" -# endif +# ifdef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should not be defined before c++23" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_as_const -# error "__cpp_lib_as_const should not be defined before c++17" -# endif - -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++14" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should not be defined before c++23" -# endif - -# ifdef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++14" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_ranges_zip -# 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++23" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++14" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should not be defined before c++23" -# endif +# ifdef __cpp_lib_as_const +# error "__cpp_lib_as_const should not be defined before c++17" +# endif + +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++14" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should not be defined before c++23" +# endif + +# ifdef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++14" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_ranges_zip +# 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++23" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++14" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should not be defined before c++23" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_as_const -# error "__cpp_lib_as_const should be defined in c++17" -# endif -# if __cpp_lib_as_const != 201510L -# error "__cpp_lib_as_const should have the value 201510L in c++17" -# endif - -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++17" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should not be defined before c++23" -# endif - -# ifdef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++17" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_ranges_zip -# 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++23" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++17" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should not be defined before c++23" -# endif +# ifndef __cpp_lib_as_const +# error "__cpp_lib_as_const should be defined in c++17" +# endif +# if __cpp_lib_as_const != 201510L +# error "__cpp_lib_as_const should have the value 201510L in c++17" +# endif + +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++17" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should not be defined before c++23" +# endif + +# ifdef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++17" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_ranges_zip +# 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++23" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++17" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_unreachable +# 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++20" -# endif -# if __cpp_lib_as_const != 201510L -# error "__cpp_lib_as_const should have the value 201510L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++20" -# endif -# if __cpp_lib_constexpr_algorithms != 201806L -# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should be defined in c++20" -# endif -# if __cpp_lib_constexpr_utility != 201811L -# error "__cpp_lib_constexpr_utility should have the value 201811L in c++20" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++20" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++20" -# endif - -# ifdef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should be defined in c++20" -# endif -# if __cpp_lib_integer_comparison_functions != 202002L -# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++20" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++20" -# endif - -# ifdef __cpp_lib_ranges_zip -# 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++23" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++20" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++20" -# endif - -# ifdef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should not be defined before c++23" -# endif +# ifndef __cpp_lib_as_const +# error "__cpp_lib_as_const should be defined in c++20" +# endif +# if __cpp_lib_as_const != 201510L +# error "__cpp_lib_as_const should have the value 201510L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++20" +# endif +# if __cpp_lib_constexpr_algorithms != 201806L +# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should be defined in c++20" +# endif +# if __cpp_lib_constexpr_utility != 201811L +# error "__cpp_lib_constexpr_utility should have the value 201811L in c++20" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++20" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++20" +# endif + +# ifdef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should be defined in c++20" +# endif +# if __cpp_lib_integer_comparison_functions != 202002L +# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++20" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++20" +# endif + +# ifdef __cpp_lib_ranges_zip +# 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++23" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++20" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++20" +# endif + +# ifdef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should not be defined before c++23" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_as_const -# error "__cpp_lib_as_const should be defined in c++23" -# endif -# if __cpp_lib_as_const != 201510L -# error "__cpp_lib_as_const should have the value 201510L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++23" -# endif -# if __cpp_lib_constexpr_algorithms != 201806L -# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should be defined in c++23" -# endif -# if __cpp_lib_constexpr_utility != 201811L -# error "__cpp_lib_constexpr_utility should have the value 201811L in c++23" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++23" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should be defined in c++23" -# endif -# if __cpp_lib_forward_like != 202207L -# error "__cpp_lib_forward_like should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should be defined in c++23" -# endif -# if __cpp_lib_integer_comparison_functions != 202002L -# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++23" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should be defined in c++23" -# endif -# if __cpp_lib_ranges_zip != 202110L -# error "__cpp_lib_ranges_zip should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should be defined in c++23" -# endif -# if __cpp_lib_to_underlying != 202102L -# error "__cpp_lib_to_underlying should have the value 202102L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++23" -# endif -# if __cpp_lib_tuple_like != 202207L -# error "__cpp_lib_tuple_like should have the value 202207L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++23" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should be defined in c++23" -# endif -# if __cpp_lib_unreachable != 202202L -# error "__cpp_lib_unreachable should have the value 202202L in c++23" -# endif +# ifndef __cpp_lib_as_const +# error "__cpp_lib_as_const should be defined in c++23" +# endif +# if __cpp_lib_as_const != 201510L +# error "__cpp_lib_as_const should have the value 201510L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++23" +# endif +# if __cpp_lib_constexpr_algorithms != 201806L +# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should be defined in c++23" +# endif +# if __cpp_lib_constexpr_utility != 201811L +# error "__cpp_lib_constexpr_utility should have the value 201811L in c++23" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++23" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should be defined in c++23" +# endif +# if __cpp_lib_forward_like != 202207L +# error "__cpp_lib_forward_like should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should be defined in c++23" +# endif +# if __cpp_lib_integer_comparison_functions != 202002L +# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++23" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should be defined in c++23" +# endif +# if __cpp_lib_ranges_zip != 202110L +# error "__cpp_lib_ranges_zip should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should be defined in c++23" +# endif +# if __cpp_lib_to_underlying != 202102L +# error "__cpp_lib_to_underlying should have the value 202102L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++23" +# endif +# if __cpp_lib_tuple_like != 202207L +# error "__cpp_lib_tuple_like should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++23" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should be defined in c++23" +# endif +# if __cpp_lib_unreachable != 202202L +# error "__cpp_lib_unreachable should have the value 202202L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_as_const -# error "__cpp_lib_as_const should be defined in c++26" -# endif -# if __cpp_lib_as_const != 201510L -# error "__cpp_lib_as_const should have the value 201510L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++26" -# endif -# if __cpp_lib_constexpr_algorithms != 202306L -# error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should be defined in c++26" -# endif -# if __cpp_lib_constexpr_utility != 201811L -# error "__cpp_lib_constexpr_utility should have the value 201811L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should be defined in c++26" -# endif -# if __cpp_lib_constrained_equality != 202403L -# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++26" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should be defined in c++26" -# endif -# if __cpp_lib_forward_like != 202207L -# error "__cpp_lib_forward_like should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should be defined in c++26" -# endif -# if __cpp_lib_integer_comparison_functions != 202002L -# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++26" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should be defined in c++26" -# endif -# if __cpp_lib_ranges_zip != 202110L -# error "__cpp_lib_ranges_zip should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should be defined in c++26" -# endif -# if __cpp_lib_to_underlying != 202102L -# error "__cpp_lib_to_underlying should have the value 202102L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++26" -# endif -# if __cpp_lib_tuple_like != 202311L -# error "__cpp_lib_tuple_like should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++26" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should be defined in c++26" -# endif -# if __cpp_lib_unreachable != 202202L -# error "__cpp_lib_unreachable should have the value 202202L in c++26" -# endif +# ifndef __cpp_lib_as_const +# error "__cpp_lib_as_const should be defined in c++26" +# endif +# if __cpp_lib_as_const != 201510L +# error "__cpp_lib_as_const should have the value 201510L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++26" +# endif +# if __cpp_lib_constexpr_algorithms != 202306L +# error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should be defined in c++26" +# endif +# if __cpp_lib_constexpr_utility != 201811L +# error "__cpp_lib_constexpr_utility should have the value 201811L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should be defined in c++26" +# endif +# if __cpp_lib_constrained_equality != 202403L +# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++26" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should be defined in c++26" +# endif +# if __cpp_lib_forward_like != 202207L +# error "__cpp_lib_forward_like should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should be defined in c++26" +# endif +# if __cpp_lib_integer_comparison_functions != 202002L +# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++26" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should be defined in c++26" +# endif +# if __cpp_lib_ranges_zip != 202110L +# error "__cpp_lib_ranges_zip should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should be defined in c++26" +# endif +# if __cpp_lib_to_underlying != 202102L +# error "__cpp_lib_to_underlying should have the value 202102L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++26" +# endif +# if __cpp_lib_tuple_like != 202311L +# error "__cpp_lib_tuple_like should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++26" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should be defined in c++26" +# endif +# if __cpp_lib_unreachable != 202202L +# error "__cpp_lib_unreachable should have the value 202202L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 598e976bda3cf..dc4af4d09f9e5 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 @@ -5,140 +5,134 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_constrained_equality 202403L [C++26] - __cpp_lib_freestanding_variant 202311L [C++26] - __cpp_lib_variant 202102L [C++17] - 202106L [C++20] - 202306L [C++26] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif -# ifdef __cpp_lib_variant -# error "__cpp_lib_variant should not be defined before c++17" -# endif +# ifdef __cpp_lib_variant +# error "__cpp_lib_variant should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif -# ifdef __cpp_lib_variant -# error "__cpp_lib_variant should not be defined before c++17" -# endif +# ifdef __cpp_lib_variant +# error "__cpp_lib_variant should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif -# ifndef __cpp_lib_variant -# error "__cpp_lib_variant should be defined in c++17" -# endif -# if __cpp_lib_variant != 202102L -# error "__cpp_lib_variant should have the value 202102L in c++17" -# endif +# ifndef __cpp_lib_variant +# error "__cpp_lib_variant should be defined in c++17" +# endif +# if __cpp_lib_variant != 202102L +# error "__cpp_lib_variant should have the value 202102L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif -# ifndef __cpp_lib_variant -# error "__cpp_lib_variant should be defined in c++20" -# endif -# if __cpp_lib_variant != 202106L -# error "__cpp_lib_variant should have the value 202106L in c++20" -# endif +# ifndef __cpp_lib_variant +# error "__cpp_lib_variant should be defined in c++20" +# endif +# if __cpp_lib_variant != 202106L +# error "__cpp_lib_variant should have the value 202106L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif -# ifndef __cpp_lib_variant -# error "__cpp_lib_variant should be defined in c++23" -# endif -# if __cpp_lib_variant != 202106L -# error "__cpp_lib_variant should have the value 202106L in c++23" -# endif +# ifndef __cpp_lib_variant +# error "__cpp_lib_variant should be defined in c++23" +# endif +# if __cpp_lib_variant != 202106L +# error "__cpp_lib_variant should have the value 202106L in c++23" +# endif #elif TEST_STD_VER > 23 -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should be defined in c++26" -# endif -# if __cpp_lib_constrained_equality != 202403L -# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should be defined in c++26" -# endif -# if __cpp_lib_freestanding_variant != 202311L -# error "__cpp_lib_freestanding_variant should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_variant -# error "__cpp_lib_variant should be defined in c++26" -# endif -# if __cpp_lib_variant != 202306L -# error "__cpp_lib_variant should have the value 202306L in c++26" -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should be defined in c++26" +# endif +# if __cpp_lib_constrained_equality != 202403L +# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should be defined in c++26" +# endif +# if __cpp_lib_freestanding_variant != 202311L +# error "__cpp_lib_freestanding_variant should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_variant +# error "__cpp_lib_variant should be defined in c++26" +# endif +# if __cpp_lib_variant != 202306L +# error "__cpp_lib_variant should have the value 202306L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 0eef1e99221e7..c2513ecad8d08 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 @@ -5,277 +5,269 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_constexpr_vector 201907L [C++20] - __cpp_lib_containers_ranges 202202L [C++23] - __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] - __cpp_lib_erase_if 202002L [C++20] - __cpp_lib_incomplete_container_elements 201505L [C++17] - __cpp_lib_nonmember_container_access 201411L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #if TEST_STD_VER < 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should not be defined before c++20" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" -# endif +# ifdef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 14 -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should not be defined before c++20" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" -# endif +# ifdef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif #elif TEST_STD_VER == 17 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined before c++20" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++17" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should not be defined before c++20" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++17" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif #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++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++20" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++20" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++20" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++20" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++23" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++23" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++23" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++23" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++26" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" -# endif -# if __cpp_lib_default_template_type_for_algorithm_values != 202403L -# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++26" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++26" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" +# endif +# if __cpp_lib_default_template_type_for_algorithm_values != 202403L +# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++26" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + 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 9b318f2deabc4..7b2041be4dc86 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 @@ -5,8201 +5,7964 @@ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by generate_feature_test_macro_components.py // and should not be edited manually. -// -// clang-format off // // Test the feature test macros defined by -/* Constant Value - __cpp_lib_adaptor_iterator_pair_constructor 202106L [C++23] - __cpp_lib_addressof_constexpr 201603L [C++17] - __cpp_lib_allocate_at_least 202302L [C++23] - __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] - __cpp_lib_any 201606L [C++17] - __cpp_lib_apply 201603L [C++17] - __cpp_lib_array_constexpr 201603L [C++17] - 201811L [C++20] - __cpp_lib_as_const 201510L [C++17] - __cpp_lib_associative_heterogeneous_erasure 202110L [C++23] - __cpp_lib_associative_heterogeneous_insertion 202306L [C++26] - __cpp_lib_assume_aligned 201811L [C++20] - __cpp_lib_atomic_flag_test 201907L [C++20] - __cpp_lib_atomic_float 201711L [C++20] - __cpp_lib_atomic_is_always_lock_free 201603L [C++17] - __cpp_lib_atomic_lock_free_type_aliases 201907L [C++20] - __cpp_lib_atomic_min_max 202403L [C++26] - __cpp_lib_atomic_ref 201806L [C++20] - __cpp_lib_atomic_shared_ptr 201711L [C++20] - __cpp_lib_atomic_value_initialization 201911L [C++20] - __cpp_lib_atomic_wait 201907L [C++20] - __cpp_lib_barrier 201907L [C++20] - __cpp_lib_bind_back 202202L [C++23] - __cpp_lib_bind_front 201907L [C++20] - 202306L [C++26] - __cpp_lib_bit_cast 201806L [C++20] - __cpp_lib_bitops 201907L [C++20] - __cpp_lib_bitset 202306L [C++26] - __cpp_lib_bool_constant 201505L [C++17] - __cpp_lib_bounded_array_traits 201902L [C++20] - __cpp_lib_boyer_moore_searcher 201603L [C++17] - __cpp_lib_byte 201603L [C++17] - __cpp_lib_byteswap 202110L [C++23] - __cpp_lib_char8_t 201907L [C++20] - __cpp_lib_chrono 201611L [C++17] - __cpp_lib_chrono_udls 201304L [C++14] - __cpp_lib_clamp 201603L [C++17] - __cpp_lib_complex_udls 201309L [C++14] - __cpp_lib_concepts 202002L [C++20] - __cpp_lib_constexpr_algorithms 201806L [C++20] - 202306L [C++26] - __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++23] - __cpp_lib_constexpr_new 202406L [C++26] - __cpp_lib_constexpr_numeric 201911L [C++20] - __cpp_lib_constexpr_string 201907L [C++20] - __cpp_lib_constexpr_string_view 201811L [C++20] - __cpp_lib_constexpr_tuple 201811L [C++20] - __cpp_lib_constexpr_typeinfo 202106L [C++23] - __cpp_lib_constexpr_utility 201811L [C++20] - __cpp_lib_constexpr_vector 201907L [C++20] - __cpp_lib_constrained_equality 202403L [C++26] - __cpp_lib_containers_ranges 202202L [C++23] - __cpp_lib_copyable_function 202306L [C++26] - __cpp_lib_coroutine 201902L [C++20] - __cpp_lib_debugging 202311L [C++26] - __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] - __cpp_lib_destroying_delete 201806L [C++20] - __cpp_lib_enable_shared_from_this 201603L [C++17] - __cpp_lib_endian 201907L [C++20] - __cpp_lib_erase_if 202002L [C++20] - __cpp_lib_exchange_function 201304L [C++14] - __cpp_lib_execution 201603L [C++17] - 201902L [C++20] - __cpp_lib_expected 202211L [C++23] - __cpp_lib_filesystem 201703L [C++17] - __cpp_lib_flat_map 202207L [C++23] - __cpp_lib_flat_set 202207L [C++23] - __cpp_lib_format 202110L [C++20] - __cpp_lib_format_path 202403L [C++26] - __cpp_lib_format_ranges 202207L [C++23] - __cpp_lib_format_uchar 202311L [C++20] - __cpp_lib_formatters 202302L [C++23] - __cpp_lib_forward_like 202207L [C++23] - __cpp_lib_freestanding_algorithm 202311L [C++26] - __cpp_lib_freestanding_array 202311L [C++26] - __cpp_lib_freestanding_cstring 202306L [C++26] - __cpp_lib_freestanding_expected 202311L [C++26] - __cpp_lib_freestanding_mdspan 202311L [C++26] - __cpp_lib_freestanding_optional 202311L [C++26] - __cpp_lib_freestanding_string_view 202311L [C++26] - __cpp_lib_freestanding_variant 202311L [C++26] - __cpp_lib_fstream_native_handle 202306L [C++26] - __cpp_lib_function_ref 202306L [C++26] - __cpp_lib_gcd_lcm 201606L [C++17] - __cpp_lib_generate_random 202403L [C++26] - __cpp_lib_generic_associative_lookup 201304L [C++14] - __cpp_lib_generic_unordered_lookup 201811L [C++20] - __cpp_lib_hardware_interference_size 201703L [C++17] - __cpp_lib_has_unique_object_representations 201606L [C++17] - __cpp_lib_hazard_pointer 202306L [C++26] - __cpp_lib_hypot 201603L [C++17] - __cpp_lib_incomplete_container_elements 201505L [C++17] - __cpp_lib_inplace_vector 202406L [C++26] - __cpp_lib_int_pow2 202002L [C++20] - __cpp_lib_integer_comparison_functions 202002L [C++20] - __cpp_lib_integer_sequence 201304L [C++14] - __cpp_lib_integral_constant_callable 201304L [C++14] - __cpp_lib_interpolate 201902L [C++20] - __cpp_lib_invoke 201411L [C++17] - __cpp_lib_invoke_r 202106L [C++23] - __cpp_lib_ios_noreplace 202207L [C++23] - __cpp_lib_is_aggregate 201703L [C++17] - __cpp_lib_is_constant_evaluated 201811L [C++20] - __cpp_lib_is_final 201402L [C++14] - __cpp_lib_is_implicit_lifetime 202302L [C++23] - __cpp_lib_is_invocable 201703L [C++17] - __cpp_lib_is_layout_compatible 201907L [C++20] - __cpp_lib_is_nothrow_convertible 201806L [C++20] - __cpp_lib_is_null_pointer 201309L [C++14] - __cpp_lib_is_pointer_interconvertible 201907L [C++20] - __cpp_lib_is_scoped_enum 202011L [C++23] - __cpp_lib_is_swappable 201603L [C++17] - __cpp_lib_is_virtual_base_of 202406L [C++26] - __cpp_lib_is_within_lifetime 202306L [C++26] - __cpp_lib_jthread 201911L [C++20] - __cpp_lib_latch 201907L [C++20] - __cpp_lib_launder 201606L [C++17] - __cpp_lib_linalg 202311L [C++26] - __cpp_lib_list_remove_return_type 201806L [C++20] - __cpp_lib_logical_traits 201510L [C++17] - __cpp_lib_make_from_tuple 201606L [C++17] - __cpp_lib_make_reverse_iterator 201402L [C++14] - __cpp_lib_make_unique 201304L [C++14] - __cpp_lib_map_try_emplace 201411L [C++17] - __cpp_lib_math_constants 201907L [C++20] - __cpp_lib_math_special_functions 201603L [C++17] - __cpp_lib_mdspan 202207L [C++23] - 202406L [C++26] - __cpp_lib_memory_resource 201603L [C++17] - __cpp_lib_modules 202207L [C++23] - __cpp_lib_move_iterator_concept 202207L [C++20] - __cpp_lib_move_only_function 202110L [C++23] - __cpp_lib_node_extract 201606L [C++17] - __cpp_lib_nonmember_container_access 201411L [C++17] - __cpp_lib_not_fn 201603L [C++17] - 202306L [C++26] - __cpp_lib_null_iterators 201304L [C++14] - __cpp_lib_optional 201606L [C++17] - 202106L [C++20] - 202110L [C++23] - __cpp_lib_optional_range_support 202406L [C++26] - __cpp_lib_out_ptr 202106L [C++23] - 202311L [C++26] - __cpp_lib_parallel_algorithm 201603L [C++17] - __cpp_lib_philox_engine 202406L [C++26] - __cpp_lib_polymorphic_allocator 201902L [C++20] - __cpp_lib_print 202207L [C++23] - __cpp_lib_quoted_string_io 201304L [C++14] - __cpp_lib_ranges 202110L [C++20] - 202406L [C++23] - __cpp_lib_ranges_as_const 202207L [C++23] - __cpp_lib_ranges_as_rvalue 202207L [C++23] - __cpp_lib_ranges_chunk 202202L [C++23] - __cpp_lib_ranges_chunk_by 202202L [C++23] - __cpp_lib_ranges_concat 202403L [C++26] - __cpp_lib_ranges_contains 202207L [C++23] - __cpp_lib_ranges_find_last 202207L [C++23] - __cpp_lib_ranges_iota 202202L [C++23] - __cpp_lib_ranges_join_with 202202L [C++23] - __cpp_lib_ranges_repeat 202207L [C++23] - __cpp_lib_ranges_slide 202202L [C++23] - __cpp_lib_ranges_starts_ends_with 202106L [C++23] - __cpp_lib_ranges_to_container 202202L [C++23] - __cpp_lib_ranges_zip 202110L [C++23] - __cpp_lib_ratio 202306L [C++26] - __cpp_lib_raw_memory_algorithms 201606L [C++17] - __cpp_lib_rcu 202306L [C++26] - __cpp_lib_reference_from_temporary 202202L [C++23] - __cpp_lib_reference_wrapper 202403L [C++26] - __cpp_lib_remove_cvref 201711L [C++20] - __cpp_lib_result_of_sfinae 201210L [C++14] - __cpp_lib_robust_nonmodifying_seq_ops 201304L [C++14] - __cpp_lib_sample 201603L [C++17] - __cpp_lib_saturation_arithmetic 202311L [C++26] - __cpp_lib_scoped_lock 201703L [C++17] - __cpp_lib_semaphore 201907L [C++20] - __cpp_lib_senders 202406L [C++26] - __cpp_lib_shared_mutex 201505L [C++17] - __cpp_lib_shared_ptr_arrays 201611L [C++17] - 201707L [C++20] - __cpp_lib_shared_ptr_weak_type 201606L [C++17] - __cpp_lib_shared_timed_mutex 201402L [C++14] - __cpp_lib_shift 201806L [C++20] - __cpp_lib_smart_ptr_for_overwrite 202002L [C++20] - __cpp_lib_smart_ptr_owner_equality 202306L [C++26] - __cpp_lib_source_location 201907L [C++20] - __cpp_lib_span 202002L [C++20] - __cpp_lib_span_at 202311L [C++26] - __cpp_lib_span_initializer_list 202311L [C++26] - __cpp_lib_spanstream 202106L [C++23] - __cpp_lib_ssize 201902L [C++20] - __cpp_lib_sstream_from_string_view 202306L [C++26] - __cpp_lib_stacktrace 202011L [C++23] - __cpp_lib_starts_ends_with 201711L [C++20] - __cpp_lib_stdatomic_h 202011L [C++23] - __cpp_lib_string_contains 202011L [C++23] - __cpp_lib_string_resize_and_overwrite 202110L [C++23] - __cpp_lib_string_udls 201304L [C++14] - __cpp_lib_string_view 201606L [C++17] - 201803L [C++20] - 202403L [C++26] - __cpp_lib_submdspan 202306L [C++26] - __cpp_lib_syncbuf 201803L [C++20] - __cpp_lib_text_encoding 202306L [C++26] - __cpp_lib_three_way_comparison 201907L [C++20] - __cpp_lib_to_address 201711L [C++20] - __cpp_lib_to_array 201907L [C++20] - __cpp_lib_to_chars 201611L [C++17] - 202306L [C++26] - __cpp_lib_to_string 202306L [C++26] - __cpp_lib_to_underlying 202102L [C++23] - __cpp_lib_transformation_trait_aliases 201304L [C++14] - __cpp_lib_transparent_operators 201210L [C++14] - 201510L [C++17] - __cpp_lib_tuple_element_t 201402L [C++14] - __cpp_lib_tuple_like 202207L [C++23] - 202311L [C++26] - __cpp_lib_tuples_by_type 201304L [C++14] - __cpp_lib_type_identity 201806L [C++20] - __cpp_lib_type_trait_variable_templates 201510L [C++17] - __cpp_lib_uncaught_exceptions 201411L [C++17] - __cpp_lib_unordered_map_try_emplace 201411L [C++17] - __cpp_lib_unreachable 202202L [C++23] - __cpp_lib_unwrap_ref 201811L [C++20] - __cpp_lib_variant 202102L [C++17] - 202106L [C++20] - 202306L [C++26] - __cpp_lib_void_t 201411L [C++17] -*/ +// clang-format off #include #include "test_macros.h" #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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should not be defined before c++23" -# endif +# ifdef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should not be defined before c++23" +# endif -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_any -# error "__cpp_lib_any should not be defined before c++17" -# endif +# ifdef __cpp_lib_any +# error "__cpp_lib_any should not be defined before c++17" +# endif -# ifdef __cpp_lib_apply -# error "__cpp_lib_apply should not be defined before c++17" -# endif +# ifdef __cpp_lib_apply +# error "__cpp_lib_apply should not be defined before c++17" +# endif -# ifdef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_as_const -# error "__cpp_lib_as_const should not be defined before c++17" -# endif +# ifdef __cpp_lib_as_const +# error "__cpp_lib_as_const should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should not be defined before c++20" -# endif +# ifdef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17" -# endif +# ifdef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17" +# endif -# ifdef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif -# ifdef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined before c++20" +# endif -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined before c++20" -# endif +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined before c++20" +# endif -# ifdef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should not be defined before c++23" -# endif +# ifdef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should not be defined before c++23" +# endif -# ifdef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should not be defined before c++20" -# endif +# ifdef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should not be defined before c++20" +# endif -# ifdef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should not be defined before c++20" -# endif +# ifdef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should not be defined before c++20" +# endif -# ifdef __cpp_lib_bitops -# error "__cpp_lib_bitops should not be defined before c++20" -# endif +# ifdef __cpp_lib_bitops +# error "__cpp_lib_bitops should not be defined before c++20" +# endif -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif -# ifdef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should not be defined before c++17" -# endif +# ifdef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should not be defined before c++17" +# endif -# ifdef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should not be defined before c++20" -# endif +# ifdef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should not be defined before c++20" +# endif -# ifdef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17" -# endif +# ifdef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17" +# endif -# ifdef __cpp_lib_byte -# error "__cpp_lib_byte should not be defined before c++17" -# endif +# ifdef __cpp_lib_byte +# error "__cpp_lib_byte should not be defined before c++17" +# endif -# ifdef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should not be defined before c++23" -# endif +# ifdef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should not be defined before c++23" +# endif -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif -# ifdef __cpp_lib_chrono -# error "__cpp_lib_chrono should not be defined before c++17" -# endif +# ifdef __cpp_lib_chrono +# error "__cpp_lib_chrono should not be defined before c++17" +# endif -# ifdef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should not be defined before c++14" -# endif +# ifdef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should not be defined before c++14" +# endif -# ifdef __cpp_lib_clamp -# error "__cpp_lib_clamp should not be defined before c++17" -# endif +# ifdef __cpp_lib_clamp +# error "__cpp_lib_clamp should not be defined before c++17" +# endif -# ifdef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should not be defined before c++14" -# endif +# ifdef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should not be defined before c++14" +# endif -# ifdef __cpp_lib_concepts -# error "__cpp_lib_concepts should not be defined before c++20" -# endif +# ifdef __cpp_lib_concepts +# error "__cpp_lib_concepts should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should not be defined before c++23" +# endif -# ifdef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should not be defined before c++23" +# endif -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif -# ifdef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif -# ifdef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" -# endif +# ifdef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" +# endif -# ifdef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should not be defined before c++20" +# endif -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined before c++20" -# endif +# ifdef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should not be defined before c++20" +# endif -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif -# ifdef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should not be defined before c++20" -# endif +# ifdef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should not be defined before c++20" +# endif -# ifdef __cpp_lib_debugging -# error "__cpp_lib_debugging should not be defined before c++26" -# endif +# ifdef __cpp_lib_debugging +# error "__cpp_lib_debugging should not be defined before c++26" +# endif -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined before c++20" -# endif +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined before c++20" +# endif -# ifdef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should not be defined before c++17" -# endif +# ifdef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should not be defined before c++17" +# endif -# ifdef __cpp_lib_endian -# error "__cpp_lib_endian should not be defined before c++20" -# endif +# ifdef __cpp_lib_endian +# error "__cpp_lib_endian should not be defined before c++20" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifdef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should not be defined before c++14" -# endif +# ifdef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should not be defined before c++14" +# endif -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined before c++17" -# endif +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined before c++17" +# endif -# ifdef __cpp_lib_expected -# error "__cpp_lib_expected should not be defined before c++23" -# endif +# ifdef __cpp_lib_expected +# error "__cpp_lib_expected should not be defined before c++23" +# endif -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined before c++17" -# endif +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined before c++17" +# endif -# ifdef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should not be defined before c++23" +# endif -# ifdef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should not be defined before c++23" -# endif +# ifdef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should not be defined before c++23" +# endif -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined before c++20" -# endif +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined before c++20" +# endif -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif -# ifdef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should not be defined before c++23" -# endif +# ifdef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should not be defined before c++23" +# endif -# ifdef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should not be defined before c++20" -# endif +# ifdef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should not be defined before c++20" +# endif -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined before c++23" -# endif +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined before c++23" +# endif -# ifdef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should not be defined before c++23" +# endif -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif -# ifdef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should not be defined before c++17" -# endif +# ifdef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should not be defined before c++17" +# endif -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif -# ifdef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should not be defined before c++14" -# endif +# ifdef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should not be defined before c++14" +# endif -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined before c++17" -# endif +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined before c++17" +# endif -# ifdef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should not be defined before c++17" -# endif +# ifdef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should not be defined before c++17" +# endif -# ifdef __cpp_lib_hazard_pointer -# error "__cpp_lib_hazard_pointer should not be defined before c++26" -# endif +# ifdef __cpp_lib_hazard_pointer +# error "__cpp_lib_hazard_pointer should not be defined before c++26" +# endif -# ifdef __cpp_lib_hypot -# error "__cpp_lib_hypot should not be defined before c++17" -# endif +# ifdef __cpp_lib_hypot +# error "__cpp_lib_hypot should not be defined before c++17" +# endif -# ifdef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" -# endif +# ifdef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" +# endif -# ifdef __cpp_lib_inplace_vector -# error "__cpp_lib_inplace_vector should not be defined before c++26" -# endif +# ifdef __cpp_lib_inplace_vector +# error "__cpp_lib_inplace_vector should not be defined before c++26" +# endif -# ifdef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should not be defined before c++20" -# endif +# ifdef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should not be defined before c++20" +# endif -# ifdef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" -# endif +# ifdef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" +# endif -# ifdef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should not be defined before c++14" -# endif +# ifdef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should not be defined before c++14" +# endif -# ifdef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should not be defined before c++14" -# endif +# ifdef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should not be defined before c++14" +# endif -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif -# ifdef __cpp_lib_invoke -# error "__cpp_lib_invoke should not be defined before c++17" -# endif +# ifdef __cpp_lib_invoke +# error "__cpp_lib_invoke should not be defined before c++17" +# endif -# ifdef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should not be defined before c++23" -# endif +# ifdef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should not be defined before c++23" +# endif -# ifdef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should not be defined before c++23" -# endif +# ifdef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should not be defined before c++23" +# endif -# ifdef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should not be defined before c++17" -# endif +# ifdef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should not be defined before c++17" +# endif -# ifdef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" -# endif +# ifdef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" +# endif -# ifdef __cpp_lib_is_final -# error "__cpp_lib_is_final should not be defined before c++14" -# endif +# ifdef __cpp_lib_is_final +# error "__cpp_lib_is_final should not be defined before c++14" +# endif -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" -# endif +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" +# endif -# ifdef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should not be defined before c++17" -# endif +# ifdef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should not be defined before c++17" +# endif -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined before c++20" -# endif +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined before c++20" +# endif -# ifdef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" -# endif +# ifdef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" +# endif -# ifdef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should not be defined before c++14" -# endif +# ifdef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should not be defined before c++14" +# endif -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" -# endif +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" +# endif -# ifdef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should not be defined before c++23" -# endif +# ifdef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should not be defined before c++23" +# endif -# ifdef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should not be defined before c++17" -# endif +# ifdef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should not be defined before c++17" +# endif -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined before c++20" -# endif +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined before c++20" +# endif -# ifdef __cpp_lib_launder -# error "__cpp_lib_launder should not be defined before c++17" -# endif +# ifdef __cpp_lib_launder +# error "__cpp_lib_launder should not be defined before c++17" +# endif -# ifdef __cpp_lib_linalg -# error "__cpp_lib_linalg should not be defined before c++26" -# endif +# ifdef __cpp_lib_linalg +# error "__cpp_lib_linalg should not be defined before c++26" +# endif -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif -# ifdef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should not be defined before c++17" -# endif +# ifdef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should not be defined before c++17" +# endif -# ifdef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should not be defined before c++17" -# endif +# ifdef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should not be defined before c++17" +# endif -# ifdef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should not be defined before c++14" -# endif +# ifdef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should not be defined before c++14" +# endif -# ifdef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should not be defined before c++14" -# endif +# ifdef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should not be defined before c++14" +# endif -# ifdef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should not be defined before c++17" -# endif +# ifdef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should not be defined before c++17" +# endif -# ifdef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should not be defined before c++20" -# endif +# ifdef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should not be defined before c++20" +# endif -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined before c++17" -# endif +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined before c++17" +# endif -# ifdef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should not be defined before c++23" -# endif +# ifdef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should not be defined before c++23" +# endif -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined before c++17" -# endif +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined before c++17" +# endif -# ifdef __cpp_lib_modules -# error "__cpp_lib_modules should not be defined before c++23" -# endif +# ifdef __cpp_lib_modules +# error "__cpp_lib_modules should not be defined before c++23" +# endif -# ifdef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should not be defined before c++20" -# endif +# ifdef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should not be defined before c++20" +# endif -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined before c++23" -# endif +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined before c++23" +# endif -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif -# ifdef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should not be defined before c++17" -# endif +# ifdef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should not be defined before c++17" +# endif -# ifdef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should not be defined before c++14" -# endif +# ifdef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should not be defined before c++14" +# endif -# ifdef __cpp_lib_optional -# error "__cpp_lib_optional should not be defined before c++17" -# endif +# ifdef __cpp_lib_optional +# error "__cpp_lib_optional should not be defined before c++17" +# endif -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif -# ifdef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should not be defined before c++23" -# endif +# ifdef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should not be defined before c++23" +# endif -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined before c++17" -# endif +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined before c++17" +# endif -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" -# endif +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" +# endif -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined before c++14" -# endif +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined before c++14" +# endif -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif -# ifdef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should not be defined before c++23" +# endif -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif -# ifdef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17" -# endif +# ifdef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17" +# endif -# ifdef __cpp_lib_rcu -# error "__cpp_lib_rcu should not be defined before c++26" -# endif +# ifdef __cpp_lib_rcu +# error "__cpp_lib_rcu should not be defined before c++26" +# endif -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined before c++23" -# endif +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined before c++23" +# endif -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif -# ifdef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should not be defined before c++20" -# endif +# ifdef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should not be defined before c++20" +# endif -# ifdef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should not be defined before c++14" -# endif +# ifdef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should not be defined before c++14" +# endif -# ifdef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should not be defined before c++14" -# endif +# ifdef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should not be defined before c++14" +# endif -# ifdef __cpp_lib_sample -# error "__cpp_lib_sample should not be defined before c++17" -# endif +# ifdef __cpp_lib_sample +# error "__cpp_lib_sample should not be defined before c++17" +# endif -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined before c++17" -# endif +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined before c++17" +# endif -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined before c++20" -# endif +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined before c++20" +# endif -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined before c++17" -# endif +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined before c++17" +# endif -# ifdef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17" -# endif +# ifdef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17" +# endif -# ifdef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17" -# endif +# ifdef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17" +# endif -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined before c++14" -# endif +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined before c++14" +# endif -# ifdef __cpp_lib_shift -# error "__cpp_lib_shift should not be defined before c++20" -# endif +# ifdef __cpp_lib_shift +# error "__cpp_lib_shift should not be defined before c++20" +# endif -# ifdef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" -# endif +# ifdef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" +# endif -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif -# ifdef __cpp_lib_source_location -# error "__cpp_lib_source_location should not be defined before c++20" -# endif +# ifdef __cpp_lib_source_location +# error "__cpp_lib_source_location should not be defined before c++20" +# endif -# ifdef __cpp_lib_span -# error "__cpp_lib_span should not be defined before c++20" -# endif +# ifdef __cpp_lib_span +# error "__cpp_lib_span should not be defined before c++20" +# endif -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif -# ifdef __cpp_lib_spanstream -# error "__cpp_lib_spanstream should not be defined before c++23" -# endif +# ifdef __cpp_lib_spanstream +# error "__cpp_lib_spanstream should not be defined before c++23" +# endif -# ifdef __cpp_lib_ssize -# error "__cpp_lib_ssize should not be defined before c++20" -# endif +# ifdef __cpp_lib_ssize +# error "__cpp_lib_ssize should not be defined before c++20" +# endif -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif -# ifdef __cpp_lib_stacktrace -# error "__cpp_lib_stacktrace should not be defined before c++23" -# endif +# ifdef __cpp_lib_stacktrace +# error "__cpp_lib_stacktrace should not be defined before c++23" +# endif -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif -# ifdef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should not be defined before c++23" -# endif +# ifdef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should not be defined before c++23" +# endif -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif -# ifdef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" -# endif +# ifdef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" +# endif -# ifdef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should not be defined before c++14" -# endif +# ifdef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should not be defined before c++14" +# endif -# ifdef __cpp_lib_string_view -# error "__cpp_lib_string_view should not be defined before c++17" -# endif +# ifdef __cpp_lib_string_view +# error "__cpp_lib_string_view should not be defined before c++17" +# endif -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined before c++20" -# endif +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined before c++20" +# endif -# ifdef __cpp_lib_text_encoding -# error "__cpp_lib_text_encoding should not be defined before c++26" -# endif +# ifdef __cpp_lib_text_encoding +# error "__cpp_lib_text_encoding should not be defined before c++26" +# endif -# ifdef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should not be defined before c++20" -# endif +# ifdef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should not be defined before c++20" +# endif -# ifdef __cpp_lib_to_address -# error "__cpp_lib_to_address should not be defined before c++20" -# endif +# ifdef __cpp_lib_to_address +# error "__cpp_lib_to_address should not be defined before c++20" +# endif -# ifdef __cpp_lib_to_array -# error "__cpp_lib_to_array should not be defined before c++20" -# endif +# ifdef __cpp_lib_to_array +# error "__cpp_lib_to_array should not be defined before c++20" +# endif -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined before c++17" -# endif +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined before c++17" +# endif -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif -# ifdef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should not be defined before c++23" -# endif +# ifdef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should not be defined before c++23" +# endif -# ifdef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should not be defined before c++14" -# endif +# ifdef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should not be defined before c++14" +# endif -# ifdef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should not be defined before c++14" -# endif +# ifdef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should not be defined before c++14" +# endif -# ifdef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should not be defined before c++14" -# endif +# ifdef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should not be defined before c++14" +# endif -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif -# ifdef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should not be defined before c++14" -# endif +# ifdef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should not be defined before c++14" +# endif -# ifdef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should not be defined before c++20" -# endif +# ifdef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should not be defined before c++20" +# endif -# ifdef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17" -# endif +# ifdef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17" +# endif -# ifdef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should not be defined before c++17" -# endif +# ifdef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should not be defined before c++17" +# endif -# ifdef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17" -# endif +# ifdef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17" +# endif -# ifdef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should not be defined before c++23" -# endif +# ifdef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should not be defined before c++23" +# endif -# ifdef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should not be defined before c++20" -# endif +# ifdef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should not be defined before c++20" +# endif -# ifdef __cpp_lib_variant -# error "__cpp_lib_variant should not be defined before c++17" -# endif +# ifdef __cpp_lib_variant +# error "__cpp_lib_variant should not be defined before c++17" +# endif -# ifdef __cpp_lib_void_t -# error "__cpp_lib_void_t should not be defined before c++17" -# endif +# ifdef __cpp_lib_void_t +# error "__cpp_lib_void_t should not be defined before c++17" +# 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++23" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif -# ifdef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should not be defined before c++23" -# endif +# ifdef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should not be defined before c++23" +# endif -# ifdef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" -# endif +# ifdef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" +# endif -# ifdef __cpp_lib_any -# error "__cpp_lib_any should not be defined before c++17" -# endif +# ifdef __cpp_lib_any +# error "__cpp_lib_any should not be defined before c++17" +# endif -# ifdef __cpp_lib_apply -# error "__cpp_lib_apply should not be defined before c++17" -# endif +# ifdef __cpp_lib_apply +# error "__cpp_lib_apply should not be defined before c++17" +# endif -# ifdef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should not be defined before c++17" -# endif +# ifdef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should not be defined before c++17" +# endif -# ifdef __cpp_lib_as_const -# error "__cpp_lib_as_const should not be defined before c++17" -# endif +# ifdef __cpp_lib_as_const +# error "__cpp_lib_as_const should not be defined before c++17" +# endif -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif -# ifdef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should not be defined before c++20" -# endif +# ifdef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should not be defined before c++20" +# endif -# ifdef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17" -# endif - -# ifdef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif - -# ifdef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined before c++20" -# endif - -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined before c++20" -# endif - -# ifdef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should not be defined before c++23" -# endif - -# ifdef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should not be defined before c++20" -# endif - -# ifdef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should not be defined before c++20" -# endif - -# ifdef __cpp_lib_bitops -# error "__cpp_lib_bitops should not be defined before c++20" -# endif - -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif - -# ifdef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should not be defined before c++17" -# endif - -# ifdef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should not be defined before c++20" -# endif - -# ifdef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17" -# endif - -# ifdef __cpp_lib_byte -# error "__cpp_lib_byte should not be defined before c++17" -# endif - -# ifdef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should not be defined before c++23" -# endif - -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif - -# ifdef __cpp_lib_chrono -# error "__cpp_lib_chrono should not be defined before c++17" -# endif - -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++14" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_clamp -# error "__cpp_lib_clamp should not be defined before c++17" -# endif - -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++14" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++14" -# endif - -# ifdef __cpp_lib_concepts -# error "__cpp_lib_concepts should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif - -# ifdef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif - -# ifdef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should not be defined before c++20" -# endif - -# ifdef __cpp_lib_debugging -# error "__cpp_lib_debugging should not be defined before c++26" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined before c++20" -# endif +# ifdef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17" +# endif + +# ifdef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif + +# ifdef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined before c++20" +# endif + +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined before c++20" +# endif + +# ifdef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should not be defined before c++23" +# endif + +# ifdef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should not be defined before c++20" +# endif + +# ifdef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should not be defined before c++20" +# endif + +# ifdef __cpp_lib_bitops +# error "__cpp_lib_bitops should not be defined before c++20" +# endif + +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif + +# ifdef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should not be defined before c++17" +# endif + +# ifdef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should not be defined before c++20" +# endif + +# ifdef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should not be defined before c++17" +# endif + +# ifdef __cpp_lib_byte +# error "__cpp_lib_byte should not be defined before c++17" +# endif + +# ifdef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should not be defined before c++23" +# endif + +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif + +# ifdef __cpp_lib_chrono +# error "__cpp_lib_chrono should not be defined before c++17" +# endif + +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++14" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_clamp +# error "__cpp_lib_clamp should not be defined before c++17" +# endif + +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++14" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++14" +# endif + +# ifdef __cpp_lib_concepts +# error "__cpp_lib_concepts should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif + +# ifdef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif + +# ifdef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should not be defined before c++20" +# endif + +# ifdef __cpp_lib_debugging +# error "__cpp_lib_debugging should not be defined before c++26" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined before c++20" +# endif -# ifdef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should not be defined before c++17" -# endif +# ifdef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should not be defined before c++17" +# endif -# ifdef __cpp_lib_endian -# error "__cpp_lib_endian should not be defined before c++20" -# endif +# ifdef __cpp_lib_endian +# error "__cpp_lib_endian should not be defined before c++20" +# endif -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++14" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined before c++17" -# endif - -# ifdef __cpp_lib_expected -# error "__cpp_lib_expected should not be defined before c++23" -# endif - -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined before c++17" -# endif - -# ifdef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should not be defined before c++23" -# endif - -# ifdef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should not be defined before c++23" -# endif - -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined before c++20" -# endif - -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif - -# ifdef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should not be defined before c++20" -# endif - -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined before c++23" -# endif - -# ifdef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should not be defined before c++23" -# endif - -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif - -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif - -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif - -# ifdef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should not be defined before c++17" -# endif - -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++14" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif - -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined before c++17" -# endif - -# ifdef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should not be defined before c++17" -# endif - -# ifdef __cpp_lib_hazard_pointer -# error "__cpp_lib_hazard_pointer should not be defined before c++26" -# endif - -# ifdef __cpp_lib_hypot -# error "__cpp_lib_hypot should not be defined before c++17" -# endif - -# ifdef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" -# endif - -# ifdef __cpp_lib_inplace_vector -# error "__cpp_lib_inplace_vector should not be defined before c++26" -# endif - -# ifdef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should not be defined before c++20" -# endif - -# ifdef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++14" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++14" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++14" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif - -# ifdef __cpp_lib_invoke -# error "__cpp_lib_invoke should not be defined before c++17" -# endif - -# ifdef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should not be defined before c++23" -# endif - -# ifdef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should not be defined before c++17" -# endif - -# ifdef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++14" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++14" -# endif - -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" -# endif - -# ifdef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should not be defined before c++17" -# endif - -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined before c++20" -# endif - -# ifdef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++14" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++14" -# endif - -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" -# endif - -# ifdef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should not be defined before c++23" -# endif - -# ifdef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should not be defined before c++17" -# endif - -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif - -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif - -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif - -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined before c++20" -# endif - -# ifdef __cpp_lib_launder -# error "__cpp_lib_launder should not be defined before c++17" -# endif - -# ifdef __cpp_lib_linalg -# error "__cpp_lib_linalg should not be defined before c++26" -# endif - -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif - -# ifdef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should not be defined before c++17" -# endif - -# ifdef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should not be defined before c++17" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++14" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++14" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++14" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should not be defined before c++17" -# endif - -# ifdef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should not be defined before c++20" -# endif - -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined before c++17" -# endif - -# ifdef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should not be defined before c++23" -# endif - -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined before c++17" -# endif - -# ifdef __cpp_lib_modules -# error "__cpp_lib_modules should not be defined before c++23" -# endif - -# ifdef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should not be defined before c++20" -# endif - -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined before c++23" -# endif - -# ifdef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should not be defined before c++17" -# endif - -# ifdef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should not be defined before c++17" -# endif - -# ifdef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should not be defined before c++17" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++14" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_optional -# error "__cpp_lib_optional should not be defined before c++17" -# endif - -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif - -# ifdef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should not be defined before c++23" -# endif - -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined before c++17" -# endif - -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif - -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" -# endif - -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++14" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++14" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif - -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif - -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif - -# ifdef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif - -# ifdef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17" -# endif - -# ifdef __cpp_lib_rcu -# error "__cpp_lib_rcu should not be defined before c++26" -# endif - -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined before c++23" -# endif - -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif - -# ifdef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should not be defined before c++20" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++14" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++14" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_sample -# error "__cpp_lib_sample should not be defined before c++17" -# endif - -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif - -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined before c++17" -# endif - -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined before c++20" -# endif - -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif - -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined before c++17" -# endif - -# ifdef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17" -# endif - -# ifdef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++14" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++14" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifdef __cpp_lib_shift -# error "__cpp_lib_shift should not be defined before c++20" -# endif - -# ifdef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" -# endif - -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif - -# ifdef __cpp_lib_source_location -# error "__cpp_lib_source_location should not be defined before c++20" -# endif - -# ifdef __cpp_lib_span -# error "__cpp_lib_span should not be defined before c++20" -# endif - -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif - -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif - -# ifdef __cpp_lib_spanstream -# error "__cpp_lib_spanstream should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ssize -# error "__cpp_lib_ssize should not be defined before c++20" -# endif - -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif - -# ifdef __cpp_lib_stacktrace -# error "__cpp_lib_stacktrace should not be defined before c++23" -# endif - -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif - -# ifdef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should not be defined before c++23" -# endif - -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++14" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_string_view -# error "__cpp_lib_string_view should not be defined before c++17" -# endif - -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif - -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined before c++20" -# endif - -# ifdef __cpp_lib_text_encoding -# error "__cpp_lib_text_encoding should not be defined before c++26" -# endif - -# ifdef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should not be defined before c++20" -# endif - -# ifdef __cpp_lib_to_address -# error "__cpp_lib_to_address should not be defined before c++20" -# endif - -# ifdef __cpp_lib_to_array -# error "__cpp_lib_to_array should not be defined before c++20" -# endif - -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined before c++17" -# endif - -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif - -# ifdef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should not be defined before c++23" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++14" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++14" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++14" -# endif -# if __cpp_lib_transparent_operators != 201210L -# error "__cpp_lib_transparent_operators should have the value 201210L in c++14" -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++14" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++14" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++14" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++14" -# endif - -# ifdef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should not be defined before c++20" -# endif - -# ifdef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17" -# endif - -# ifdef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should not be defined before c++17" -# endif - -# ifdef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17" -# endif - -# ifdef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should not be defined before c++23" -# endif - -# ifdef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should not be defined before c++20" -# endif - -# ifdef __cpp_lib_variant -# error "__cpp_lib_variant should not be defined before c++17" -# endif - -# ifdef __cpp_lib_void_t -# error "__cpp_lib_void_t should not be defined before c++17" -# endif +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++14" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined before c++17" +# endif + +# ifdef __cpp_lib_expected +# error "__cpp_lib_expected should not be defined before c++23" +# endif + +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined before c++17" +# endif + +# ifdef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should not be defined before c++23" +# endif + +# ifdef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should not be defined before c++23" +# endif + +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined before c++20" +# endif + +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif + +# ifdef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should not be defined before c++20" +# endif + +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined before c++23" +# endif + +# ifdef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should not be defined before c++23" +# endif + +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif + +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif + +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif + +# ifdef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should not be defined before c++17" +# endif + +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++14" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif + +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined before c++17" +# endif + +# ifdef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should not be defined before c++17" +# endif + +# ifdef __cpp_lib_hazard_pointer +# error "__cpp_lib_hazard_pointer should not be defined before c++26" +# endif + +# ifdef __cpp_lib_hypot +# error "__cpp_lib_hypot should not be defined before c++17" +# endif + +# ifdef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should not be defined before c++17" +# endif + +# ifdef __cpp_lib_inplace_vector +# error "__cpp_lib_inplace_vector should not be defined before c++26" +# endif + +# ifdef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should not be defined before c++20" +# endif + +# ifdef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++14" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++14" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++14" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif + +# ifdef __cpp_lib_invoke +# error "__cpp_lib_invoke should not be defined before c++17" +# endif + +# ifdef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should not be defined before c++23" +# endif + +# ifdef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should not be defined before c++17" +# endif + +# ifdef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++14" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++14" +# endif + +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" +# endif + +# ifdef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should not be defined before c++17" +# endif + +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined before c++20" +# endif + +# ifdef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++14" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++14" +# endif + +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" +# endif + +# ifdef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should not be defined before c++23" +# endif + +# ifdef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should not be defined before c++17" +# endif + +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif + +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif + +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif + +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined before c++20" +# endif + +# ifdef __cpp_lib_launder +# error "__cpp_lib_launder should not be defined before c++17" +# endif + +# ifdef __cpp_lib_linalg +# error "__cpp_lib_linalg should not be defined before c++26" +# endif + +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif + +# ifdef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should not be defined before c++17" +# endif + +# ifdef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should not be defined before c++17" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++14" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++14" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++14" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should not be defined before c++17" +# endif + +# ifdef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should not be defined before c++20" +# endif + +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined before c++17" +# endif + +# ifdef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should not be defined before c++23" +# endif + +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined before c++17" +# endif + +# ifdef __cpp_lib_modules +# error "__cpp_lib_modules should not be defined before c++23" +# endif + +# ifdef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should not be defined before c++20" +# endif + +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined before c++23" +# endif + +# ifdef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should not be defined before c++17" +# endif + +# ifdef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should not be defined before c++17" +# endif + +# ifdef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should not be defined before c++17" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++14" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_optional +# error "__cpp_lib_optional should not be defined before c++17" +# endif + +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif + +# ifdef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should not be defined before c++23" +# endif + +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined before c++17" +# endif + +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif + +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" +# endif + +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++14" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++14" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif + +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif + +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif + +# ifdef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif + +# ifdef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should not be defined before c++17" +# endif + +# ifdef __cpp_lib_rcu +# error "__cpp_lib_rcu should not be defined before c++26" +# endif + +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined before c++23" +# endif + +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif + +# ifdef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should not be defined before c++20" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++14" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++14" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_sample +# error "__cpp_lib_sample should not be defined before c++17" +# endif + +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif + +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined before c++17" +# endif + +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined before c++20" +# endif + +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif + +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined before c++17" +# endif + +# ifdef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should not be defined before c++17" +# endif + +# ifdef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++14" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++14" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifdef __cpp_lib_shift +# error "__cpp_lib_shift should not be defined before c++20" +# endif + +# ifdef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" +# endif + +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif + +# ifdef __cpp_lib_source_location +# error "__cpp_lib_source_location should not be defined before c++20" +# endif + +# ifdef __cpp_lib_span +# error "__cpp_lib_span should not be defined before c++20" +# endif + +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif + +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif + +# ifdef __cpp_lib_spanstream +# error "__cpp_lib_spanstream should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ssize +# error "__cpp_lib_ssize should not be defined before c++20" +# endif + +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif + +# ifdef __cpp_lib_stacktrace +# error "__cpp_lib_stacktrace should not be defined before c++23" +# endif + +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif + +# ifdef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should not be defined before c++23" +# endif + +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++14" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_string_view +# error "__cpp_lib_string_view should not be defined before c++17" +# endif + +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif + +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined before c++20" +# endif + +# ifdef __cpp_lib_text_encoding +# error "__cpp_lib_text_encoding should not be defined before c++26" +# endif + +# ifdef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should not be defined before c++20" +# endif + +# ifdef __cpp_lib_to_address +# error "__cpp_lib_to_address should not be defined before c++20" +# endif + +# ifdef __cpp_lib_to_array +# error "__cpp_lib_to_array should not be defined before c++20" +# endif + +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined before c++17" +# endif + +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif + +# ifdef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should not be defined before c++23" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++14" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++14" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++14" +# endif +# if __cpp_lib_transparent_operators != 201210L +# error "__cpp_lib_transparent_operators should have the value 201210L in c++14" +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++14" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++14" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++14" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++14" +# endif + +# ifdef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should not be defined before c++20" +# endif + +# ifdef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should not be defined before c++17" +# endif + +# ifdef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should not be defined before c++17" +# endif + +# ifdef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17" +# endif + +# ifdef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should not be defined before c++23" +# endif + +# ifdef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should not be defined before c++20" +# endif + +# ifdef __cpp_lib_variant +# error "__cpp_lib_variant should not be defined before c++17" +# endif + +# ifdef __cpp_lib_void_t +# error "__cpp_lib_void_t should not be defined before c++17" +# 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++23" -# endif - -# ifndef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should be defined in c++17" -# endif -# if __cpp_lib_addressof_constexpr != 201603L -# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should not be defined before c++23" -# endif - -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" -# endif - -# ifndef __cpp_lib_any -# error "__cpp_lib_any should be defined in c++17" -# endif -# if __cpp_lib_any != 201606L -# error "__cpp_lib_any should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_apply -# error "__cpp_lib_apply should be defined in c++17" -# endif -# if __cpp_lib_apply != 201603L -# error "__cpp_lib_apply should have the value 201603L in c++17" -# endif - -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++17" -# endif -# if __cpp_lib_array_constexpr != 201603L -# error "__cpp_lib_array_constexpr should have the value 201603L in c++17" -# endif - -# ifndef __cpp_lib_as_const -# error "__cpp_lib_as_const should be defined in c++17" -# endif -# if __cpp_lib_as_const != 201510L -# error "__cpp_lib_as_const should have the value 201510L in c++17" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifdef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should not be defined before c++20" -# endif - -# ifndef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17" -# endif -# if __cpp_lib_atomic_is_always_lock_free != 201603L -# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif - -# ifdef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" -# endif - -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined before c++20" -# endif - -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined before c++20" -# endif - -# ifdef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should not be defined before c++23" -# endif - -# ifdef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should not be defined before c++20" -# endif - -# ifdef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should not be defined before c++20" -# endif - -# ifdef __cpp_lib_bitops -# error "__cpp_lib_bitops should not be defined before c++20" -# endif - -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif - -# ifndef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should be defined in c++17" -# endif -# if __cpp_lib_bool_constant != 201505L -# error "__cpp_lib_bool_constant should have the value 201505L in c++17" -# endif - -# ifdef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should not be defined before c++20" -# endif - -# ifndef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should be defined in c++17" -# endif -# if __cpp_lib_boyer_moore_searcher != 201603L -# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17" -# endif - -# ifndef __cpp_lib_byte -# error "__cpp_lib_byte should be defined in c++17" -# endif -# if __cpp_lib_byte != 201603L -# error "__cpp_lib_byte should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should not be defined before c++23" -# endif - -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined before c++20" -# endif - -# ifndef __cpp_lib_chrono -# error "__cpp_lib_chrono should be defined in c++17" -# endif -# if __cpp_lib_chrono != 201611L -# error "__cpp_lib_chrono should have the value 201611L in c++17" -# endif - -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++17" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_clamp -# error "__cpp_lib_clamp should be defined in c++17" -# endif -# if __cpp_lib_clamp != 201603L -# error "__cpp_lib_clamp should have the value 201603L in c++17" -# endif - -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++17" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++17" -# endif - -# ifdef __cpp_lib_concepts -# error "__cpp_lib_concepts should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif - -# ifdef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should not be defined before c++20" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif - -# ifdef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should not be defined before c++20" -# endif - -# ifdef __cpp_lib_debugging -# error "__cpp_lib_debugging should not be defined before c++26" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined before c++20" -# endif - -# ifndef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should be defined in c++17" -# endif -# if __cpp_lib_enable_shared_from_this != 201603L -# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_endian -# error "__cpp_lib_endian should not be defined before c++20" -# endif - -# ifdef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should not be defined before c++20" -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++17" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++17" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_execution -# error "__cpp_lib_execution should be defined in c++17" -# endif -# if __cpp_lib_execution != 201603L -# error "__cpp_lib_execution should have the value 201603L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_expected -# error "__cpp_lib_expected should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) -# ifndef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should be defined in c++17" -# endif -# if __cpp_lib_filesystem != 201703L -# error "__cpp_lib_filesystem should have the value 201703L in c++17" -# endif -# else -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should not be defined before c++23" -# endif - -# ifdef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should not be defined before c++23" -# endif - -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined before c++20" -# endif - -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif - -# ifdef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should not be defined before c++20" -# endif - -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined before c++23" -# endif - -# ifdef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should not be defined before c++23" -# endif - -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif - -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif - -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif - -# ifndef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should be defined in c++17" -# endif -# if __cpp_lib_gcd_lcm != 201606L -# error "__cpp_lib_gcd_lcm should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++17" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" -# endif - -# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) -# ifndef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should be defined in c++17" -# endif -# if __cpp_lib_hardware_interference_size != 201703L -# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17" -# endif -# else -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" -# endif -# endif - -# ifndef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should be defined in c++17" -# endif -# if __cpp_lib_has_unique_object_representations != 201606L -# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_hazard_pointer -# error "__cpp_lib_hazard_pointer should not be defined before c++26" -# endif - -# ifndef __cpp_lib_hypot -# error "__cpp_lib_hypot should be defined in c++17" -# endif -# if __cpp_lib_hypot != 201603L -# error "__cpp_lib_hypot should have the value 201603L in c++17" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++17" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17" -# endif - -# ifdef __cpp_lib_inplace_vector -# error "__cpp_lib_inplace_vector should not be defined before c++26" -# endif - -# ifdef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should not be defined before c++20" -# endif - -# ifdef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++17" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++17" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should not be defined before c++20" -# endif - -# ifndef __cpp_lib_invoke -# error "__cpp_lib_invoke should be defined in c++17" -# endif -# if __cpp_lib_invoke != 201411L -# error "__cpp_lib_invoke should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should be defined in c++17" -# endif -# if __cpp_lib_is_aggregate != 201703L -# error "__cpp_lib_is_aggregate should have the value 201703L in c++17" -# endif - -# ifdef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++17" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++17" -# endif - -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should be defined in c++17" -# endif -# if __cpp_lib_is_invocable != 201703L -# error "__cpp_lib_is_invocable should have the value 201703L in c++17" -# endif - -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined before c++20" -# endif - -# ifdef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++17" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++17" -# endif - -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" -# endif - -# ifdef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should be defined in c++17" -# endif -# if __cpp_lib_is_swappable != 201603L -# error "__cpp_lib_is_swappable should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif - -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif - -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined before c++20" -# endif - -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined before c++20" -# endif - -# ifndef __cpp_lib_launder -# error "__cpp_lib_launder should be defined in c++17" -# endif -# if __cpp_lib_launder != 201606L -# error "__cpp_lib_launder should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_linalg -# error "__cpp_lib_linalg should not be defined before c++26" -# endif - -# ifdef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should not be defined before c++20" -# endif - -# ifndef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should be defined in c++17" -# endif -# if __cpp_lib_logical_traits != 201510L -# error "__cpp_lib_logical_traits should have the value 201510L in c++17" -# endif - -# ifndef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should be defined in c++17" -# endif -# if __cpp_lib_make_from_tuple != 201606L -# error "__cpp_lib_make_from_tuple should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++17" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++17" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should be defined in c++17" -# endif -# if __cpp_lib_map_try_emplace != 201411L -# error "__cpp_lib_map_try_emplace should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should not be defined before c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should be defined in c++17" -# endif -# if __cpp_lib_math_special_functions != 201603L -# error "__cpp_lib_math_special_functions should have the value 201603L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should be defined in c++17" -# endif -# if __cpp_lib_memory_resource != 201603L -# error "__cpp_lib_memory_resource should have the value 201603L in c++17" -# endif -# else -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# ifdef __cpp_lib_modules -# error "__cpp_lib_modules should not be defined before c++23" -# endif - -# ifdef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should not be defined before c++20" -# endif - -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined before c++23" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++17" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++17" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++17" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" -# endif - -# ifndef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should be defined in c++17" -# endif -# if __cpp_lib_not_fn != 201603L -# error "__cpp_lib_not_fn should have the value 201603L in c++17" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++17" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_optional -# error "__cpp_lib_optional should be defined in c++17" -# endif -# if __cpp_lib_optional != 201606L -# error "__cpp_lib_optional should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif - -# ifdef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++17" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif - -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" -# endif - -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++17" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++17" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif - -# ifdef __cpp_lib_ranges -# error "__cpp_lib_ranges should not be defined before c++20" -# endif - -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif - -# ifdef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif - -# ifndef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should be defined in c++17" -# endif -# if __cpp_lib_raw_memory_algorithms != 201606L -# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_rcu -# error "__cpp_lib_rcu should not be defined before c++26" -# endif - -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined before c++23" -# endif - -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif - -# ifdef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should not be defined before c++20" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++17" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_sample -# error "__cpp_lib_sample should be defined in c++17" -# endif -# if __cpp_lib_sample != 201603L -# error "__cpp_lib_sample should have the value 201603L in c++17" -# endif - -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should be defined in c++17" -# endif -# if __cpp_lib_scoped_lock != 201703L -# error "__cpp_lib_scoped_lock should have the value 201703L in c++17" -# endif -# else -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined before c++20" -# endif - -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should be defined in c++17" -# endif -# if __cpp_lib_shared_mutex != 201505L -# error "__cpp_lib_shared_mutex should have the value 201505L in c++17" -# endif -# else -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifndef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should be defined in c++17" -# endif -# if __cpp_lib_shared_ptr_arrays != 201611L -# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17" -# endif - -# ifndef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should be defined in c++17" -# endif -# if __cpp_lib_shared_ptr_weak_type != 201606L -# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++17" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifdef __cpp_lib_shift -# error "__cpp_lib_shift should not be defined before c++20" -# endif - -# ifdef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" -# endif - -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif - -# ifdef __cpp_lib_source_location -# error "__cpp_lib_source_location should not be defined before c++20" -# endif - -# ifdef __cpp_lib_span -# error "__cpp_lib_span should not be defined before c++20" -# endif - -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif - -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif - -# ifdef __cpp_lib_spanstream -# error "__cpp_lib_spanstream should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ssize -# error "__cpp_lib_ssize should not be defined before c++20" -# endif - -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif - -# ifdef __cpp_lib_stacktrace -# error "__cpp_lib_stacktrace should not be defined before c++23" -# endif - -# ifdef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should not be defined before c++20" -# endif - -# ifdef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should not be defined before c++23" -# endif - -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++17" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++17" -# endif -# if __cpp_lib_string_view != 201606L -# error "__cpp_lib_string_view should have the value 201606L in c++17" -# endif - -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif - -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined before c++20" -# endif - -# ifdef __cpp_lib_text_encoding -# error "__cpp_lib_text_encoding should not be defined before c++26" -# endif - -# ifdef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should not be defined before c++20" -# endif - -# ifdef __cpp_lib_to_address -# error "__cpp_lib_to_address should not be defined before c++20" -# endif - -# ifdef __cpp_lib_to_array -# error "__cpp_lib_to_array should not be defined before c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should be defined in c++17" -# endif -# if __cpp_lib_to_chars != 201611L -# error "__cpp_lib_to_chars should have the value 201611L in c++17" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif - -# ifdef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should not be defined before c++23" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++17" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++17" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++17" -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++17" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++17" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++17" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++17" -# endif - -# ifdef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should not be defined before c++20" -# endif - -# ifndef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should be defined in c++17" -# endif -# if __cpp_lib_type_trait_variable_templates != 201510L -# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17" -# endif - -# ifndef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should be defined in c++17" -# endif -# if __cpp_lib_uncaught_exceptions != 201411L -# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17" -# endif - -# ifndef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should be defined in c++17" -# endif -# if __cpp_lib_unordered_map_try_emplace != 201411L -# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17" -# endif - -# ifdef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should not be defined before c++23" -# endif - -# ifdef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should not be defined before c++20" -# endif - -# ifndef __cpp_lib_variant -# error "__cpp_lib_variant should be defined in c++17" -# endif -# if __cpp_lib_variant != 202102L -# error "__cpp_lib_variant should have the value 202102L in c++17" -# endif - -# ifndef __cpp_lib_void_t -# error "__cpp_lib_void_t should be defined in c++17" -# endif -# if __cpp_lib_void_t != 201411L -# error "__cpp_lib_void_t should have the value 201411L in c++17" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif + +# ifndef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should be defined in c++17" +# endif +# if __cpp_lib_addressof_constexpr != 201603L +# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should not be defined before c++23" +# endif + +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" +# endif + +# ifndef __cpp_lib_any +# error "__cpp_lib_any should be defined in c++17" +# endif +# if __cpp_lib_any != 201606L +# error "__cpp_lib_any should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_apply +# error "__cpp_lib_apply should be defined in c++17" +# endif +# if __cpp_lib_apply != 201603L +# error "__cpp_lib_apply should have the value 201603L in c++17" +# endif + +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++17" +# endif +# if __cpp_lib_array_constexpr != 201603L +# error "__cpp_lib_array_constexpr should have the value 201603L in c++17" +# endif + +# ifndef __cpp_lib_as_const +# error "__cpp_lib_as_const should be defined in c++17" +# endif +# if __cpp_lib_as_const != 201510L +# error "__cpp_lib_as_const should have the value 201510L in c++17" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifdef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should not be defined before c++20" +# endif + +# ifndef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17" +# endif +# if __cpp_lib_atomic_is_always_lock_free != 201603L +# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif + +# ifdef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should not be defined before c++20" +# endif + +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined before c++20" +# endif + +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined before c++20" +# endif + +# ifdef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should not be defined before c++23" +# endif + +# ifdef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should not be defined before c++20" +# endif + +# ifdef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should not be defined before c++20" +# endif + +# ifdef __cpp_lib_bitops +# error "__cpp_lib_bitops should not be defined before c++20" +# endif + +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif + +# ifndef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should be defined in c++17" +# endif +# if __cpp_lib_bool_constant != 201505L +# error "__cpp_lib_bool_constant should have the value 201505L in c++17" +# endif + +# ifdef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should not be defined before c++20" +# endif + +# ifndef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should be defined in c++17" +# endif +# if __cpp_lib_boyer_moore_searcher != 201603L +# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17" +# endif + +# ifndef __cpp_lib_byte +# error "__cpp_lib_byte should be defined in c++17" +# endif +# if __cpp_lib_byte != 201603L +# error "__cpp_lib_byte should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should not be defined before c++23" +# endif + +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined before c++20" +# endif + +# ifndef __cpp_lib_chrono +# error "__cpp_lib_chrono should be defined in c++17" +# endif +# if __cpp_lib_chrono != 201611L +# error "__cpp_lib_chrono should have the value 201611L in c++17" +# endif + +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++17" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_clamp +# error "__cpp_lib_clamp should be defined in c++17" +# endif +# if __cpp_lib_clamp != 201603L +# error "__cpp_lib_clamp should have the value 201603L in c++17" +# endif + +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++17" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++17" +# endif + +# ifdef __cpp_lib_concepts +# error "__cpp_lib_concepts should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif + +# ifdef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should not be defined before c++20" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif + +# ifdef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should not be defined before c++20" +# endif + +# ifdef __cpp_lib_debugging +# error "__cpp_lib_debugging should not be defined before c++26" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined before c++20" +# endif + +# ifndef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should be defined in c++17" +# endif +# if __cpp_lib_enable_shared_from_this != 201603L +# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_endian +# error "__cpp_lib_endian should not be defined before c++20" +# endif + +# ifdef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should not be defined before c++20" +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++17" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++17" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_execution +# error "__cpp_lib_execution should be defined in c++17" +# endif +# if __cpp_lib_execution != 201603L +# error "__cpp_lib_execution should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_expected +# error "__cpp_lib_expected should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) +# ifndef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should be defined in c++17" +# endif +# if __cpp_lib_filesystem != 201703L +# error "__cpp_lib_filesystem should have the value 201703L in c++17" +# endif +# else +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should not be defined before c++23" +# endif + +# ifdef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should not be defined before c++23" +# endif + +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined before c++20" +# endif + +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif + +# ifdef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should not be defined before c++20" +# endif + +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined before c++23" +# endif + +# ifdef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should not be defined before c++23" +# endif + +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif + +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif + +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif + +# ifndef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should be defined in c++17" +# endif +# if __cpp_lib_gcd_lcm != 201606L +# error "__cpp_lib_gcd_lcm should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++17" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should not be defined before c++20" +# endif + +# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) +# ifndef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should be defined in c++17" +# endif +# if __cpp_lib_hardware_interference_size != 201703L +# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17" +# endif +# else +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" +# endif +# endif + +# ifndef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should be defined in c++17" +# endif +# if __cpp_lib_has_unique_object_representations != 201606L +# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_hazard_pointer +# error "__cpp_lib_hazard_pointer should not be defined before c++26" +# endif + +# ifndef __cpp_lib_hypot +# error "__cpp_lib_hypot should be defined in c++17" +# endif +# if __cpp_lib_hypot != 201603L +# error "__cpp_lib_hypot should have the value 201603L in c++17" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++17" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17" +# endif + +# ifdef __cpp_lib_inplace_vector +# error "__cpp_lib_inplace_vector should not be defined before c++26" +# endif + +# ifdef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should not be defined before c++20" +# endif + +# ifdef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should not be defined before c++20" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++17" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++17" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should not be defined before c++20" +# endif + +# ifndef __cpp_lib_invoke +# error "__cpp_lib_invoke should be defined in c++17" +# endif +# if __cpp_lib_invoke != 201411L +# error "__cpp_lib_invoke should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should be defined in c++17" +# endif +# if __cpp_lib_is_aggregate != 201703L +# error "__cpp_lib_is_aggregate should have the value 201703L in c++17" +# endif + +# ifdef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should not be defined before c++20" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++17" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++17" +# endif + +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should be defined in c++17" +# endif +# if __cpp_lib_is_invocable != 201703L +# error "__cpp_lib_is_invocable should have the value 201703L in c++17" +# endif + +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined before c++20" +# endif + +# ifdef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should not be defined before c++20" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++17" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++17" +# endif + +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined before c++20" +# endif + +# ifdef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should be defined in c++17" +# endif +# if __cpp_lib_is_swappable != 201603L +# error "__cpp_lib_is_swappable should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif + +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif + +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined before c++20" +# endif + +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined before c++20" +# endif + +# ifndef __cpp_lib_launder +# error "__cpp_lib_launder should be defined in c++17" +# endif +# if __cpp_lib_launder != 201606L +# error "__cpp_lib_launder should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_linalg +# error "__cpp_lib_linalg should not be defined before c++26" +# endif + +# ifdef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should not be defined before c++20" +# endif + +# ifndef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should be defined in c++17" +# endif +# if __cpp_lib_logical_traits != 201510L +# error "__cpp_lib_logical_traits should have the value 201510L in c++17" +# endif + +# ifndef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should be defined in c++17" +# endif +# if __cpp_lib_make_from_tuple != 201606L +# error "__cpp_lib_make_from_tuple should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++17" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++17" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should be defined in c++17" +# endif +# if __cpp_lib_map_try_emplace != 201411L +# error "__cpp_lib_map_try_emplace should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should not be defined before c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should be defined in c++17" +# endif +# if __cpp_lib_math_special_functions != 201603L +# error "__cpp_lib_math_special_functions should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should be defined in c++17" +# endif +# if __cpp_lib_memory_resource != 201603L +# error "__cpp_lib_memory_resource should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# ifdef __cpp_lib_modules +# error "__cpp_lib_modules should not be defined before c++23" +# endif + +# ifdef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should not be defined before c++20" +# endif + +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined before c++23" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++17" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++17" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++17" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" +# endif + +# ifndef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should be defined in c++17" +# endif +# if __cpp_lib_not_fn != 201603L +# error "__cpp_lib_not_fn should have the value 201603L in c++17" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++17" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_optional +# error "__cpp_lib_optional should be defined in c++17" +# endif +# if __cpp_lib_optional != 201606L +# error "__cpp_lib_optional should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif + +# ifdef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++17" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif + +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined before c++20" +# endif + +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++17" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++17" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif + +# ifdef __cpp_lib_ranges +# error "__cpp_lib_ranges should not be defined before c++20" +# endif + +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif + +# ifdef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif + +# ifndef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should be defined in c++17" +# endif +# if __cpp_lib_raw_memory_algorithms != 201606L +# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_rcu +# error "__cpp_lib_rcu should not be defined before c++26" +# endif + +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined before c++23" +# endif + +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif + +# ifdef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should not be defined before c++20" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++17" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_sample +# error "__cpp_lib_sample should be defined in c++17" +# endif +# if __cpp_lib_sample != 201603L +# error "__cpp_lib_sample should have the value 201603L in c++17" +# endif + +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should be defined in c++17" +# endif +# if __cpp_lib_scoped_lock != 201703L +# error "__cpp_lib_scoped_lock should have the value 201703L in c++17" +# endif +# else +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined before c++20" +# endif + +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should be defined in c++17" +# endif +# if __cpp_lib_shared_mutex != 201505L +# error "__cpp_lib_shared_mutex should have the value 201505L in c++17" +# endif +# else +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifndef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should be defined in c++17" +# endif +# if __cpp_lib_shared_ptr_arrays != 201611L +# error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17" +# endif + +# ifndef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should be defined in c++17" +# endif +# if __cpp_lib_shared_ptr_weak_type != 201606L +# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++17" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifdef __cpp_lib_shift +# error "__cpp_lib_shift should not be defined before c++20" +# endif + +# ifdef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should not be defined before c++20" +# endif + +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif + +# ifdef __cpp_lib_source_location +# error "__cpp_lib_source_location should not be defined before c++20" +# endif + +# ifdef __cpp_lib_span +# error "__cpp_lib_span should not be defined before c++20" +# endif + +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif + +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif + +# ifdef __cpp_lib_spanstream +# error "__cpp_lib_spanstream should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ssize +# error "__cpp_lib_ssize should not be defined before c++20" +# endif + +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif + +# ifdef __cpp_lib_stacktrace +# error "__cpp_lib_stacktrace should not be defined before c++23" +# endif + +# ifdef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should not be defined before c++20" +# endif + +# ifdef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should not be defined before c++23" +# endif + +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++17" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++17" +# endif +# if __cpp_lib_string_view != 201606L +# error "__cpp_lib_string_view should have the value 201606L in c++17" +# endif + +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif + +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined before c++20" +# endif + +# ifdef __cpp_lib_text_encoding +# error "__cpp_lib_text_encoding should not be defined before c++26" +# endif + +# ifdef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should not be defined before c++20" +# endif + +# ifdef __cpp_lib_to_address +# error "__cpp_lib_to_address should not be defined before c++20" +# endif + +# ifdef __cpp_lib_to_array +# error "__cpp_lib_to_array should not be defined before c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should be defined in c++17" +# endif +# if __cpp_lib_to_chars != 201611L +# error "__cpp_lib_to_chars should have the value 201611L in c++17" +# endif +# else +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif + +# ifdef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should not be defined before c++23" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++17" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++17" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++17" +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++17" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++17" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++17" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++17" +# endif + +# ifdef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should not be defined before c++20" +# endif + +# ifndef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should be defined in c++17" +# endif +# if __cpp_lib_type_trait_variable_templates != 201510L +# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17" +# endif + +# ifndef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should be defined in c++17" +# endif +# if __cpp_lib_uncaught_exceptions != 201411L +# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17" +# endif + +# ifndef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should be defined in c++17" +# endif +# if __cpp_lib_unordered_map_try_emplace != 201411L +# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17" +# endif + +# ifdef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should not be defined before c++23" +# endif + +# ifdef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should not be defined before c++20" +# endif + +# ifndef __cpp_lib_variant +# error "__cpp_lib_variant should be defined in c++17" +# endif +# if __cpp_lib_variant != 202102L +# error "__cpp_lib_variant should have the value 202102L in c++17" +# endif + +# ifndef __cpp_lib_void_t +# error "__cpp_lib_void_t should be defined in c++17" +# endif +# if __cpp_lib_void_t != 201411L +# error "__cpp_lib_void_t should have the value 201411L in c++17" +# endif #elif TEST_STD_VER == 20 -# ifdef __cpp_lib_adaptor_iterator_pair_constructor -# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" -# endif - -# ifndef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should be defined in c++20" -# endif -# if __cpp_lib_addressof_constexpr != 201603L -# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20" -# endif - -# ifdef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should not be defined before c++23" -# endif - -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_any -# error "__cpp_lib_any should be defined in c++20" -# endif -# if __cpp_lib_any != 201606L -# error "__cpp_lib_any should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_apply -# error "__cpp_lib_apply should be defined in c++20" -# endif -# if __cpp_lib_apply != 201603L -# error "__cpp_lib_apply should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++20" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_as_const -# error "__cpp_lib_as_const should be defined in c++20" -# endif -# if __cpp_lib_as_const != 201510L -# error "__cpp_lib_as_const should have the value 201510L in c++20" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifndef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should be defined in c++20" -# endif -# if __cpp_lib_assume_aligned != 201811L -# error "__cpp_lib_assume_aligned should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should be defined in c++20" -# endif -# if __cpp_lib_atomic_flag_test != 201907L -# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should be defined in c++20" -# endif -# if __cpp_lib_atomic_float != 201711L -# error "__cpp_lib_atomic_float should have the value 201711L in c++20" -# endif - -# ifndef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20" -# endif -# if __cpp_lib_atomic_is_always_lock_free != 201603L -# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20" -# endif -# if __cpp_lib_atomic_lock_free_type_aliases != 201907L -# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20" -# endif - -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif - -# ifndef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should be defined in c++20" -# endif -# if __cpp_lib_atomic_ref != 201806L -# error "__cpp_lib_atomic_ref should have the value 201806L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should be defined in c++20" -# endif -# if __cpp_lib_atomic_shared_ptr != 201711L -# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++20" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC -# ifndef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should be defined in c++20" -# endif -# if __cpp_lib_atomic_wait != 201907L -# error "__cpp_lib_atomic_wait should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_barrier -# error "__cpp_lib_barrier should be defined in c++20" -# endif -# if __cpp_lib_barrier != 201907L -# error "__cpp_lib_barrier should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should not be defined before c++23" -# endif - -# ifndef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should be defined in c++20" -# endif -# if __cpp_lib_bind_front != 201907L -# error "__cpp_lib_bind_front should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should be defined in c++20" -# endif -# if __cpp_lib_bit_cast != 201806L -# error "__cpp_lib_bit_cast should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_bitops -# error "__cpp_lib_bitops should be defined in c++20" -# endif -# if __cpp_lib_bitops != 201907L -# error "__cpp_lib_bitops should have the value 201907L in c++20" -# endif - -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif - -# ifndef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should be defined in c++20" -# endif -# if __cpp_lib_bool_constant != 201505L -# error "__cpp_lib_bool_constant should have the value 201505L in c++20" -# endif - -# ifndef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should be defined in c++20" -# endif -# if __cpp_lib_bounded_array_traits != 201902L -# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20" -# endif - -# ifndef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should be defined in c++20" -# endif -# if __cpp_lib_boyer_moore_searcher != 201603L -# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_byte -# error "__cpp_lib_byte should be defined in c++20" -# endif -# if __cpp_lib_byte != 201603L -# error "__cpp_lib_byte should have the value 201603L in c++20" -# endif - -# ifdef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should not be defined before c++23" -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++20" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_chrono -# error "__cpp_lib_chrono should be defined in c++20" -# endif -# if __cpp_lib_chrono != 201611L -# error "__cpp_lib_chrono should have the value 201611L in c++20" -# endif - -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++20" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_clamp -# error "__cpp_lib_clamp should be defined in c++20" -# endif -# if __cpp_lib_clamp != 201603L -# error "__cpp_lib_clamp should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++20" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++20" -# endif - -# ifndef __cpp_lib_concepts -# error "__cpp_lib_concepts should be defined in c++20" -# endif -# if __cpp_lib_concepts != 202002L -# error "__cpp_lib_concepts should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++20" -# endif -# if __cpp_lib_constexpr_algorithms != 201806L -# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20" -# endif - -# ifdef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should not be defined before c++23" -# endif - -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined before c++23" -# endif - -# ifndef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should be defined in c++20" -# endif -# if __cpp_lib_constexpr_complex != 201711L -# error "__cpp_lib_constexpr_complex should have the value 201711L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20" -# endif -# if __cpp_lib_constexpr_dynamic_alloc != 201907L -# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should be defined in c++20" -# endif -# if __cpp_lib_constexpr_functional != 201907L -# error "__cpp_lib_constexpr_functional should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should be defined in c++20" -# endif -# if __cpp_lib_constexpr_iterator != 201811L -# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should be defined in c++20" -# endif -# if __cpp_lib_constexpr_memory != 201811L -# error "__cpp_lib_constexpr_memory should have the value 201811L in c++20" -# endif - -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif - -# ifndef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should be defined in c++20" -# endif -# if __cpp_lib_constexpr_numeric != 201911L -# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should be defined in c++20" -# endif -# if __cpp_lib_constexpr_string != 201907L -# error "__cpp_lib_constexpr_string should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should be defined in c++20" -# endif -# if __cpp_lib_constexpr_string_view != 201811L -# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should be defined in c++20" -# endif -# if __cpp_lib_constexpr_tuple != 201811L -# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20" -# endif - -# ifdef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" -# endif - -# ifndef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should be defined in c++20" -# endif -# if __cpp_lib_constexpr_utility != 201811L -# error "__cpp_lib_constexpr_utility should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++20" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifdef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should not be defined before c++23" -# endif - -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif - -# ifndef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should be defined in c++20" -# endif -# if __cpp_lib_coroutine != 201902L -# error "__cpp_lib_coroutine should have the value 201902L in c++20" -# endif - -# ifdef __cpp_lib_debugging -# error "__cpp_lib_debugging should not be defined before c++26" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L -# ifndef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should be defined in c++20" -# endif -# if __cpp_lib_destroying_delete != 201806L -# error "__cpp_lib_destroying_delete should have the value 201806L in c++20" -# endif -# else -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" -# endif -# endif - -# ifndef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should be defined in c++20" -# endif -# if __cpp_lib_enable_shared_from_this != 201603L -# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_endian -# error "__cpp_lib_endian should be defined in c++20" -# endif -# if __cpp_lib_endian != 201907L -# error "__cpp_lib_endian should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++20" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++20" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_execution -# error "__cpp_lib_execution should be defined in c++20" -# endif -# if __cpp_lib_execution != 201902L -# error "__cpp_lib_execution should have the value 201902L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_expected -# error "__cpp_lib_expected should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) -# ifndef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should be defined in c++20" -# endif -# if __cpp_lib_filesystem != 201703L -# error "__cpp_lib_filesystem should have the value 201703L in c++20" -# endif -# else -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should not be defined before c++23" -# endif - -# ifdef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_format -# error "__cpp_lib_format should be defined in c++20" -# endif -# if __cpp_lib_format != 202110L -# error "__cpp_lib_format should have the value 202110L in c++20" -# endif -# else -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif - -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif - -# ifdef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should not be defined before c++23" -# endif - -# ifndef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should be defined in c++20" -# endif -# if __cpp_lib_format_uchar != 202311L -# error "__cpp_lib_format_uchar should have the value 202311L in c++20" -# endif - -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined before c++23" -# endif - -# ifdef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should not be defined before c++23" -# endif - -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif - -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif - -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif - -# ifndef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should be defined in c++20" -# endif -# if __cpp_lib_gcd_lcm != 201606L -# error "__cpp_lib_gcd_lcm should have the value 201606L in c++20" -# endif - -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++20" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++20" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) -# ifndef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should be defined in c++20" -# endif -# if __cpp_lib_hardware_interference_size != 201703L -# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20" -# endif -# else -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" -# endif -# endif - -# ifndef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should be defined in c++20" -# endif -# if __cpp_lib_has_unique_object_representations != 201606L -# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20" -# endif - -# ifdef __cpp_lib_hazard_pointer -# error "__cpp_lib_hazard_pointer should not be defined before c++26" -# endif - -# ifndef __cpp_lib_hypot -# error "__cpp_lib_hypot should be defined in c++20" -# endif -# if __cpp_lib_hypot != 201603L -# error "__cpp_lib_hypot should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++20" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20" -# endif - -# ifdef __cpp_lib_inplace_vector -# error "__cpp_lib_inplace_vector should not be defined before c++26" -# endif - -# ifndef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should be defined in c++20" -# endif -# if __cpp_lib_int_pow2 != 202002L -# error "__cpp_lib_int_pow2 should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should be defined in c++20" -# endif -# if __cpp_lib_integer_comparison_functions != 202002L -# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++20" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++20" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++20" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++20" -# endif - -# ifndef __cpp_lib_invoke -# error "__cpp_lib_invoke should be defined in c++20" -# endif -# if __cpp_lib_invoke != 201411L -# error "__cpp_lib_invoke should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should be defined in c++20" -# endif -# if __cpp_lib_is_aggregate != 201703L -# error "__cpp_lib_is_aggregate should have the value 201703L in c++20" -# endif - -# ifndef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should be defined in c++20" -# endif -# if __cpp_lib_is_constant_evaluated != 201811L -# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++20" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++20" -# endif - -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should be defined in c++20" -# endif -# if __cpp_lib_is_invocable != 201703L -# error "__cpp_lib_is_invocable should have the value 201703L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should be defined in c++20" -# endif -# if __cpp_lib_is_layout_compatible != 201907L -# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should be defined in c++20" -# endif -# if __cpp_lib_is_nothrow_convertible != 201806L -# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++20" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should be defined in c++20" -# endif -# if __cpp_lib_is_pointer_interconvertible != 201907L -# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should not be defined before c++23" -# endif - -# ifndef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should be defined in c++20" -# endif -# if __cpp_lib_is_swappable != 201603L -# error "__cpp_lib_is_swappable should have the value 201603L in c++20" -# endif - -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif - -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++20" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++20" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_latch -# error "__cpp_lib_latch should be defined in c++20" -# endif -# if __cpp_lib_latch != 201907L -# error "__cpp_lib_latch should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_launder -# error "__cpp_lib_launder should be defined in c++20" -# endif -# if __cpp_lib_launder != 201606L -# error "__cpp_lib_launder should have the value 201606L in c++20" -# endif - -# ifdef __cpp_lib_linalg -# error "__cpp_lib_linalg should not be defined before c++26" -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++20" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should be defined in c++20" -# endif -# if __cpp_lib_logical_traits != 201510L -# error "__cpp_lib_logical_traits should have the value 201510L in c++20" -# endif - -# ifndef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should be defined in c++20" -# endif -# if __cpp_lib_make_from_tuple != 201606L -# error "__cpp_lib_make_from_tuple should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++20" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++20" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should be defined in c++20" -# endif -# if __cpp_lib_map_try_emplace != 201411L -# error "__cpp_lib_map_try_emplace should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should be defined in c++20" -# endif -# if __cpp_lib_math_constants != 201907L -# error "__cpp_lib_math_constants should have the value 201907L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should be defined in c++20" -# endif -# if __cpp_lib_math_special_functions != 201603L -# error "__cpp_lib_math_special_functions should have the value 201603L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should be defined in c++20" -# endif -# if __cpp_lib_memory_resource != 201603L -# error "__cpp_lib_memory_resource should have the value 201603L in c++20" -# endif -# else -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# ifdef __cpp_lib_modules -# error "__cpp_lib_modules should not be defined before c++23" -# endif - -# ifndef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should be defined in c++20" -# endif -# if __cpp_lib_move_iterator_concept != 202207L -# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++20" -# endif - -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined before c++23" -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++20" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++20" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++20" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should be defined in c++20" -# endif -# if __cpp_lib_not_fn != 201603L -# error "__cpp_lib_not_fn should have the value 201603L in c++20" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++20" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_optional -# error "__cpp_lib_optional should be defined in c++20" -# endif -# if __cpp_lib_optional != 202106L -# error "__cpp_lib_optional should have the value 202106L in c++20" -# endif - -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif - -# ifdef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++20" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should be defined in c++20" -# endif -# if __cpp_lib_polymorphic_allocator != 201902L -# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20" -# endif -# else -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined before c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++20" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++20" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++20" -# endif -# if __cpp_lib_ranges != 202110L -# error "__cpp_lib_ranges should have the value 202110L in c++20" -# endif - -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif - -# ifdef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined before c++23" -# endif - -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif - -# ifndef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should be defined in c++20" -# endif -# if __cpp_lib_raw_memory_algorithms != 201606L -# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20" -# endif - -# ifdef __cpp_lib_rcu -# error "__cpp_lib_rcu should not be defined before c++26" -# endif - -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined before c++23" -# endif - -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif - -# ifndef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should be defined in c++20" -# endif -# if __cpp_lib_remove_cvref != 201711L -# error "__cpp_lib_remove_cvref should have the value 201711L in c++20" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++20" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_sample -# error "__cpp_lib_sample should be defined in c++20" -# endif -# if __cpp_lib_sample != 201603L -# error "__cpp_lib_sample should have the value 201603L in c++20" -# endif - -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should be defined in c++20" -# endif -# if __cpp_lib_scoped_lock != 201703L -# error "__cpp_lib_scoped_lock should have the value 201703L in c++20" -# endif -# else -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should be defined in c++20" -# endif -# if __cpp_lib_semaphore != 201907L -# error "__cpp_lib_semaphore should have the value 201907L in c++20" -# endif -# else -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should be defined in c++20" -# endif -# if __cpp_lib_shared_mutex != 201505L -# error "__cpp_lib_shared_mutex should have the value 201505L in c++20" -# endif -# else -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifndef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should be defined in c++20" -# endif -# if __cpp_lib_shared_ptr_arrays != 201707L -# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++20" -# endif - -# ifndef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should be defined in c++20" -# endif -# if __cpp_lib_shared_ptr_weak_type != 201606L -# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++20" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifndef __cpp_lib_shift -# error "__cpp_lib_shift should be defined in c++20" -# endif -# if __cpp_lib_shift != 201806L -# error "__cpp_lib_shift should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20" -# endif -# if __cpp_lib_smart_ptr_for_overwrite != 202002L -# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20" -# endif - -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_source_location -# error "__cpp_lib_source_location should be defined in c++20" -# endif -# if __cpp_lib_source_location != 201907L -# error "__cpp_lib_source_location should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_span -# error "__cpp_lib_span should be defined in c++20" -# endif -# if __cpp_lib_span != 202002L -# error "__cpp_lib_span should have the value 202002L in c++20" -# endif - -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif - -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif - -# ifdef __cpp_lib_spanstream -# error "__cpp_lib_spanstream should not be defined before c++23" -# endif - -# ifndef __cpp_lib_ssize -# error "__cpp_lib_ssize should be defined in c++20" -# endif -# if __cpp_lib_ssize != 201902L -# error "__cpp_lib_ssize should have the value 201902L in c++20" -# endif - -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif - -# ifdef __cpp_lib_stacktrace -# error "__cpp_lib_stacktrace should not be defined before c++23" -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++20" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++20" -# endif - -# ifdef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should not be defined before c++23" -# endif - -# ifdef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should not be defined before c++23" -# endif - -# ifdef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++20" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++20" -# endif -# if __cpp_lib_string_view != 201803L -# error "__cpp_lib_string_view should have the value 201803L in c++20" -# endif - -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM -# ifndef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should be defined in c++20" -# endif -# if __cpp_lib_syncbuf != 201803L -# error "__cpp_lib_syncbuf should have the value 201803L in c++20" -# endif -# else -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" -# endif -# endif - -# ifdef __cpp_lib_text_encoding -# error "__cpp_lib_text_encoding should not be defined before c++26" -# endif - -# ifndef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should be defined in c++20" -# endif -# if __cpp_lib_three_way_comparison != 201907L -# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20" -# endif - -# ifndef __cpp_lib_to_address -# error "__cpp_lib_to_address should be defined in c++20" -# endif -# if __cpp_lib_to_address != 201711L -# error "__cpp_lib_to_address should have the value 201711L in c++20" -# endif - -# ifndef __cpp_lib_to_array -# error "__cpp_lib_to_array should be defined in c++20" -# endif -# if __cpp_lib_to_array != 201907L -# error "__cpp_lib_to_array should have the value 201907L in c++20" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should be defined in c++20" -# endif -# if __cpp_lib_to_chars != 201611L -# error "__cpp_lib_to_chars should have the value 201611L in c++20" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif - -# ifdef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should not be defined before c++23" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++20" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++20" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++20" -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++20" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++20" -# endif - -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined before c++23" -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++20" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++20" -# endif - -# ifndef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should be defined in c++20" -# endif -# if __cpp_lib_type_identity != 201806L -# error "__cpp_lib_type_identity should have the value 201806L in c++20" -# endif - -# ifndef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should be defined in c++20" -# endif -# if __cpp_lib_type_trait_variable_templates != 201510L -# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20" -# endif - -# ifndef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should be defined in c++20" -# endif -# if __cpp_lib_uncaught_exceptions != 201411L -# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20" -# endif - -# ifndef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should be defined in c++20" -# endif -# if __cpp_lib_unordered_map_try_emplace != 201411L -# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20" -# endif - -# ifdef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should not be defined before c++23" -# endif - -# ifndef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should be defined in c++20" -# endif -# if __cpp_lib_unwrap_ref != 201811L -# error "__cpp_lib_unwrap_ref should have the value 201811L in c++20" -# endif - -# ifndef __cpp_lib_variant -# error "__cpp_lib_variant should be defined in c++20" -# endif -# if __cpp_lib_variant != 202106L -# error "__cpp_lib_variant should have the value 202106L in c++20" -# endif - -# ifndef __cpp_lib_void_t -# error "__cpp_lib_void_t should be defined in c++20" -# endif -# if __cpp_lib_void_t != 201411L -# error "__cpp_lib_void_t should have the value 201411L in c++20" -# endif +# ifdef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should not be defined before c++23" +# endif + +# ifndef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should be defined in c++20" +# endif +# if __cpp_lib_addressof_constexpr != 201603L +# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++20" +# endif + +# ifdef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should not be defined before c++23" +# endif + +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_any +# error "__cpp_lib_any should be defined in c++20" +# endif +# if __cpp_lib_any != 201606L +# error "__cpp_lib_any should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_apply +# error "__cpp_lib_apply should be defined in c++20" +# endif +# if __cpp_lib_apply != 201603L +# error "__cpp_lib_apply should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++20" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_as_const +# error "__cpp_lib_as_const should be defined in c++20" +# endif +# if __cpp_lib_as_const != 201510L +# error "__cpp_lib_as_const should have the value 201510L in c++20" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23" +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifndef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should be defined in c++20" +# endif +# if __cpp_lib_assume_aligned != 201811L +# error "__cpp_lib_assume_aligned should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should be defined in c++20" +# endif +# if __cpp_lib_atomic_flag_test != 201907L +# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should be defined in c++20" +# endif +# if __cpp_lib_atomic_float != 201711L +# error "__cpp_lib_atomic_float should have the value 201711L in c++20" +# endif + +# ifndef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++20" +# endif +# if __cpp_lib_atomic_is_always_lock_free != 201603L +# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++20" +# endif +# if __cpp_lib_atomic_lock_free_type_aliases != 201907L +# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++20" +# endif + +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif + +# ifndef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should be defined in c++20" +# endif +# if __cpp_lib_atomic_ref != 201806L +# error "__cpp_lib_atomic_ref should have the value 201806L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should be defined in c++20" +# endif +# if __cpp_lib_atomic_shared_ptr != 201711L +# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++20" +# endif +# else +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++20" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC +# ifndef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should be defined in c++20" +# endif +# if __cpp_lib_atomic_wait != 201907L +# error "__cpp_lib_atomic_wait should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_barrier +# error "__cpp_lib_barrier should be defined in c++20" +# endif +# if __cpp_lib_barrier != 201907L +# error "__cpp_lib_barrier should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should not be defined before c++23" +# endif + +# ifndef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should be defined in c++20" +# endif +# if __cpp_lib_bind_front != 201907L +# error "__cpp_lib_bind_front should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should be defined in c++20" +# endif +# if __cpp_lib_bit_cast != 201806L +# error "__cpp_lib_bit_cast should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_bitops +# error "__cpp_lib_bitops should be defined in c++20" +# endif +# if __cpp_lib_bitops != 201907L +# error "__cpp_lib_bitops should have the value 201907L in c++20" +# endif + +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif + +# ifndef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should be defined in c++20" +# endif +# if __cpp_lib_bool_constant != 201505L +# error "__cpp_lib_bool_constant should have the value 201505L in c++20" +# endif + +# ifndef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should be defined in c++20" +# endif +# if __cpp_lib_bounded_array_traits != 201902L +# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++20" +# endif + +# ifndef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should be defined in c++20" +# endif +# if __cpp_lib_boyer_moore_searcher != 201603L +# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_byte +# error "__cpp_lib_byte should be defined in c++20" +# endif +# if __cpp_lib_byte != 201603L +# error "__cpp_lib_byte should have the value 201603L in c++20" +# endif + +# ifdef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should not be defined before c++23" +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++20" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_chrono +# error "__cpp_lib_chrono should be defined in c++20" +# endif +# if __cpp_lib_chrono != 201611L +# error "__cpp_lib_chrono should have the value 201611L in c++20" +# endif + +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++20" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_clamp +# error "__cpp_lib_clamp should be defined in c++20" +# endif +# if __cpp_lib_clamp != 201603L +# error "__cpp_lib_clamp should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++20" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++20" +# endif + +# ifndef __cpp_lib_concepts +# error "__cpp_lib_concepts should be defined in c++20" +# endif +# if __cpp_lib_concepts != 202002L +# error "__cpp_lib_concepts should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++20" +# endif +# if __cpp_lib_constexpr_algorithms != 201806L +# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++20" +# endif + +# ifdef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should not be defined before c++23" +# endif + +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined before c++23" +# endif + +# ifndef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should be defined in c++20" +# endif +# if __cpp_lib_constexpr_complex != 201711L +# error "__cpp_lib_constexpr_complex should have the value 201711L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++20" +# endif +# if __cpp_lib_constexpr_dynamic_alloc != 201907L +# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should be defined in c++20" +# endif +# if __cpp_lib_constexpr_functional != 201907L +# error "__cpp_lib_constexpr_functional should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should be defined in c++20" +# endif +# if __cpp_lib_constexpr_iterator != 201811L +# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should be defined in c++20" +# endif +# if __cpp_lib_constexpr_memory != 201811L +# error "__cpp_lib_constexpr_memory should have the value 201811L in c++20" +# endif + +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif + +# ifndef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should be defined in c++20" +# endif +# if __cpp_lib_constexpr_numeric != 201911L +# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should be defined in c++20" +# endif +# if __cpp_lib_constexpr_string != 201907L +# error "__cpp_lib_constexpr_string should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should be defined in c++20" +# endif +# if __cpp_lib_constexpr_string_view != 201811L +# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should be defined in c++20" +# endif +# if __cpp_lib_constexpr_tuple != 201811L +# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++20" +# endif + +# ifdef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should not be defined before c++23" +# endif + +# ifndef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should be defined in c++20" +# endif +# if __cpp_lib_constexpr_utility != 201811L +# error "__cpp_lib_constexpr_utility should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++20" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++20" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifdef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should not be defined before c++23" +# endif + +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif + +# ifndef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should be defined in c++20" +# endif +# if __cpp_lib_coroutine != 201902L +# error "__cpp_lib_coroutine should have the value 201902L in c++20" +# endif + +# ifdef __cpp_lib_debugging +# error "__cpp_lib_debugging should not be defined before c++26" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L +# ifndef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should be defined in c++20" +# endif +# if __cpp_lib_destroying_delete != 201806L +# error "__cpp_lib_destroying_delete should have the value 201806L in c++20" +# endif +# else +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" +# endif +# endif + +# ifndef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should be defined in c++20" +# endif +# if __cpp_lib_enable_shared_from_this != 201603L +# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_endian +# error "__cpp_lib_endian should be defined in c++20" +# endif +# if __cpp_lib_endian != 201907L +# error "__cpp_lib_endian should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++20" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++20" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_execution +# error "__cpp_lib_execution should be defined in c++20" +# endif +# if __cpp_lib_execution != 201902L +# error "__cpp_lib_execution should have the value 201902L in c++20" +# endif +# else +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_expected +# error "__cpp_lib_expected should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) +# ifndef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should be defined in c++20" +# endif +# if __cpp_lib_filesystem != 201703L +# error "__cpp_lib_filesystem should have the value 201703L in c++20" +# endif +# else +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should not be defined before c++23" +# endif + +# ifdef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_format +# error "__cpp_lib_format should be defined in c++20" +# endif +# if __cpp_lib_format != 202110L +# error "__cpp_lib_format should have the value 202110L in c++20" +# endif +# else +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif + +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif + +# ifdef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should not be defined before c++23" +# endif + +# ifndef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should be defined in c++20" +# endif +# if __cpp_lib_format_uchar != 202311L +# error "__cpp_lib_format_uchar should have the value 202311L in c++20" +# endif + +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined before c++23" +# endif + +# ifdef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should not be defined before c++23" +# endif + +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif + +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif + +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif + +# ifndef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should be defined in c++20" +# endif +# if __cpp_lib_gcd_lcm != 201606L +# error "__cpp_lib_gcd_lcm should have the value 201606L in c++20" +# endif + +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++20" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++20" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) +# ifndef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should be defined in c++20" +# endif +# if __cpp_lib_hardware_interference_size != 201703L +# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++20" +# endif +# else +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" +# endif +# endif + +# ifndef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should be defined in c++20" +# endif +# if __cpp_lib_has_unique_object_representations != 201606L +# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++20" +# endif + +# ifdef __cpp_lib_hazard_pointer +# error "__cpp_lib_hazard_pointer should not be defined before c++26" +# endif + +# ifndef __cpp_lib_hypot +# error "__cpp_lib_hypot should be defined in c++20" +# endif +# if __cpp_lib_hypot != 201603L +# error "__cpp_lib_hypot should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++20" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++20" +# endif + +# ifdef __cpp_lib_inplace_vector +# error "__cpp_lib_inplace_vector should not be defined before c++26" +# endif + +# ifndef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should be defined in c++20" +# endif +# if __cpp_lib_int_pow2 != 202002L +# error "__cpp_lib_int_pow2 should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should be defined in c++20" +# endif +# if __cpp_lib_integer_comparison_functions != 202002L +# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++20" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++20" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++20" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++20" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++20" +# endif + +# ifndef __cpp_lib_invoke +# error "__cpp_lib_invoke should be defined in c++20" +# endif +# if __cpp_lib_invoke != 201411L +# error "__cpp_lib_invoke should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should be defined in c++20" +# endif +# if __cpp_lib_is_aggregate != 201703L +# error "__cpp_lib_is_aggregate should have the value 201703L in c++20" +# endif + +# ifndef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should be defined in c++20" +# endif +# if __cpp_lib_is_constant_evaluated != 201811L +# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++20" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++20" +# endif + +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should be defined in c++20" +# endif +# if __cpp_lib_is_invocable != 201703L +# error "__cpp_lib_is_invocable should have the value 201703L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should be defined in c++20" +# endif +# if __cpp_lib_is_layout_compatible != 201907L +# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should be defined in c++20" +# endif +# if __cpp_lib_is_nothrow_convertible != 201806L +# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++20" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should be defined in c++20" +# endif +# if __cpp_lib_is_pointer_interconvertible != 201907L +# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should not be defined before c++23" +# endif + +# ifndef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should be defined in c++20" +# endif +# if __cpp_lib_is_swappable != 201603L +# error "__cpp_lib_is_swappable should have the value 201603L in c++20" +# endif + +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif + +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++20" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++20" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_latch +# error "__cpp_lib_latch should be defined in c++20" +# endif +# if __cpp_lib_latch != 201907L +# error "__cpp_lib_latch should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_launder +# error "__cpp_lib_launder should be defined in c++20" +# endif +# if __cpp_lib_launder != 201606L +# error "__cpp_lib_launder should have the value 201606L in c++20" +# endif + +# ifdef __cpp_lib_linalg +# error "__cpp_lib_linalg should not be defined before c++26" +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++20" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should be defined in c++20" +# endif +# if __cpp_lib_logical_traits != 201510L +# error "__cpp_lib_logical_traits should have the value 201510L in c++20" +# endif + +# ifndef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should be defined in c++20" +# endif +# if __cpp_lib_make_from_tuple != 201606L +# error "__cpp_lib_make_from_tuple should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++20" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++20" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should be defined in c++20" +# endif +# if __cpp_lib_map_try_emplace != 201411L +# error "__cpp_lib_map_try_emplace should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should be defined in c++20" +# endif +# if __cpp_lib_math_constants != 201907L +# error "__cpp_lib_math_constants should have the value 201907L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should be defined in c++20" +# endif +# if __cpp_lib_math_special_functions != 201603L +# error "__cpp_lib_math_special_functions should have the value 201603L in c++20" +# endif +# else +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should be defined in c++20" +# endif +# if __cpp_lib_memory_resource != 201603L +# error "__cpp_lib_memory_resource should have the value 201603L in c++20" +# endif +# else +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# ifdef __cpp_lib_modules +# error "__cpp_lib_modules should not be defined before c++23" +# endif + +# ifndef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should be defined in c++20" +# endif +# if __cpp_lib_move_iterator_concept != 202207L +# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++20" +# endif + +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined before c++23" +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++20" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++20" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++20" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should be defined in c++20" +# endif +# if __cpp_lib_not_fn != 201603L +# error "__cpp_lib_not_fn should have the value 201603L in c++20" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++20" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_optional +# error "__cpp_lib_optional should be defined in c++20" +# endif +# if __cpp_lib_optional != 202106L +# error "__cpp_lib_optional should have the value 202106L in c++20" +# endif + +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif + +# ifdef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++20" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++20" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should be defined in c++20" +# endif +# if __cpp_lib_polymorphic_allocator != 201902L +# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++20" +# endif +# else +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined before c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++20" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++20" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++20" +# endif +# if __cpp_lib_ranges != 202110L +# error "__cpp_lib_ranges should have the value 202110L in c++20" +# endif + +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif + +# ifdef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined before c++23" +# endif + +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif + +# ifndef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should be defined in c++20" +# endif +# if __cpp_lib_raw_memory_algorithms != 201606L +# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++20" +# endif + +# ifdef __cpp_lib_rcu +# error "__cpp_lib_rcu should not be defined before c++26" +# endif + +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined before c++23" +# endif + +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif + +# ifndef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should be defined in c++20" +# endif +# if __cpp_lib_remove_cvref != 201711L +# error "__cpp_lib_remove_cvref should have the value 201711L in c++20" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++20" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++20" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++20" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_sample +# error "__cpp_lib_sample should be defined in c++20" +# endif +# if __cpp_lib_sample != 201603L +# error "__cpp_lib_sample should have the value 201603L in c++20" +# endif + +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should be defined in c++20" +# endif +# if __cpp_lib_scoped_lock != 201703L +# error "__cpp_lib_scoped_lock should have the value 201703L in c++20" +# endif +# else +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should be defined in c++20" +# endif +# if __cpp_lib_semaphore != 201907L +# error "__cpp_lib_semaphore should have the value 201907L in c++20" +# endif +# else +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should be defined in c++20" +# endif +# if __cpp_lib_shared_mutex != 201505L +# error "__cpp_lib_shared_mutex should have the value 201505L in c++20" +# endif +# else +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifndef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should be defined in c++20" +# endif +# if __cpp_lib_shared_ptr_arrays != 201707L +# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++20" +# endif + +# ifndef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should be defined in c++20" +# endif +# if __cpp_lib_shared_ptr_weak_type != 201606L +# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++20" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++20" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifndef __cpp_lib_shift +# error "__cpp_lib_shift should be defined in c++20" +# endif +# if __cpp_lib_shift != 201806L +# error "__cpp_lib_shift should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++20" +# endif +# if __cpp_lib_smart_ptr_for_overwrite != 202002L +# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++20" +# endif + +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_source_location +# error "__cpp_lib_source_location should be defined in c++20" +# endif +# if __cpp_lib_source_location != 201907L +# error "__cpp_lib_source_location should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_span +# error "__cpp_lib_span should be defined in c++20" +# endif +# if __cpp_lib_span != 202002L +# error "__cpp_lib_span should have the value 202002L in c++20" +# endif + +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif + +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif + +# ifdef __cpp_lib_spanstream +# error "__cpp_lib_spanstream should not be defined before c++23" +# endif + +# ifndef __cpp_lib_ssize +# error "__cpp_lib_ssize should be defined in c++20" +# endif +# if __cpp_lib_ssize != 201902L +# error "__cpp_lib_ssize should have the value 201902L in c++20" +# endif + +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif + +# ifdef __cpp_lib_stacktrace +# error "__cpp_lib_stacktrace should not be defined before c++23" +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++20" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++20" +# endif + +# ifdef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should not be defined before c++23" +# endif + +# ifdef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should not be defined before c++23" +# endif + +# ifdef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should not be defined before c++23" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++20" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++20" +# endif +# if __cpp_lib_string_view != 201803L +# error "__cpp_lib_string_view should have the value 201803L in c++20" +# endif + +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM +# ifndef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should be defined in c++20" +# endif +# if __cpp_lib_syncbuf != 201803L +# error "__cpp_lib_syncbuf should have the value 201803L in c++20" +# endif +# else +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" +# endif +# endif + +# ifdef __cpp_lib_text_encoding +# error "__cpp_lib_text_encoding should not be defined before c++26" +# endif + +# ifndef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should be defined in c++20" +# endif +# if __cpp_lib_three_way_comparison != 201907L +# error "__cpp_lib_three_way_comparison should have the value 201907L in c++20" +# endif + +# ifndef __cpp_lib_to_address +# error "__cpp_lib_to_address should be defined in c++20" +# endif +# if __cpp_lib_to_address != 201711L +# error "__cpp_lib_to_address should have the value 201711L in c++20" +# endif + +# ifndef __cpp_lib_to_array +# error "__cpp_lib_to_array should be defined in c++20" +# endif +# if __cpp_lib_to_array != 201907L +# error "__cpp_lib_to_array should have the value 201907L in c++20" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should be defined in c++20" +# endif +# if __cpp_lib_to_chars != 201611L +# error "__cpp_lib_to_chars should have the value 201611L in c++20" +# endif +# else +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif + +# ifdef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should not be defined before c++23" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++20" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++20" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++20" +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++20" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++20" +# endif + +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined before c++23" +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++20" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++20" +# endif + +# ifndef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should be defined in c++20" +# endif +# if __cpp_lib_type_identity != 201806L +# error "__cpp_lib_type_identity should have the value 201806L in c++20" +# endif + +# ifndef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should be defined in c++20" +# endif +# if __cpp_lib_type_trait_variable_templates != 201510L +# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++20" +# endif + +# ifndef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should be defined in c++20" +# endif +# if __cpp_lib_uncaught_exceptions != 201411L +# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++20" +# endif + +# ifndef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should be defined in c++20" +# endif +# if __cpp_lib_unordered_map_try_emplace != 201411L +# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++20" +# endif + +# ifdef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should not be defined before c++23" +# endif + +# ifndef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should be defined in c++20" +# endif +# if __cpp_lib_unwrap_ref != 201811L +# error "__cpp_lib_unwrap_ref should have the value 201811L in c++20" +# endif + +# ifndef __cpp_lib_variant +# error "__cpp_lib_variant should be defined in c++20" +# endif +# if __cpp_lib_variant != 202106L +# error "__cpp_lib_variant should have the value 202106L in c++20" +# endif + +# ifndef __cpp_lib_void_t +# error "__cpp_lib_void_t should be defined in c++20" +# endif +# if __cpp_lib_void_t != 201411L +# error "__cpp_lib_void_t should have the value 201411L in c++20" +# endif #elif TEST_STD_VER == 23 -# ifndef __cpp_lib_adaptor_iterator_pair_constructor -# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23" -# endif -# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L -# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23" -# endif - -# ifndef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should be defined in c++23" -# endif -# if __cpp_lib_addressof_constexpr != 201603L -# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should be defined in c++23" -# endif -# if __cpp_lib_allocate_at_least != 202302L -# error "__cpp_lib_allocate_at_least should have the value 202302L in c++23" -# endif - -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_any -# error "__cpp_lib_any should be defined in c++23" -# endif -# if __cpp_lib_any != 201606L -# error "__cpp_lib_any should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_apply -# error "__cpp_lib_apply should be defined in c++23" -# endif -# if __cpp_lib_apply != 201603L -# error "__cpp_lib_apply should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++23" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_as_const -# error "__cpp_lib_as_const should be defined in c++23" -# endif -# if __cpp_lib_as_const != 201510L -# error "__cpp_lib_as_const should have the value 201510L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" -# endif - -# ifndef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should be defined in c++23" -# endif -# if __cpp_lib_assume_aligned != 201811L -# error "__cpp_lib_assume_aligned should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should be defined in c++23" -# endif -# if __cpp_lib_atomic_flag_test != 201907L -# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should be defined in c++23" -# endif -# if __cpp_lib_atomic_float != 201711L -# error "__cpp_lib_atomic_float should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++23" -# endif -# if __cpp_lib_atomic_is_always_lock_free != 201603L -# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++23" -# endif -# if __cpp_lib_atomic_lock_free_type_aliases != 201907L -# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23" -# endif - -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined before c++26" -# endif - -# ifndef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should be defined in c++23" -# endif -# if __cpp_lib_atomic_ref != 201806L -# error "__cpp_lib_atomic_ref should have the value 201806L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should be defined in c++23" -# endif -# if __cpp_lib_atomic_shared_ptr != 201711L -# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++23" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC -# ifndef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should be defined in c++23" -# endif -# if __cpp_lib_atomic_wait != 201907L -# error "__cpp_lib_atomic_wait should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_barrier -# error "__cpp_lib_barrier should be defined in c++23" -# endif -# if __cpp_lib_barrier != 201907L -# error "__cpp_lib_barrier should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should be defined in c++23" -# endif -# if __cpp_lib_bind_back != 202202L -# error "__cpp_lib_bind_back should have the value 202202L in c++23" -# endif - -# ifndef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should be defined in c++23" -# endif -# if __cpp_lib_bind_front != 201907L -# error "__cpp_lib_bind_front should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should be defined in c++23" -# endif -# if __cpp_lib_bit_cast != 201806L -# error "__cpp_lib_bit_cast should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_bitops -# error "__cpp_lib_bitops should be defined in c++23" -# endif -# if __cpp_lib_bitops != 201907L -# error "__cpp_lib_bitops should have the value 201907L in c++23" -# endif - -# ifdef __cpp_lib_bitset -# error "__cpp_lib_bitset should not be defined before c++26" -# endif - -# ifndef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should be defined in c++23" -# endif -# if __cpp_lib_bool_constant != 201505L -# error "__cpp_lib_bool_constant should have the value 201505L in c++23" -# endif - -# ifndef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should be defined in c++23" -# endif -# if __cpp_lib_bounded_array_traits != 201902L -# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++23" -# endif - -# ifndef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should be defined in c++23" -# endif -# if __cpp_lib_boyer_moore_searcher != 201603L -# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_byte -# error "__cpp_lib_byte should be defined in c++23" -# endif -# if __cpp_lib_byte != 201603L -# error "__cpp_lib_byte should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should be defined in c++23" -# endif -# if __cpp_lib_byteswap != 202110L -# error "__cpp_lib_byteswap should have the value 202110L in c++23" -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++23" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_chrono -# error "__cpp_lib_chrono should be defined in c++23" -# endif -# if __cpp_lib_chrono != 201611L -# error "__cpp_lib_chrono should have the value 201611L in c++23" -# endif - -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++23" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_clamp -# error "__cpp_lib_clamp should be defined in c++23" -# endif -# if __cpp_lib_clamp != 201603L -# error "__cpp_lib_clamp should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++23" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++23" -# endif - -# ifndef __cpp_lib_concepts -# error "__cpp_lib_concepts should be defined in c++23" -# endif -# if __cpp_lib_concepts != 202002L -# error "__cpp_lib_concepts should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++23" -# endif -# if __cpp_lib_constexpr_algorithms != 201806L -# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should be defined in c++23" -# endif -# if __cpp_lib_constexpr_bitset != 202207L -# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should be defined in c++23" -# endif -# if __cpp_lib_constexpr_charconv != 202207L -# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should be defined in c++23" -# endif -# if __cpp_lib_constexpr_cmath != 202202L -# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should be defined in c++23" -# endif -# if __cpp_lib_constexpr_complex != 201711L -# error "__cpp_lib_constexpr_complex should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++23" -# endif -# if __cpp_lib_constexpr_dynamic_alloc != 201907L -# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should be defined in c++23" -# endif -# if __cpp_lib_constexpr_functional != 201907L -# error "__cpp_lib_constexpr_functional should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should be defined in c++23" -# endif -# if __cpp_lib_constexpr_iterator != 201811L -# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should be defined in c++23" -# endif -# if __cpp_lib_constexpr_memory != 202202L -# error "__cpp_lib_constexpr_memory should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined before c++26" -# endif - -# ifndef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should be defined in c++23" -# endif -# if __cpp_lib_constexpr_numeric != 201911L -# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should be defined in c++23" -# endif -# if __cpp_lib_constexpr_string != 201907L -# error "__cpp_lib_constexpr_string should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should be defined in c++23" -# endif -# if __cpp_lib_constexpr_string_view != 201811L -# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should be defined in c++23" -# endif -# if __cpp_lib_constexpr_tuple != 201811L -# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should be defined in c++23" -# endif -# if __cpp_lib_constexpr_typeinfo != 202106L -# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should be defined in c++23" -# endif -# if __cpp_lib_constexpr_utility != 201811L -# error "__cpp_lib_constexpr_utility should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++23" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++23" -# endif - -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++23" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined before c++26" -# endif - -# ifndef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should be defined in c++23" -# endif -# if __cpp_lib_coroutine != 201902L -# error "__cpp_lib_coroutine should have the value 201902L in c++23" -# endif - -# ifdef __cpp_lib_debugging -# error "__cpp_lib_debugging should not be defined before c++26" -# endif - -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" -# endif - -# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L -# ifndef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should be defined in c++23" -# endif -# if __cpp_lib_destroying_delete != 201806L -# error "__cpp_lib_destroying_delete should have the value 201806L in c++23" -# endif -# else -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" -# endif -# endif - -# ifndef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should be defined in c++23" -# endif -# if __cpp_lib_enable_shared_from_this != 201603L -# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_endian -# error "__cpp_lib_endian should be defined in c++23" -# endif -# if __cpp_lib_endian != 201907L -# error "__cpp_lib_endian should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++23" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++23" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_execution -# error "__cpp_lib_execution should be defined in c++23" -# endif -# if __cpp_lib_execution != 201902L -# error "__cpp_lib_execution should have the value 201902L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_expected -# error "__cpp_lib_expected should be defined in c++23" -# endif -# if __cpp_lib_expected != 202211L -# error "__cpp_lib_expected should have the value 202211L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) -# ifndef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should be defined in c++23" -# endif -# if __cpp_lib_filesystem != 201703L -# error "__cpp_lib_filesystem should have the value 201703L in c++23" -# endif -# else -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should be defined in c++23" -# endif -# if __cpp_lib_flat_map != 202207L -# error "__cpp_lib_flat_map should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should be defined in c++23" -# endif -# if __cpp_lib_flat_set != 202207L -# error "__cpp_lib_flat_set should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_format -# error "__cpp_lib_format should be defined in c++23" -# endif -# if __cpp_lib_format != 202110L -# error "__cpp_lib_format should have the value 202110L in c++23" -# endif -# else -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif - -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined before c++26" -# endif - -# ifndef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should be defined in c++23" -# endif -# if __cpp_lib_format_ranges != 202207L -# error "__cpp_lib_format_ranges should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should be defined in c++23" -# endif -# if __cpp_lib_format_uchar != 202311L -# error "__cpp_lib_format_uchar should have the value 202311L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_formatters -# error "__cpp_lib_formatters should be defined in c++23" -# endif -# if __cpp_lib_formatters != 202302L -# error "__cpp_lib_formatters should have the value 202302L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should be defined in c++23" -# endif -# if __cpp_lib_forward_like != 202207L -# error "__cpp_lib_forward_like should have the value 202207L in c++23" -# endif - -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined before c++26" -# endif - -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined before c++26" -# endif - -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined before c++26" -# endif - -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined before c++26" -# endif - -# ifndef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should be defined in c++23" -# endif -# if __cpp_lib_gcd_lcm != 201606L -# error "__cpp_lib_gcd_lcm should have the value 201606L in c++23" -# endif - -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined before c++26" -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++23" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++23" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) -# ifndef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should be defined in c++23" -# endif -# if __cpp_lib_hardware_interference_size != 201703L -# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23" -# endif -# else -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" -# endif -# endif - -# ifndef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should be defined in c++23" -# endif -# if __cpp_lib_has_unique_object_representations != 201606L -# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23" -# endif - -# ifdef __cpp_lib_hazard_pointer -# error "__cpp_lib_hazard_pointer should not be defined before c++26" -# endif - -# ifndef __cpp_lib_hypot -# error "__cpp_lib_hypot should be defined in c++23" -# endif -# if __cpp_lib_hypot != 201603L -# error "__cpp_lib_hypot should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++23" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23" -# endif - -# ifdef __cpp_lib_inplace_vector -# error "__cpp_lib_inplace_vector should not be defined before c++26" -# endif - -# ifndef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should be defined in c++23" -# endif -# if __cpp_lib_int_pow2 != 202002L -# error "__cpp_lib_int_pow2 should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should be defined in c++23" -# endif -# if __cpp_lib_integer_comparison_functions != 202002L -# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++23" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++23" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++23" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++23" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++23" -# endif - -# ifndef __cpp_lib_invoke -# error "__cpp_lib_invoke should be defined in c++23" -# endif -# if __cpp_lib_invoke != 201411L -# error "__cpp_lib_invoke should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should be defined in c++23" -# endif -# if __cpp_lib_invoke_r != 202106L -# error "__cpp_lib_invoke_r should have the value 202106L in c++23" -# endif - -# ifndef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should be defined in c++23" -# endif -# if __cpp_lib_ios_noreplace != 202207L -# error "__cpp_lib_ios_noreplace should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should be defined in c++23" -# endif -# if __cpp_lib_is_aggregate != 201703L -# error "__cpp_lib_is_aggregate should have the value 201703L in c++23" -# endif - -# ifndef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should be defined in c++23" -# endif -# if __cpp_lib_is_constant_evaluated != 201811L -# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++23" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++23" -# endif - -# if __has_builtin(__builtin_is_implicit_lifetime) -# ifndef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should be defined in c++23" -# endif -# if __cpp_lib_is_implicit_lifetime != 202302L -# error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++23" -# endif -# else -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should be defined in c++23" -# endif -# if __cpp_lib_is_invocable != 201703L -# error "__cpp_lib_is_invocable should have the value 201703L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should be defined in c++23" -# endif -# if __cpp_lib_is_layout_compatible != 201907L -# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should be defined in c++23" -# endif -# if __cpp_lib_is_nothrow_convertible != 201806L -# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++23" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should be defined in c++23" -# endif -# if __cpp_lib_is_pointer_interconvertible != 201907L -# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should be defined in c++23" -# endif -# if __cpp_lib_is_scoped_enum != 202011L -# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++23" -# endif - -# ifndef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should be defined in c++23" -# endif -# if __cpp_lib_is_swappable != 201603L -# error "__cpp_lib_is_swappable should have the value 201603L in c++23" -# endif - -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" -# endif - -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++23" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++23" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_latch -# error "__cpp_lib_latch should be defined in c++23" -# endif -# if __cpp_lib_latch != 201907L -# error "__cpp_lib_latch should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_launder -# error "__cpp_lib_launder should be defined in c++23" -# endif -# if __cpp_lib_launder != 201606L -# error "__cpp_lib_launder should have the value 201606L in c++23" -# endif - -# ifdef __cpp_lib_linalg -# error "__cpp_lib_linalg should not be defined before c++26" -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++23" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should be defined in c++23" -# endif -# if __cpp_lib_logical_traits != 201510L -# error "__cpp_lib_logical_traits should have the value 201510L in c++23" -# endif - -# ifndef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should be defined in c++23" -# endif -# if __cpp_lib_make_from_tuple != 201606L -# error "__cpp_lib_make_from_tuple should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++23" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++23" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should be defined in c++23" -# endif -# if __cpp_lib_map_try_emplace != 201411L -# error "__cpp_lib_map_try_emplace should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should be defined in c++23" -# endif -# if __cpp_lib_math_constants != 201907L -# error "__cpp_lib_math_constants should have the value 201907L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should be defined in c++23" -# endif -# if __cpp_lib_math_special_functions != 201603L -# error "__cpp_lib_math_special_functions should have the value 201603L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should be defined in c++23" -# endif -# if __cpp_lib_mdspan != 202207L -# error "__cpp_lib_mdspan should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should be defined in c++23" -# endif -# if __cpp_lib_memory_resource != 201603L -# error "__cpp_lib_memory_resource should have the value 201603L in c++23" -# endif -# else -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# ifndef __cpp_lib_modules -# error "__cpp_lib_modules should be defined in c++23" -# endif -# if __cpp_lib_modules != 202207L -# error "__cpp_lib_modules should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should be defined in c++23" -# endif -# if __cpp_lib_move_iterator_concept != 202207L -# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should be defined in c++23" -# endif -# if __cpp_lib_move_only_function != 202110L -# error "__cpp_lib_move_only_function should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++23" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++23" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++23" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should be defined in c++23" -# endif -# if __cpp_lib_not_fn != 201603L -# error "__cpp_lib_not_fn should have the value 201603L in c++23" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++23" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_optional -# error "__cpp_lib_optional should be defined in c++23" -# endif -# if __cpp_lib_optional != 202110L -# error "__cpp_lib_optional should have the value 202110L in c++23" -# endif - -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined before c++26" -# endif - -# ifndef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should be defined in c++23" -# endif -# if __cpp_lib_out_ptr != 202106L -# error "__cpp_lib_out_ptr should have the value 202106L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++23" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should be defined in c++23" -# endif -# if __cpp_lib_polymorphic_allocator != 201902L -# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23" -# endif -# else -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_print -# error "__cpp_lib_print should be defined in c++23" -# endif -# if __cpp_lib_print != 202207L -# error "__cpp_lib_print should have the value 202207L in c++23" -# endif -# else -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++23" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++23" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++23" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should be defined in c++23" -# endif -# if __cpp_lib_ranges_as_const != 202207L -# error "__cpp_lib_ranges_as_const should have the value 202207L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should be defined in c++23" -# endif -# if __cpp_lib_ranges_as_rvalue != 202207L -# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should be defined in c++23" -# endif -# if __cpp_lib_ranges_chunk != 202202L -# error "__cpp_lib_ranges_chunk should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should be defined in c++23" -# endif -# if __cpp_lib_ranges_chunk_by != 202202L -# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23" -# endif - -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined before c++26" -# endif - -# ifndef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should be defined in c++23" -# endif -# if __cpp_lib_ranges_contains != 202207L -# error "__cpp_lib_ranges_contains should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should be defined in c++23" -# endif -# if __cpp_lib_ranges_find_last != 202207L -# error "__cpp_lib_ranges_find_last should have the value 202207L in c++23" -# endif - -# ifndef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should be defined in c++23" -# endif -# if __cpp_lib_ranges_iota != 202202L -# error "__cpp_lib_ranges_iota should have the value 202202L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should be defined in c++23" -# endif -# if __cpp_lib_ranges_join_with != 202202L -# error "__cpp_lib_ranges_join_with should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should be defined in c++23" -# endif -# if __cpp_lib_ranges_repeat != 202207L -# error "__cpp_lib_ranges_repeat should have the value 202207L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should be defined in c++23" -# endif -# if __cpp_lib_ranges_slide != 202202L -# error "__cpp_lib_ranges_slide should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should be defined in c++23" -# endif -# if __cpp_lib_ranges_starts_ends_with != 202106L -# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++23" -# endif - -# ifndef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should be defined in c++23" -# endif -# if __cpp_lib_ranges_to_container != 202202L -# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should be defined in c++23" -# endif -# if __cpp_lib_ranges_zip != 202110L -# error "__cpp_lib_ranges_zip should have the value 202110L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_ratio -# error "__cpp_lib_ratio should not be defined before c++26" -# endif - -# ifndef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should be defined in c++23" -# endif -# if __cpp_lib_raw_memory_algorithms != 201606L -# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23" -# endif - -# ifdef __cpp_lib_rcu -# error "__cpp_lib_rcu should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should be defined in c++23" -# endif -# if __cpp_lib_reference_from_temporary != 202202L -# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should not be defined before c++26" -# endif - -# ifndef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should be defined in c++23" -# endif -# if __cpp_lib_remove_cvref != 201711L -# error "__cpp_lib_remove_cvref should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++23" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++23" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_sample -# error "__cpp_lib_sample should be defined in c++23" -# endif -# if __cpp_lib_sample != 201603L -# error "__cpp_lib_sample should have the value 201603L in c++23" -# endif - -# ifdef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should be defined in c++23" -# endif -# if __cpp_lib_scoped_lock != 201703L -# error "__cpp_lib_scoped_lock should have the value 201703L in c++23" -# endif -# else -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should be defined in c++23" -# endif -# if __cpp_lib_semaphore != 201907L -# error "__cpp_lib_semaphore should have the value 201907L in c++23" -# endif -# else -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should be defined in c++23" -# endif -# if __cpp_lib_shared_mutex != 201505L -# error "__cpp_lib_shared_mutex should have the value 201505L in c++23" -# endif -# else -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifndef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should be defined in c++23" -# endif -# if __cpp_lib_shared_ptr_arrays != 201707L -# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++23" -# endif - -# ifndef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should be defined in c++23" -# endif -# if __cpp_lib_shared_ptr_weak_type != 201606L -# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++23" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifndef __cpp_lib_shift -# error "__cpp_lib_shift should be defined in c++23" -# endif -# if __cpp_lib_shift != 201806L -# error "__cpp_lib_shift should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++23" -# endif -# if __cpp_lib_smart_ptr_for_overwrite != 202002L -# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23" -# endif - -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" -# endif - -# ifndef __cpp_lib_source_location -# error "__cpp_lib_source_location should be defined in c++23" -# endif -# if __cpp_lib_source_location != 201907L -# error "__cpp_lib_source_location should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_span -# error "__cpp_lib_span should be defined in c++23" -# endif -# if __cpp_lib_span != 202002L -# error "__cpp_lib_span should have the value 202002L in c++23" -# endif - -# ifdef __cpp_lib_span_at -# error "__cpp_lib_span_at should not be defined before c++26" -# endif - -# ifdef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_spanstream -# error "__cpp_lib_spanstream should be defined in c++23" -# endif -# if __cpp_lib_spanstream != 202106L -# error "__cpp_lib_spanstream should have the value 202106L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_spanstream -# error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ssize -# error "__cpp_lib_ssize should be defined in c++23" -# endif -# if __cpp_lib_ssize != 201902L -# error "__cpp_lib_ssize should have the value 201902L in c++23" -# endif - -# ifdef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_stacktrace -# error "__cpp_lib_stacktrace should be defined in c++23" -# endif -# if __cpp_lib_stacktrace != 202011L -# error "__cpp_lib_stacktrace should have the value 202011L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_stacktrace -# error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++23" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should be defined in c++23" -# endif -# if __cpp_lib_stdatomic_h != 202011L -# error "__cpp_lib_stdatomic_h should have the value 202011L in c++23" -# endif - -# ifndef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should be defined in c++23" -# endif -# if __cpp_lib_string_contains != 202011L -# error "__cpp_lib_string_contains should have the value 202011L in c++23" -# endif - -# ifndef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should be defined in c++23" -# endif -# if __cpp_lib_string_resize_and_overwrite != 202110L -# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++23" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++23" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++23" -# endif -# if __cpp_lib_string_view != 201803L -# error "__cpp_lib_string_view should have the value 201803L in c++23" -# endif - -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined before c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM -# ifndef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should be defined in c++23" -# endif -# if __cpp_lib_syncbuf != 201803L -# error "__cpp_lib_syncbuf should have the value 201803L in c++23" -# endif -# else -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" -# endif -# endif - -# ifdef __cpp_lib_text_encoding -# error "__cpp_lib_text_encoding should not be defined before c++26" -# endif - -# ifndef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should be defined in c++23" -# endif -# if __cpp_lib_three_way_comparison != 201907L -# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23" -# endif - -# ifndef __cpp_lib_to_address -# error "__cpp_lib_to_address should be defined in c++23" -# endif -# if __cpp_lib_to_address != 201711L -# error "__cpp_lib_to_address should have the value 201711L in c++23" -# endif - -# ifndef __cpp_lib_to_array -# error "__cpp_lib_to_array should be defined in c++23" -# endif -# if __cpp_lib_to_array != 201907L -# error "__cpp_lib_to_array should have the value 201907L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should be defined in c++23" -# endif -# if __cpp_lib_to_chars != 201611L -# error "__cpp_lib_to_chars should have the value 201611L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined before c++26" -# endif - -# ifndef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should be defined in c++23" -# endif -# if __cpp_lib_to_underlying != 202102L -# error "__cpp_lib_to_underlying should have the value 202102L in c++23" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++23" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++23" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++23" -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++23" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++23" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++23" -# endif -# if __cpp_lib_tuple_like != 202207L -# error "__cpp_lib_tuple_like should have the value 202207L in c++23" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++23" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++23" -# endif - -# ifndef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should be defined in c++23" -# endif -# if __cpp_lib_type_identity != 201806L -# error "__cpp_lib_type_identity should have the value 201806L in c++23" -# endif - -# ifndef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should be defined in c++23" -# endif -# if __cpp_lib_type_trait_variable_templates != 201510L -# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++23" -# endif - -# ifndef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should be defined in c++23" -# endif -# if __cpp_lib_uncaught_exceptions != 201411L -# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should be defined in c++23" -# endif -# if __cpp_lib_unordered_map_try_emplace != 201411L -# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23" -# endif - -# ifndef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should be defined in c++23" -# endif -# if __cpp_lib_unreachable != 202202L -# error "__cpp_lib_unreachable should have the value 202202L in c++23" -# endif - -# ifndef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should be defined in c++23" -# endif -# if __cpp_lib_unwrap_ref != 201811L -# error "__cpp_lib_unwrap_ref should have the value 201811L in c++23" -# endif - -# ifndef __cpp_lib_variant -# error "__cpp_lib_variant should be defined in c++23" -# endif -# if __cpp_lib_variant != 202106L -# error "__cpp_lib_variant should have the value 202106L in c++23" -# endif - -# ifndef __cpp_lib_void_t -# error "__cpp_lib_void_t should be defined in c++23" -# endif -# if __cpp_lib_void_t != 201411L -# error "__cpp_lib_void_t should have the value 201411L in c++23" -# endif +# ifndef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++23" +# endif +# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L +# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++23" +# endif + +# ifndef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should be defined in c++23" +# endif +# if __cpp_lib_addressof_constexpr != 201603L +# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should be defined in c++23" +# endif +# if __cpp_lib_allocate_at_least != 202302L +# error "__cpp_lib_allocate_at_least should have the value 202302L in c++23" +# endif + +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_any +# error "__cpp_lib_any should be defined in c++23" +# endif +# if __cpp_lib_any != 201606L +# error "__cpp_lib_any should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_apply +# error "__cpp_lib_apply should be defined in c++23" +# endif +# if __cpp_lib_apply != 201603L +# error "__cpp_lib_apply should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++23" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_as_const +# error "__cpp_lib_as_const should be defined in c++23" +# endif +# if __cpp_lib_as_const != 201510L +# error "__cpp_lib_as_const should have the value 201510L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26" +# endif + +# ifndef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should be defined in c++23" +# endif +# if __cpp_lib_assume_aligned != 201811L +# error "__cpp_lib_assume_aligned should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should be defined in c++23" +# endif +# if __cpp_lib_atomic_flag_test != 201907L +# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should be defined in c++23" +# endif +# if __cpp_lib_atomic_float != 201711L +# error "__cpp_lib_atomic_float should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++23" +# endif +# if __cpp_lib_atomic_is_always_lock_free != 201603L +# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++23" +# endif +# if __cpp_lib_atomic_lock_free_type_aliases != 201907L +# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++23" +# endif + +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined before c++26" +# endif + +# ifndef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should be defined in c++23" +# endif +# if __cpp_lib_atomic_ref != 201806L +# error "__cpp_lib_atomic_ref should have the value 201806L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should be defined in c++23" +# endif +# if __cpp_lib_atomic_shared_ptr != 201711L +# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++23" +# endif +# else +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++23" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC +# ifndef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should be defined in c++23" +# endif +# if __cpp_lib_atomic_wait != 201907L +# error "__cpp_lib_atomic_wait should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_barrier +# error "__cpp_lib_barrier should be defined in c++23" +# endif +# if __cpp_lib_barrier != 201907L +# error "__cpp_lib_barrier should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should be defined in c++23" +# endif +# if __cpp_lib_bind_back != 202202L +# error "__cpp_lib_bind_back should have the value 202202L in c++23" +# endif + +# ifndef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should be defined in c++23" +# endif +# if __cpp_lib_bind_front != 201907L +# error "__cpp_lib_bind_front should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should be defined in c++23" +# endif +# if __cpp_lib_bit_cast != 201806L +# error "__cpp_lib_bit_cast should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_bitops +# error "__cpp_lib_bitops should be defined in c++23" +# endif +# if __cpp_lib_bitops != 201907L +# error "__cpp_lib_bitops should have the value 201907L in c++23" +# endif + +# ifdef __cpp_lib_bitset +# error "__cpp_lib_bitset should not be defined before c++26" +# endif + +# ifndef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should be defined in c++23" +# endif +# if __cpp_lib_bool_constant != 201505L +# error "__cpp_lib_bool_constant should have the value 201505L in c++23" +# endif + +# ifndef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should be defined in c++23" +# endif +# if __cpp_lib_bounded_array_traits != 201902L +# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++23" +# endif + +# ifndef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should be defined in c++23" +# endif +# if __cpp_lib_boyer_moore_searcher != 201603L +# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_byte +# error "__cpp_lib_byte should be defined in c++23" +# endif +# if __cpp_lib_byte != 201603L +# error "__cpp_lib_byte should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should be defined in c++23" +# endif +# if __cpp_lib_byteswap != 202110L +# error "__cpp_lib_byteswap should have the value 202110L in c++23" +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++23" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_chrono +# error "__cpp_lib_chrono should be defined in c++23" +# endif +# if __cpp_lib_chrono != 201611L +# error "__cpp_lib_chrono should have the value 201611L in c++23" +# endif + +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++23" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_clamp +# error "__cpp_lib_clamp should be defined in c++23" +# endif +# if __cpp_lib_clamp != 201603L +# error "__cpp_lib_clamp should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++23" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++23" +# endif + +# ifndef __cpp_lib_concepts +# error "__cpp_lib_concepts should be defined in c++23" +# endif +# if __cpp_lib_concepts != 202002L +# error "__cpp_lib_concepts should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++23" +# endif +# if __cpp_lib_constexpr_algorithms != 201806L +# error "__cpp_lib_constexpr_algorithms should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should be defined in c++23" +# endif +# if __cpp_lib_constexpr_bitset != 202207L +# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should be defined in c++23" +# endif +# if __cpp_lib_constexpr_charconv != 202207L +# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should be defined in c++23" +# endif +# if __cpp_lib_constexpr_cmath != 202202L +# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should be defined in c++23" +# endif +# if __cpp_lib_constexpr_complex != 201711L +# error "__cpp_lib_constexpr_complex should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++23" +# endif +# if __cpp_lib_constexpr_dynamic_alloc != 201907L +# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should be defined in c++23" +# endif +# if __cpp_lib_constexpr_functional != 201907L +# error "__cpp_lib_constexpr_functional should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should be defined in c++23" +# endif +# if __cpp_lib_constexpr_iterator != 201811L +# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should be defined in c++23" +# endif +# if __cpp_lib_constexpr_memory != 202202L +# error "__cpp_lib_constexpr_memory should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined before c++26" +# endif + +# ifndef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should be defined in c++23" +# endif +# if __cpp_lib_constexpr_numeric != 201911L +# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should be defined in c++23" +# endif +# if __cpp_lib_constexpr_string != 201907L +# error "__cpp_lib_constexpr_string should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should be defined in c++23" +# endif +# if __cpp_lib_constexpr_string_view != 201811L +# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should be defined in c++23" +# endif +# if __cpp_lib_constexpr_tuple != 201811L +# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should be defined in c++23" +# endif +# if __cpp_lib_constexpr_typeinfo != 202106L +# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should be defined in c++23" +# endif +# if __cpp_lib_constexpr_utility != 201811L +# error "__cpp_lib_constexpr_utility should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++23" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++23" +# endif + +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++23" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined before c++26" +# endif + +# ifndef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should be defined in c++23" +# endif +# if __cpp_lib_coroutine != 201902L +# error "__cpp_lib_coroutine should have the value 201902L in c++23" +# endif + +# ifdef __cpp_lib_debugging +# error "__cpp_lib_debugging should not be defined before c++26" +# endif + +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" +# endif + +# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L +# ifndef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should be defined in c++23" +# endif +# if __cpp_lib_destroying_delete != 201806L +# error "__cpp_lib_destroying_delete should have the value 201806L in c++23" +# endif +# else +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" +# endif +# endif + +# ifndef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should be defined in c++23" +# endif +# if __cpp_lib_enable_shared_from_this != 201603L +# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_endian +# error "__cpp_lib_endian should be defined in c++23" +# endif +# if __cpp_lib_endian != 201907L +# error "__cpp_lib_endian should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++23" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++23" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_execution +# error "__cpp_lib_execution should be defined in c++23" +# endif +# if __cpp_lib_execution != 201902L +# error "__cpp_lib_execution should have the value 201902L in c++23" +# endif +# else +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_expected +# error "__cpp_lib_expected should be defined in c++23" +# endif +# if __cpp_lib_expected != 202211L +# error "__cpp_lib_expected should have the value 202211L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) +# ifndef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should be defined in c++23" +# endif +# if __cpp_lib_filesystem != 201703L +# error "__cpp_lib_filesystem should have the value 201703L in c++23" +# endif +# else +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should be defined in c++23" +# endif +# if __cpp_lib_flat_map != 202207L +# error "__cpp_lib_flat_map should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should be defined in c++23" +# endif +# if __cpp_lib_flat_set != 202207L +# error "__cpp_lib_flat_set should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_format +# error "__cpp_lib_format should be defined in c++23" +# endif +# if __cpp_lib_format != 202110L +# error "__cpp_lib_format should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif + +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined before c++26" +# endif + +# ifndef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should be defined in c++23" +# endif +# if __cpp_lib_format_ranges != 202207L +# error "__cpp_lib_format_ranges should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should be defined in c++23" +# endif +# if __cpp_lib_format_uchar != 202311L +# error "__cpp_lib_format_uchar should have the value 202311L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_formatters +# error "__cpp_lib_formatters should be defined in c++23" +# endif +# if __cpp_lib_formatters != 202302L +# error "__cpp_lib_formatters should have the value 202302L in c++23" +# endif +# else +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should be defined in c++23" +# endif +# if __cpp_lib_forward_like != 202207L +# error "__cpp_lib_forward_like should have the value 202207L in c++23" +# endif + +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined before c++26" +# endif + +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined before c++26" +# endif + +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined before c++26" +# endif + +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined before c++26" +# endif + +# ifndef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should be defined in c++23" +# endif +# if __cpp_lib_gcd_lcm != 201606L +# error "__cpp_lib_gcd_lcm should have the value 201606L in c++23" +# endif + +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined before c++26" +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++23" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++23" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) +# ifndef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should be defined in c++23" +# endif +# if __cpp_lib_hardware_interference_size != 201703L +# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++23" +# endif +# else +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" +# endif +# endif + +# ifndef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should be defined in c++23" +# endif +# if __cpp_lib_has_unique_object_representations != 201606L +# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++23" +# endif + +# ifdef __cpp_lib_hazard_pointer +# error "__cpp_lib_hazard_pointer should not be defined before c++26" +# endif + +# ifndef __cpp_lib_hypot +# error "__cpp_lib_hypot should be defined in c++23" +# endif +# if __cpp_lib_hypot != 201603L +# error "__cpp_lib_hypot should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++23" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++23" +# endif + +# ifdef __cpp_lib_inplace_vector +# error "__cpp_lib_inplace_vector should not be defined before c++26" +# endif + +# ifndef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should be defined in c++23" +# endif +# if __cpp_lib_int_pow2 != 202002L +# error "__cpp_lib_int_pow2 should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should be defined in c++23" +# endif +# if __cpp_lib_integer_comparison_functions != 202002L +# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++23" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++23" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++23" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++23" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++23" +# endif + +# ifndef __cpp_lib_invoke +# error "__cpp_lib_invoke should be defined in c++23" +# endif +# if __cpp_lib_invoke != 201411L +# error "__cpp_lib_invoke should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should be defined in c++23" +# endif +# if __cpp_lib_invoke_r != 202106L +# error "__cpp_lib_invoke_r should have the value 202106L in c++23" +# endif + +# ifndef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should be defined in c++23" +# endif +# if __cpp_lib_ios_noreplace != 202207L +# error "__cpp_lib_ios_noreplace should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should be defined in c++23" +# endif +# if __cpp_lib_is_aggregate != 201703L +# error "__cpp_lib_is_aggregate should have the value 201703L in c++23" +# endif + +# ifndef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should be defined in c++23" +# endif +# if __cpp_lib_is_constant_evaluated != 201811L +# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++23" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++23" +# endif + +# if __has_builtin(__builtin_is_implicit_lifetime) +# ifndef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should be defined in c++23" +# endif +# if __cpp_lib_is_implicit_lifetime != 202302L +# error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++23" +# endif +# else +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should be defined in c++23" +# endif +# if __cpp_lib_is_invocable != 201703L +# error "__cpp_lib_is_invocable should have the value 201703L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should be defined in c++23" +# endif +# if __cpp_lib_is_layout_compatible != 201907L +# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should be defined in c++23" +# endif +# if __cpp_lib_is_nothrow_convertible != 201806L +# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++23" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should be defined in c++23" +# endif +# if __cpp_lib_is_pointer_interconvertible != 201907L +# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should be defined in c++23" +# endif +# if __cpp_lib_is_scoped_enum != 202011L +# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++23" +# endif + +# ifndef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should be defined in c++23" +# endif +# if __cpp_lib_is_swappable != 201603L +# error "__cpp_lib_is_swappable should have the value 201603L in c++23" +# endif + +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined before c++26" +# endif + +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++23" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++23" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_latch +# error "__cpp_lib_latch should be defined in c++23" +# endif +# if __cpp_lib_latch != 201907L +# error "__cpp_lib_latch should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_launder +# error "__cpp_lib_launder should be defined in c++23" +# endif +# if __cpp_lib_launder != 201606L +# error "__cpp_lib_launder should have the value 201606L in c++23" +# endif + +# ifdef __cpp_lib_linalg +# error "__cpp_lib_linalg should not be defined before c++26" +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++23" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should be defined in c++23" +# endif +# if __cpp_lib_logical_traits != 201510L +# error "__cpp_lib_logical_traits should have the value 201510L in c++23" +# endif + +# ifndef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should be defined in c++23" +# endif +# if __cpp_lib_make_from_tuple != 201606L +# error "__cpp_lib_make_from_tuple should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++23" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++23" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should be defined in c++23" +# endif +# if __cpp_lib_map_try_emplace != 201411L +# error "__cpp_lib_map_try_emplace should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should be defined in c++23" +# endif +# if __cpp_lib_math_constants != 201907L +# error "__cpp_lib_math_constants should have the value 201907L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should be defined in c++23" +# endif +# if __cpp_lib_math_special_functions != 201603L +# error "__cpp_lib_math_special_functions should have the value 201603L in c++23" +# endif +# else +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should be defined in c++23" +# endif +# if __cpp_lib_mdspan != 202207L +# error "__cpp_lib_mdspan should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should be defined in c++23" +# endif +# if __cpp_lib_memory_resource != 201603L +# error "__cpp_lib_memory_resource should have the value 201603L in c++23" +# endif +# else +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# ifndef __cpp_lib_modules +# error "__cpp_lib_modules should be defined in c++23" +# endif +# if __cpp_lib_modules != 202207L +# error "__cpp_lib_modules should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should be defined in c++23" +# endif +# if __cpp_lib_move_iterator_concept != 202207L +# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should be defined in c++23" +# endif +# if __cpp_lib_move_only_function != 202110L +# error "__cpp_lib_move_only_function should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++23" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++23" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++23" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should be defined in c++23" +# endif +# if __cpp_lib_not_fn != 201603L +# error "__cpp_lib_not_fn should have the value 201603L in c++23" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++23" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_optional +# error "__cpp_lib_optional should be defined in c++23" +# endif +# if __cpp_lib_optional != 202110L +# error "__cpp_lib_optional should have the value 202110L in c++23" +# endif + +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined before c++26" +# endif + +# ifndef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should be defined in c++23" +# endif +# if __cpp_lib_out_ptr != 202106L +# error "__cpp_lib_out_ptr should have the value 202106L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++23" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++23" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should be defined in c++23" +# endif +# if __cpp_lib_polymorphic_allocator != 201902L +# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++23" +# endif +# else +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_print +# error "__cpp_lib_print should be defined in c++23" +# endif +# if __cpp_lib_print != 202207L +# error "__cpp_lib_print should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++23" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++23" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++23" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should be defined in c++23" +# endif +# if __cpp_lib_ranges_as_const != 202207L +# error "__cpp_lib_ranges_as_const should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should be defined in c++23" +# endif +# if __cpp_lib_ranges_as_rvalue != 202207L +# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should be defined in c++23" +# endif +# if __cpp_lib_ranges_chunk != 202202L +# error "__cpp_lib_ranges_chunk should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should be defined in c++23" +# endif +# if __cpp_lib_ranges_chunk_by != 202202L +# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++23" +# endif + +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined before c++26" +# endif + +# ifndef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should be defined in c++23" +# endif +# if __cpp_lib_ranges_contains != 202207L +# error "__cpp_lib_ranges_contains should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should be defined in c++23" +# endif +# if __cpp_lib_ranges_find_last != 202207L +# error "__cpp_lib_ranges_find_last should have the value 202207L in c++23" +# endif + +# ifndef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should be defined in c++23" +# endif +# if __cpp_lib_ranges_iota != 202202L +# error "__cpp_lib_ranges_iota should have the value 202202L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should be defined in c++23" +# endif +# if __cpp_lib_ranges_join_with != 202202L +# error "__cpp_lib_ranges_join_with should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should be defined in c++23" +# endif +# if __cpp_lib_ranges_repeat != 202207L +# error "__cpp_lib_ranges_repeat should have the value 202207L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should be defined in c++23" +# endif +# if __cpp_lib_ranges_slide != 202202L +# error "__cpp_lib_ranges_slide should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should be defined in c++23" +# endif +# if __cpp_lib_ranges_starts_ends_with != 202106L +# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++23" +# endif + +# ifndef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should be defined in c++23" +# endif +# if __cpp_lib_ranges_to_container != 202202L +# error "__cpp_lib_ranges_to_container should have the value 202202L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should be defined in c++23" +# endif +# if __cpp_lib_ranges_zip != 202110L +# error "__cpp_lib_ranges_zip should have the value 202110L in c++23" +# endif +# else +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_ratio +# error "__cpp_lib_ratio should not be defined before c++26" +# endif + +# ifndef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should be defined in c++23" +# endif +# if __cpp_lib_raw_memory_algorithms != 201606L +# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++23" +# endif + +# ifdef __cpp_lib_rcu +# error "__cpp_lib_rcu should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should be defined in c++23" +# endif +# if __cpp_lib_reference_from_temporary != 202202L +# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++23" +# endif +# else +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should not be defined before c++26" +# endif + +# ifndef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should be defined in c++23" +# endif +# if __cpp_lib_remove_cvref != 201711L +# error "__cpp_lib_remove_cvref should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++23" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++23" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++23" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_sample +# error "__cpp_lib_sample should be defined in c++23" +# endif +# if __cpp_lib_sample != 201603L +# error "__cpp_lib_sample should have the value 201603L in c++23" +# endif + +# ifdef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should be defined in c++23" +# endif +# if __cpp_lib_scoped_lock != 201703L +# error "__cpp_lib_scoped_lock should have the value 201703L in c++23" +# endif +# else +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should be defined in c++23" +# endif +# if __cpp_lib_semaphore != 201907L +# error "__cpp_lib_semaphore should have the value 201907L in c++23" +# endif +# else +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should be defined in c++23" +# endif +# if __cpp_lib_shared_mutex != 201505L +# error "__cpp_lib_shared_mutex should have the value 201505L in c++23" +# endif +# else +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifndef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should be defined in c++23" +# endif +# if __cpp_lib_shared_ptr_arrays != 201707L +# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++23" +# endif + +# ifndef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should be defined in c++23" +# endif +# if __cpp_lib_shared_ptr_weak_type != 201606L +# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++23" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++23" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifndef __cpp_lib_shift +# error "__cpp_lib_shift should be defined in c++23" +# endif +# if __cpp_lib_shift != 201806L +# error "__cpp_lib_shift should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++23" +# endif +# if __cpp_lib_smart_ptr_for_overwrite != 202002L +# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++23" +# endif + +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined before c++26" +# endif + +# ifndef __cpp_lib_source_location +# error "__cpp_lib_source_location should be defined in c++23" +# endif +# if __cpp_lib_source_location != 201907L +# error "__cpp_lib_source_location should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_span +# error "__cpp_lib_span should be defined in c++23" +# endif +# if __cpp_lib_span != 202002L +# error "__cpp_lib_span should have the value 202002L in c++23" +# endif + +# ifdef __cpp_lib_span_at +# error "__cpp_lib_span_at should not be defined before c++26" +# endif + +# ifdef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_spanstream +# error "__cpp_lib_spanstream should be defined in c++23" +# endif +# if __cpp_lib_spanstream != 202106L +# error "__cpp_lib_spanstream should have the value 202106L in c++23" +# endif +# else +# ifdef __cpp_lib_spanstream +# error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ssize +# error "__cpp_lib_ssize should be defined in c++23" +# endif +# if __cpp_lib_ssize != 201902L +# error "__cpp_lib_ssize should have the value 201902L in c++23" +# endif + +# ifdef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_stacktrace +# error "__cpp_lib_stacktrace should be defined in c++23" +# endif +# if __cpp_lib_stacktrace != 202011L +# error "__cpp_lib_stacktrace should have the value 202011L in c++23" +# endif +# else +# ifdef __cpp_lib_stacktrace +# error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++23" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should be defined in c++23" +# endif +# if __cpp_lib_stdatomic_h != 202011L +# error "__cpp_lib_stdatomic_h should have the value 202011L in c++23" +# endif + +# ifndef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should be defined in c++23" +# endif +# if __cpp_lib_string_contains != 202011L +# error "__cpp_lib_string_contains should have the value 202011L in c++23" +# endif + +# ifndef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should be defined in c++23" +# endif +# if __cpp_lib_string_resize_and_overwrite != 202110L +# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++23" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++23" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++23" +# endif +# if __cpp_lib_string_view != 201803L +# error "__cpp_lib_string_view should have the value 201803L in c++23" +# endif + +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined before c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM +# ifndef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should be defined in c++23" +# endif +# if __cpp_lib_syncbuf != 201803L +# error "__cpp_lib_syncbuf should have the value 201803L in c++23" +# endif +# else +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" +# endif +# endif + +# ifdef __cpp_lib_text_encoding +# error "__cpp_lib_text_encoding should not be defined before c++26" +# endif + +# ifndef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should be defined in c++23" +# endif +# if __cpp_lib_three_way_comparison != 201907L +# error "__cpp_lib_three_way_comparison should have the value 201907L in c++23" +# endif + +# ifndef __cpp_lib_to_address +# error "__cpp_lib_to_address should be defined in c++23" +# endif +# if __cpp_lib_to_address != 201711L +# error "__cpp_lib_to_address should have the value 201711L in c++23" +# endif + +# ifndef __cpp_lib_to_array +# error "__cpp_lib_to_array should be defined in c++23" +# endif +# if __cpp_lib_to_array != 201907L +# error "__cpp_lib_to_array should have the value 201907L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should be defined in c++23" +# endif +# if __cpp_lib_to_chars != 201611L +# error "__cpp_lib_to_chars should have the value 201611L in c++23" +# endif +# else +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined before c++26" +# endif + +# ifndef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should be defined in c++23" +# endif +# if __cpp_lib_to_underlying != 202102L +# error "__cpp_lib_to_underlying should have the value 202102L in c++23" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++23" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++23" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++23" +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++23" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++23" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++23" +# endif +# if __cpp_lib_tuple_like != 202207L +# error "__cpp_lib_tuple_like should have the value 202207L in c++23" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++23" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++23" +# endif + +# ifndef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should be defined in c++23" +# endif +# if __cpp_lib_type_identity != 201806L +# error "__cpp_lib_type_identity should have the value 201806L in c++23" +# endif + +# ifndef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should be defined in c++23" +# endif +# if __cpp_lib_type_trait_variable_templates != 201510L +# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++23" +# endif + +# ifndef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should be defined in c++23" +# endif +# if __cpp_lib_uncaught_exceptions != 201411L +# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should be defined in c++23" +# endif +# if __cpp_lib_unordered_map_try_emplace != 201411L +# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++23" +# endif + +# ifndef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should be defined in c++23" +# endif +# if __cpp_lib_unreachable != 202202L +# error "__cpp_lib_unreachable should have the value 202202L in c++23" +# endif + +# ifndef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should be defined in c++23" +# endif +# if __cpp_lib_unwrap_ref != 201811L +# error "__cpp_lib_unwrap_ref should have the value 201811L in c++23" +# endif + +# ifndef __cpp_lib_variant +# error "__cpp_lib_variant should be defined in c++23" +# endif +# if __cpp_lib_variant != 202106L +# error "__cpp_lib_variant should have the value 202106L in c++23" +# endif + +# ifndef __cpp_lib_void_t +# error "__cpp_lib_void_t should be defined in c++23" +# endif +# if __cpp_lib_void_t != 201411L +# error "__cpp_lib_void_t should have the value 201411L in c++23" +# endif #elif TEST_STD_VER > 23 -# ifndef __cpp_lib_adaptor_iterator_pair_constructor -# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26" -# endif -# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L -# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26" -# endif - -# ifndef __cpp_lib_addressof_constexpr -# error "__cpp_lib_addressof_constexpr should be defined in c++26" -# endif -# if __cpp_lib_addressof_constexpr != 201603L -# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_allocate_at_least -# error "__cpp_lib_allocate_at_least should be defined in c++26" -# endif -# if __cpp_lib_allocate_at_least != 202302L -# error "__cpp_lib_allocate_at_least should have the value 202302L in c++26" -# endif - -# ifndef __cpp_lib_allocator_traits_is_always_equal -# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" -# endif -# if __cpp_lib_allocator_traits_is_always_equal != 201411L -# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_any -# error "__cpp_lib_any should be defined in c++26" -# endif -# if __cpp_lib_any != 201606L -# error "__cpp_lib_any should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_apply -# error "__cpp_lib_apply should be defined in c++26" -# endif -# if __cpp_lib_apply != 201603L -# error "__cpp_lib_apply should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_array_constexpr -# error "__cpp_lib_array_constexpr should be defined in c++26" -# endif -# if __cpp_lib_array_constexpr != 201811L -# error "__cpp_lib_array_constexpr should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_as_const -# error "__cpp_lib_as_const should be defined in c++26" -# endif -# if __cpp_lib_as_const != 201510L -# error "__cpp_lib_as_const should have the value 201510L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_erasure != 202110L -# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_erasure -# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" -# endif -# if __cpp_lib_associative_heterogeneous_insertion != 202306L -# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_associative_heterogeneous_insertion -# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_assume_aligned -# error "__cpp_lib_assume_aligned should be defined in c++26" -# endif -# if __cpp_lib_assume_aligned != 201811L -# error "__cpp_lib_assume_aligned should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_atomic_flag_test -# error "__cpp_lib_atomic_flag_test should be defined in c++26" -# endif -# if __cpp_lib_atomic_flag_test != 201907L -# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_atomic_float -# error "__cpp_lib_atomic_float should be defined in c++26" -# endif -# if __cpp_lib_atomic_float != 201711L -# error "__cpp_lib_atomic_float should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_atomic_is_always_lock_free -# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++26" -# endif -# if __cpp_lib_atomic_is_always_lock_free != 201603L -# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_atomic_lock_free_type_aliases -# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++26" -# endif -# if __cpp_lib_atomic_lock_free_type_aliases != 201907L -# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should be defined in c++26" -# endif -# if __cpp_lib_atomic_min_max != 202403L -# error "__cpp_lib_atomic_min_max should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_atomic_min_max -# error "__cpp_lib_atomic_min_max should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_atomic_ref -# error "__cpp_lib_atomic_ref should be defined in c++26" -# endif -# if __cpp_lib_atomic_ref != 201806L -# error "__cpp_lib_atomic_ref should have the value 201806L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should be defined in c++26" -# endif -# if __cpp_lib_atomic_shared_ptr != 201711L -# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_atomic_shared_ptr -# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_atomic_value_initialization -# error "__cpp_lib_atomic_value_initialization should be defined in c++26" -# endif -# if __cpp_lib_atomic_value_initialization != 201911L -# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC -# ifndef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should be defined in c++26" -# endif -# if __cpp_lib_atomic_wait != 201907L -# error "__cpp_lib_atomic_wait should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_atomic_wait -# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_barrier -# error "__cpp_lib_barrier should be defined in c++26" -# endif -# if __cpp_lib_barrier != 201907L -# error "__cpp_lib_barrier should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_barrier -# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_bind_back -# error "__cpp_lib_bind_back should be defined in c++26" -# endif -# if __cpp_lib_bind_back != 202202L -# error "__cpp_lib_bind_back should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_bind_front -# error "__cpp_lib_bind_front should be defined in c++26" -# endif -# if __cpp_lib_bind_front != 202306L -# error "__cpp_lib_bind_front should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_bit_cast -# error "__cpp_lib_bit_cast should be defined in c++26" -# endif -# if __cpp_lib_bit_cast != 201806L -# error "__cpp_lib_bit_cast should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_bitops -# error "__cpp_lib_bitops should be defined in c++26" -# endif -# if __cpp_lib_bitops != 201907L -# error "__cpp_lib_bitops should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_bitset -# error "__cpp_lib_bitset should be defined in c++26" -# endif -# if __cpp_lib_bitset != 202306L -# error "__cpp_lib_bitset should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_bool_constant -# error "__cpp_lib_bool_constant should be defined in c++26" -# endif -# if __cpp_lib_bool_constant != 201505L -# error "__cpp_lib_bool_constant should have the value 201505L in c++26" -# endif - -# ifndef __cpp_lib_bounded_array_traits -# error "__cpp_lib_bounded_array_traits should be defined in c++26" -# endif -# if __cpp_lib_bounded_array_traits != 201902L -# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++26" -# endif - -# ifndef __cpp_lib_boyer_moore_searcher -# error "__cpp_lib_boyer_moore_searcher should be defined in c++26" -# endif -# if __cpp_lib_boyer_moore_searcher != 201603L -# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_byte -# error "__cpp_lib_byte should be defined in c++26" -# endif -# if __cpp_lib_byte != 201603L -# error "__cpp_lib_byte should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_byteswap -# error "__cpp_lib_byteswap should be defined in c++26" -# endif -# if __cpp_lib_byteswap != 202110L -# error "__cpp_lib_byteswap should have the value 202110L in c++26" -# endif - -# if defined(__cpp_char8_t) -# ifndef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should be defined in c++26" -# endif -# if __cpp_lib_char8_t != 201907L -# error "__cpp_lib_char8_t should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_char8_t -# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_chrono -# error "__cpp_lib_chrono should be defined in c++26" -# endif -# if __cpp_lib_chrono != 201611L -# error "__cpp_lib_chrono should have the value 201611L in c++26" -# endif - -# ifndef __cpp_lib_chrono_udls -# error "__cpp_lib_chrono_udls should be defined in c++26" -# endif -# if __cpp_lib_chrono_udls != 201304L -# error "__cpp_lib_chrono_udls should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_clamp -# error "__cpp_lib_clamp should be defined in c++26" -# endif -# if __cpp_lib_clamp != 201603L -# error "__cpp_lib_clamp should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_complex_udls -# error "__cpp_lib_complex_udls should be defined in c++26" -# endif -# if __cpp_lib_complex_udls != 201309L -# error "__cpp_lib_complex_udls should have the value 201309L in c++26" -# endif - -# ifndef __cpp_lib_concepts -# error "__cpp_lib_concepts should be defined in c++26" -# endif -# if __cpp_lib_concepts != 202002L -# error "__cpp_lib_concepts should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_algorithms -# error "__cpp_lib_constexpr_algorithms should be defined in c++26" -# endif -# if __cpp_lib_constexpr_algorithms != 202306L -# error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_bitset -# error "__cpp_lib_constexpr_bitset should be defined in c++26" -# endif -# if __cpp_lib_constexpr_bitset != 202207L -# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_charconv -# error "__cpp_lib_constexpr_charconv should be defined in c++26" -# endif -# if __cpp_lib_constexpr_charconv != 202207L -# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should be defined in c++26" -# endif -# if __cpp_lib_constexpr_cmath != 202202L -# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constexpr_cmath -# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_complex -# error "__cpp_lib_constexpr_complex should be defined in c++26" -# endif -# if __cpp_lib_constexpr_complex != 201711L -# error "__cpp_lib_constexpr_complex should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_dynamic_alloc -# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++26" -# endif -# if __cpp_lib_constexpr_dynamic_alloc != 201907L -# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_functional -# error "__cpp_lib_constexpr_functional should be defined in c++26" -# endif -# if __cpp_lib_constexpr_functional != 201907L -# error "__cpp_lib_constexpr_functional should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_iterator -# error "__cpp_lib_constexpr_iterator should be defined in c++26" -# endif -# if __cpp_lib_constexpr_iterator != 201811L -# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_memory -# error "__cpp_lib_constexpr_memory should be defined in c++26" -# endif -# if __cpp_lib_constexpr_memory != 202202L -# error "__cpp_lib_constexpr_memory should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_ABI_VCRUNTIME) -# ifndef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should be defined in c++26" -# endif -# if __cpp_lib_constexpr_new != 202406L -# error "__cpp_lib_constexpr_new should have the value 202406L in c++26" -# endif -# else -# ifdef __cpp_lib_constexpr_new -# error "__cpp_lib_constexpr_new should not be defined when the requirement '!defined(_LIBCPP_ABI_VCRUNTIME)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_constexpr_numeric -# error "__cpp_lib_constexpr_numeric should be defined in c++26" -# endif -# if __cpp_lib_constexpr_numeric != 201911L -# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_string -# error "__cpp_lib_constexpr_string should be defined in c++26" -# endif -# if __cpp_lib_constexpr_string != 201907L -# error "__cpp_lib_constexpr_string should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_string_view -# error "__cpp_lib_constexpr_string_view should be defined in c++26" -# endif -# if __cpp_lib_constexpr_string_view != 201811L -# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_tuple -# error "__cpp_lib_constexpr_tuple should be defined in c++26" -# endif -# if __cpp_lib_constexpr_tuple != 201811L -# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_typeinfo -# error "__cpp_lib_constexpr_typeinfo should be defined in c++26" -# endif -# if __cpp_lib_constexpr_typeinfo != 202106L -# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_utility -# error "__cpp_lib_constexpr_utility should be defined in c++26" -# endif -# if __cpp_lib_constexpr_utility != 201811L -# error "__cpp_lib_constexpr_utility should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_constexpr_vector -# error "__cpp_lib_constexpr_vector should be defined in c++26" -# endif -# if __cpp_lib_constexpr_vector != 201907L -# error "__cpp_lib_constexpr_vector should have the value 201907L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should be defined in c++26" -# endif -# if __cpp_lib_constrained_equality != 202403L -# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_constrained_equality -# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_containers_ranges -# error "__cpp_lib_containers_ranges should be defined in c++26" -# endif -# if __cpp_lib_containers_ranges != 202202L -# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should be defined in c++26" -# endif -# if __cpp_lib_copyable_function != 202306L -# error "__cpp_lib_copyable_function should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_copyable_function -# error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_coroutine -# error "__cpp_lib_coroutine should be defined in c++26" -# endif -# if __cpp_lib_coroutine != 201902L -# error "__cpp_lib_coroutine should have the value 201902L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_debugging -# error "__cpp_lib_debugging should be defined in c++26" -# endif -# if __cpp_lib_debugging != 202311L -# error "__cpp_lib_debugging should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_debugging -# error "__cpp_lib_debugging should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" -# endif -# if __cpp_lib_default_template_type_for_algorithm_values != 202403L -# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_default_template_type_for_algorithm_values -# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L -# ifndef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should be defined in c++26" -# endif -# if __cpp_lib_destroying_delete != 201806L -# error "__cpp_lib_destroying_delete should have the value 201806L in c++26" -# endif -# else -# ifdef __cpp_lib_destroying_delete -# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" -# endif -# endif - -# ifndef __cpp_lib_enable_shared_from_this -# error "__cpp_lib_enable_shared_from_this should be defined in c++26" -# endif -# if __cpp_lib_enable_shared_from_this != 201603L -# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_endian -# error "__cpp_lib_endian should be defined in c++26" -# endif -# if __cpp_lib_endian != 201907L -# error "__cpp_lib_endian should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_erase_if -# error "__cpp_lib_erase_if should be defined in c++26" -# endif -# if __cpp_lib_erase_if != 202002L -# error "__cpp_lib_erase_if should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_exchange_function -# error "__cpp_lib_exchange_function should be defined in c++26" -# endif -# if __cpp_lib_exchange_function != 201304L -# error "__cpp_lib_exchange_function should have the value 201304L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_execution -# error "__cpp_lib_execution should be defined in c++26" -# endif -# if __cpp_lib_execution != 201902L -# error "__cpp_lib_execution should have the value 201902L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_execution -# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_expected -# error "__cpp_lib_expected should be defined in c++26" -# endif -# if __cpp_lib_expected != 202211L -# error "__cpp_lib_expected should have the value 202211L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) -# ifndef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should be defined in c++26" -# endif -# if __cpp_lib_filesystem != 201703L -# error "__cpp_lib_filesystem should have the value 201703L in c++26" -# endif -# else -# ifdef __cpp_lib_filesystem -# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_flat_map -# error "__cpp_lib_flat_map should be defined in c++26" -# endif -# if __cpp_lib_flat_map != 202207L -# error "__cpp_lib_flat_map should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_flat_set -# error "__cpp_lib_flat_set should be defined in c++26" -# endif -# if __cpp_lib_flat_set != 202207L -# error "__cpp_lib_flat_set should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_format -# error "__cpp_lib_format should be defined in c++26" -# endif -# if __cpp_lib_format != 202110L -# error "__cpp_lib_format should have the value 202110L in c++26" -# endif -# else -# ifdef __cpp_lib_format -# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_format_path -# error "__cpp_lib_format_path should be defined in c++26" -# endif -# if __cpp_lib_format_path != 202403L -# error "__cpp_lib_format_path should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_format_path -# error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_format_ranges -# error "__cpp_lib_format_ranges should be defined in c++26" -# endif -# if __cpp_lib_format_ranges != 202207L -# error "__cpp_lib_format_ranges should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_format_uchar -# error "__cpp_lib_format_uchar should be defined in c++26" -# endif -# if __cpp_lib_format_uchar != 202311L -# error "__cpp_lib_format_uchar should have the value 202311L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_formatters -# error "__cpp_lib_formatters should be defined in c++26" -# endif -# if __cpp_lib_formatters != 202302L -# error "__cpp_lib_formatters should have the value 202302L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_formatters -# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_forward_like -# error "__cpp_lib_forward_like should be defined in c++26" -# endif -# if __cpp_lib_forward_like != 202207L -# error "__cpp_lib_forward_like should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should be defined in c++26" -# endif -# if __cpp_lib_freestanding_algorithm != 202311L -# error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_algorithm -# error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should be defined in c++26" -# endif -# if __cpp_lib_freestanding_array != 202311L -# error "__cpp_lib_freestanding_array should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_array -# error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should be defined in c++26" -# endif -# if __cpp_lib_freestanding_cstring != 202306L -# error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_cstring -# error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should be defined in c++26" -# endif -# if __cpp_lib_freestanding_expected != 202311L -# error "__cpp_lib_freestanding_expected should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_expected -# error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should be defined in c++26" -# endif -# if __cpp_lib_freestanding_mdspan != 202311L -# error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_mdspan -# error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should be defined in c++26" -# endif -# if __cpp_lib_freestanding_optional != 202311L -# error "__cpp_lib_freestanding_optional should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_optional -# error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should be defined in c++26" -# endif -# if __cpp_lib_freestanding_string_view != 202311L -# error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_string_view -# error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should be defined in c++26" -# endif -# if __cpp_lib_freestanding_variant != 202311L -# error "__cpp_lib_freestanding_variant should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_freestanding_variant -# error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION) -# ifndef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should be defined in c++26" -# endif -# if __cpp_lib_fstream_native_handle != 202306L -# error "__cpp_lib_fstream_native_handle should have the value 202306L in c++26" -# endif -# else -# ifdef __cpp_lib_fstream_native_handle -# error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should be defined in c++26" -# endif -# if __cpp_lib_function_ref != 202306L -# error "__cpp_lib_function_ref should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_function_ref -# error "__cpp_lib_function_ref should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_gcd_lcm -# error "__cpp_lib_gcd_lcm should be defined in c++26" -# endif -# if __cpp_lib_gcd_lcm != 201606L -# error "__cpp_lib_gcd_lcm should have the value 201606L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should be defined in c++26" -# endif -# if __cpp_lib_generate_random != 202403L -# error "__cpp_lib_generate_random should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_generate_random -# error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_generic_associative_lookup -# error "__cpp_lib_generic_associative_lookup should be defined in c++26" -# endif -# if __cpp_lib_generic_associative_lookup != 201304L -# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_generic_unordered_lookup -# error "__cpp_lib_generic_unordered_lookup should be defined in c++26" -# endif -# if __cpp_lib_generic_unordered_lookup != 201811L -# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) -# ifndef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should be defined in c++26" -# endif -# if __cpp_lib_hardware_interference_size != 201703L -# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++26" -# endif -# else -# ifdef __cpp_lib_hardware_interference_size -# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" -# endif -# endif - -# ifndef __cpp_lib_has_unique_object_representations -# error "__cpp_lib_has_unique_object_representations should be defined in c++26" -# endif -# if __cpp_lib_has_unique_object_representations != 201606L -# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_hazard_pointer -# error "__cpp_lib_hazard_pointer should be defined in c++26" -# endif -# if __cpp_lib_hazard_pointer != 202306L -# error "__cpp_lib_hazard_pointer should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_hazard_pointer -# error "__cpp_lib_hazard_pointer should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_hypot -# error "__cpp_lib_hypot should be defined in c++26" -# endif -# if __cpp_lib_hypot != 201603L -# error "__cpp_lib_hypot should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_incomplete_container_elements -# error "__cpp_lib_incomplete_container_elements should be defined in c++26" -# endif -# if __cpp_lib_incomplete_container_elements != 201505L -# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_inplace_vector -# error "__cpp_lib_inplace_vector should be defined in c++26" -# endif -# if __cpp_lib_inplace_vector != 202406L -# error "__cpp_lib_inplace_vector should have the value 202406L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_inplace_vector -# error "__cpp_lib_inplace_vector should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_int_pow2 -# error "__cpp_lib_int_pow2 should be defined in c++26" -# endif -# if __cpp_lib_int_pow2 != 202002L -# error "__cpp_lib_int_pow2 should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_integer_comparison_functions -# error "__cpp_lib_integer_comparison_functions should be defined in c++26" -# endif -# if __cpp_lib_integer_comparison_functions != 202002L -# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_integer_sequence -# error "__cpp_lib_integer_sequence should be defined in c++26" -# endif -# if __cpp_lib_integer_sequence != 201304L -# error "__cpp_lib_integer_sequence should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_integral_constant_callable -# error "__cpp_lib_integral_constant_callable should be defined in c++26" -# endif -# if __cpp_lib_integral_constant_callable != 201304L -# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_interpolate -# error "__cpp_lib_interpolate should be defined in c++26" -# endif -# if __cpp_lib_interpolate != 201902L -# error "__cpp_lib_interpolate should have the value 201902L in c++26" -# endif - -# ifndef __cpp_lib_invoke -# error "__cpp_lib_invoke should be defined in c++26" -# endif -# if __cpp_lib_invoke != 201411L -# error "__cpp_lib_invoke should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_invoke_r -# error "__cpp_lib_invoke_r should be defined in c++26" -# endif -# if __cpp_lib_invoke_r != 202106L -# error "__cpp_lib_invoke_r should have the value 202106L in c++26" -# endif - -# ifndef __cpp_lib_ios_noreplace -# error "__cpp_lib_ios_noreplace should be defined in c++26" -# endif -# if __cpp_lib_ios_noreplace != 202207L -# error "__cpp_lib_ios_noreplace should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_is_aggregate -# error "__cpp_lib_is_aggregate should be defined in c++26" -# endif -# if __cpp_lib_is_aggregate != 201703L -# error "__cpp_lib_is_aggregate should have the value 201703L in c++26" -# endif - -# ifndef __cpp_lib_is_constant_evaluated -# error "__cpp_lib_is_constant_evaluated should be defined in c++26" -# endif -# if __cpp_lib_is_constant_evaluated != 201811L -# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_is_final -# error "__cpp_lib_is_final should be defined in c++26" -# endif -# if __cpp_lib_is_final != 201402L -# error "__cpp_lib_is_final should have the value 201402L in c++26" -# endif - -# if __has_builtin(__builtin_is_implicit_lifetime) -# ifndef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should be defined in c++26" -# endif -# if __cpp_lib_is_implicit_lifetime != 202302L -# error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++26" -# endif -# else -# ifdef __cpp_lib_is_implicit_lifetime -# error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_is_invocable -# error "__cpp_lib_is_invocable should be defined in c++26" -# endif -# if __cpp_lib_is_invocable != 201703L -# error "__cpp_lib_is_invocable should have the value 201703L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should be defined in c++26" -# endif -# if __cpp_lib_is_layout_compatible != 201907L -# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_layout_compatible -# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_nothrow_convertible -# error "__cpp_lib_is_nothrow_convertible should be defined in c++26" -# endif -# if __cpp_lib_is_nothrow_convertible != 201806L -# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_is_null_pointer -# error "__cpp_lib_is_null_pointer should be defined in c++26" -# endif -# if __cpp_lib_is_null_pointer != 201309L -# error "__cpp_lib_is_null_pointer should have the value 201309L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should be defined in c++26" -# endif -# if __cpp_lib_is_pointer_interconvertible != 201907L -# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_pointer_interconvertible -# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_is_scoped_enum -# error "__cpp_lib_is_scoped_enum should be defined in c++26" -# endif -# if __cpp_lib_is_scoped_enum != 202011L -# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++26" -# endif - -# ifndef __cpp_lib_is_swappable -# error "__cpp_lib_is_swappable should be defined in c++26" -# endif -# if __cpp_lib_is_swappable != 201603L -# error "__cpp_lib_is_swappable should have the value 201603L in c++26" -# endif - -# if __has_builtin(__builtin_is_virtual_base_of) -# ifndef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should be defined in c++26" -# endif -# if __cpp_lib_is_virtual_base_of != 202406L -# error "__cpp_lib_is_virtual_base_of should have the value 202406L in c++26" -# endif -# else -# ifdef __cpp_lib_is_virtual_base_of -# error "__cpp_lib_is_virtual_base_of should not be defined when the requirement '__has_builtin(__builtin_is_virtual_base_of)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should be defined in c++26" -# endif -# if __cpp_lib_is_within_lifetime != 202306L -# error "__cpp_lib_is_within_lifetime should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_is_within_lifetime -# error "__cpp_lib_is_within_lifetime should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_jthread -# error "__cpp_lib_jthread should be defined in c++26" -# endif -# if __cpp_lib_jthread != 201911L -# error "__cpp_lib_jthread should have the value 201911L in c++26" -# endif -# else -# ifdef __cpp_lib_jthread -# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_latch -# error "__cpp_lib_latch should be defined in c++26" -# endif -# if __cpp_lib_latch != 201907L -# error "__cpp_lib_latch should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_latch -# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# ifndef __cpp_lib_launder -# error "__cpp_lib_launder should be defined in c++26" -# endif -# if __cpp_lib_launder != 201606L -# error "__cpp_lib_launder should have the value 201606L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_linalg -# error "__cpp_lib_linalg should be defined in c++26" -# endif -# if __cpp_lib_linalg != 202311L -# error "__cpp_lib_linalg should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_linalg -# error "__cpp_lib_linalg should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_list_remove_return_type -# error "__cpp_lib_list_remove_return_type should be defined in c++26" -# endif -# if __cpp_lib_list_remove_return_type != 201806L -# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_logical_traits -# error "__cpp_lib_logical_traits should be defined in c++26" -# endif -# if __cpp_lib_logical_traits != 201510L -# error "__cpp_lib_logical_traits should have the value 201510L in c++26" -# endif - -# ifndef __cpp_lib_make_from_tuple -# error "__cpp_lib_make_from_tuple should be defined in c++26" -# endif -# if __cpp_lib_make_from_tuple != 201606L -# error "__cpp_lib_make_from_tuple should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_make_reverse_iterator -# error "__cpp_lib_make_reverse_iterator should be defined in c++26" -# endif -# if __cpp_lib_make_reverse_iterator != 201402L -# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++26" -# endif - -# ifndef __cpp_lib_make_unique -# error "__cpp_lib_make_unique should be defined in c++26" -# endif -# if __cpp_lib_make_unique != 201304L -# error "__cpp_lib_make_unique should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_map_try_emplace -# error "__cpp_lib_map_try_emplace should be defined in c++26" -# endif -# if __cpp_lib_map_try_emplace != 201411L -# error "__cpp_lib_map_try_emplace should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_math_constants -# error "__cpp_lib_math_constants should be defined in c++26" -# endif -# if __cpp_lib_math_constants != 201907L -# error "__cpp_lib_math_constants should have the value 201907L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should be defined in c++26" -# endif -# if __cpp_lib_math_special_functions != 201603L -# error "__cpp_lib_math_special_functions should have the value 201603L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_math_special_functions -# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_mdspan -# error "__cpp_lib_mdspan should be defined in c++26" -# endif -# if __cpp_lib_mdspan != 202406L -# error "__cpp_lib_mdspan should have the value 202406L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should be defined in c++26" -# endif -# if __cpp_lib_memory_resource != 201603L -# error "__cpp_lib_memory_resource should have the value 201603L in c++26" -# endif -# else -# ifdef __cpp_lib_memory_resource -# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# ifndef __cpp_lib_modules -# error "__cpp_lib_modules should be defined in c++26" -# endif -# if __cpp_lib_modules != 202207L -# error "__cpp_lib_modules should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_move_iterator_concept -# error "__cpp_lib_move_iterator_concept should be defined in c++26" -# endif -# if __cpp_lib_move_iterator_concept != 202207L -# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should be defined in c++26" -# endif -# if __cpp_lib_move_only_function != 202110L -# error "__cpp_lib_move_only_function should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_move_only_function -# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_node_extract -# error "__cpp_lib_node_extract should be defined in c++26" -# endif -# if __cpp_lib_node_extract != 201606L -# error "__cpp_lib_node_extract should have the value 201606L in c++26" -# endif - -# ifndef __cpp_lib_nonmember_container_access -# error "__cpp_lib_nonmember_container_access should be defined in c++26" -# endif -# if __cpp_lib_nonmember_container_access != 201411L -# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_not_fn -# error "__cpp_lib_not_fn should be defined in c++26" -# endif -# if __cpp_lib_not_fn != 202306L -# error "__cpp_lib_not_fn should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_null_iterators -# error "__cpp_lib_null_iterators should be defined in c++26" -# endif -# if __cpp_lib_null_iterators != 201304L -# error "__cpp_lib_null_iterators should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_optional -# error "__cpp_lib_optional should be defined in c++26" -# endif -# if __cpp_lib_optional != 202110L -# error "__cpp_lib_optional should have the value 202110L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should be defined in c++26" -# endif -# if __cpp_lib_optional_range_support != 202406L -# error "__cpp_lib_optional_range_support should have the value 202406L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_optional_range_support -# error "__cpp_lib_optional_range_support should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_out_ptr -# error "__cpp_lib_out_ptr should be defined in c++26" -# endif -# if __cpp_lib_out_ptr != 202311L -# error "__cpp_lib_out_ptr should have the value 202311L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should be defined in c++26" -# endif -# if __cpp_lib_parallel_algorithm != 201603L -# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_parallel_algorithm -# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should be defined in c++26" -# endif -# if __cpp_lib_philox_engine != 202406L -# error "__cpp_lib_philox_engine should have the value 202406L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_philox_engine -# error "__cpp_lib_philox_engine should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR -# ifndef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should be defined in c++26" -# endif -# if __cpp_lib_polymorphic_allocator != 201902L -# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++26" -# endif -# else -# ifdef __cpp_lib_polymorphic_allocator -# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT -# ifndef __cpp_lib_print -# error "__cpp_lib_print should be defined in c++26" -# endif -# if __cpp_lib_print != 202207L -# error "__cpp_lib_print should have the value 202207L in c++26" -# endif -# else -# ifdef __cpp_lib_print -# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION -# ifndef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should be defined in c++26" -# endif -# if __cpp_lib_quoted_string_io != 201304L -# error "__cpp_lib_quoted_string_io should have the value 201304L in c++26" -# endif -# else -# ifdef __cpp_lib_quoted_string_io -# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" -# endif -# endif - -# ifndef __cpp_lib_ranges -# error "__cpp_lib_ranges should be defined in c++26" -# endif -# if __cpp_lib_ranges != 202406L -# error "__cpp_lib_ranges should have the value 202406L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should be defined in c++26" -# endif -# if __cpp_lib_ranges_as_const != 202207L -# error "__cpp_lib_ranges_as_const should have the value 202207L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_as_const -# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_as_rvalue -# error "__cpp_lib_ranges_as_rvalue should be defined in c++26" -# endif -# if __cpp_lib_ranges_as_rvalue != 202207L -# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should be defined in c++26" -# endif -# if __cpp_lib_ranges_chunk != 202202L -# error "__cpp_lib_ranges_chunk should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_chunk -# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_chunk_by -# error "__cpp_lib_ranges_chunk_by should be defined in c++26" -# endif -# if __cpp_lib_ranges_chunk_by != 202202L -# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should be defined in c++26" -# endif -# if __cpp_lib_ranges_concat != 202403L -# error "__cpp_lib_ranges_concat should have the value 202403L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_concat -# error "__cpp_lib_ranges_concat should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_contains -# error "__cpp_lib_ranges_contains should be defined in c++26" -# endif -# if __cpp_lib_ranges_contains != 202207L -# error "__cpp_lib_ranges_contains should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_ranges_find_last -# error "__cpp_lib_ranges_find_last should be defined in c++26" -# endif -# if __cpp_lib_ranges_find_last != 202207L -# error "__cpp_lib_ranges_find_last should have the value 202207L in c++26" -# endif - -# ifndef __cpp_lib_ranges_iota -# error "__cpp_lib_ranges_iota should be defined in c++26" -# endif -# if __cpp_lib_ranges_iota != 202202L -# error "__cpp_lib_ranges_iota should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should be defined in c++26" -# endif -# if __cpp_lib_ranges_join_with != 202202L -# error "__cpp_lib_ranges_join_with should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_join_with -# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_repeat -# error "__cpp_lib_ranges_repeat should be defined in c++26" -# endif -# if __cpp_lib_ranges_repeat != 202207L -# error "__cpp_lib_ranges_repeat should have the value 202207L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should be defined in c++26" -# endif -# if __cpp_lib_ranges_slide != 202202L -# error "__cpp_lib_ranges_slide should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_slide -# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ranges_starts_ends_with -# error "__cpp_lib_ranges_starts_ends_with should be defined in c++26" -# endif -# if __cpp_lib_ranges_starts_ends_with != 202106L -# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++26" -# endif - -# ifndef __cpp_lib_ranges_to_container -# error "__cpp_lib_ranges_to_container should be defined in c++26" -# endif -# if __cpp_lib_ranges_to_container != 202202L -# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should be defined in c++26" -# endif -# if __cpp_lib_ranges_zip != 202110L -# error "__cpp_lib_ranges_zip should have the value 202110L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_ranges_zip -# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ratio -# error "__cpp_lib_ratio should be defined in c++26" -# endif -# if __cpp_lib_ratio != 202306L -# error "__cpp_lib_ratio should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_raw_memory_algorithms -# error "__cpp_lib_raw_memory_algorithms should be defined in c++26" -# endif -# if __cpp_lib_raw_memory_algorithms != 201606L -# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_rcu -# error "__cpp_lib_rcu should be defined in c++26" -# endif -# if __cpp_lib_rcu != 202306L -# error "__cpp_lib_rcu should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_rcu -# error "__cpp_lib_rcu should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should be defined in c++26" -# endif -# if __cpp_lib_reference_from_temporary != 202202L -# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_reference_from_temporary -# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_reference_wrapper -# error "__cpp_lib_reference_wrapper should be defined in c++26" -# endif -# if __cpp_lib_reference_wrapper != 202403L -# error "__cpp_lib_reference_wrapper should have the value 202403L in c++26" -# endif - -# ifndef __cpp_lib_remove_cvref -# error "__cpp_lib_remove_cvref should be defined in c++26" -# endif -# if __cpp_lib_remove_cvref != 201711L -# error "__cpp_lib_remove_cvref should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_result_of_sfinae -# error "__cpp_lib_result_of_sfinae should be defined in c++26" -# endif -# if __cpp_lib_result_of_sfinae != 201210L -# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26" -# endif - -# ifndef __cpp_lib_robust_nonmodifying_seq_ops -# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++26" -# endif -# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L -# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_sample -# error "__cpp_lib_sample should be defined in c++26" -# endif -# if __cpp_lib_sample != 201603L -# error "__cpp_lib_sample should have the value 201603L in c++26" -# endif - -# ifndef __cpp_lib_saturation_arithmetic -# error "__cpp_lib_saturation_arithmetic should be defined in c++26" -# endif -# if __cpp_lib_saturation_arithmetic != 202311L -# error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should be defined in c++26" -# endif -# if __cpp_lib_scoped_lock != 201703L -# error "__cpp_lib_scoped_lock should have the value 201703L in c++26" -# endif -# else -# ifdef __cpp_lib_scoped_lock -# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) -# ifndef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should be defined in c++26" -# endif -# if __cpp_lib_semaphore != 201907L -# error "__cpp_lib_semaphore should have the value 201907L in c++26" -# endif -# else -# ifdef __cpp_lib_semaphore -# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_senders -# error "__cpp_lib_senders should be defined in c++26" -# endif -# if __cpp_lib_senders != 202406L -# error "__cpp_lib_senders should have the value 202406L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_senders -# error "__cpp_lib_senders should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should be defined in c++26" -# endif -# if __cpp_lib_shared_mutex != 201505L -# error "__cpp_lib_shared_mutex should have the value 201505L in c++26" -# endif -# else -# ifdef __cpp_lib_shared_mutex -# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifndef __cpp_lib_shared_ptr_arrays -# error "__cpp_lib_shared_ptr_arrays should be defined in c++26" -# endif -# if __cpp_lib_shared_ptr_arrays != 201707L -# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++26" -# endif - -# ifndef __cpp_lib_shared_ptr_weak_type -# error "__cpp_lib_shared_ptr_weak_type should be defined in c++26" -# endif -# if __cpp_lib_shared_ptr_weak_type != 201606L -# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS -# ifndef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should be defined in c++26" -# endif -# if __cpp_lib_shared_timed_mutex != 201402L -# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++26" -# endif -# else -# ifdef __cpp_lib_shared_timed_mutex -# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" -# endif -# endif - -# ifndef __cpp_lib_shift -# error "__cpp_lib_shift should be defined in c++26" -# endif -# if __cpp_lib_shift != 201806L -# error "__cpp_lib_shift should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_smart_ptr_for_overwrite -# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++26" -# endif -# if __cpp_lib_smart_ptr_for_overwrite != 202002L -# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should be defined in c++26" -# endif -# if __cpp_lib_smart_ptr_owner_equality != 202306L -# error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_smart_ptr_owner_equality -# error "__cpp_lib_smart_ptr_owner_equality should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_source_location -# error "__cpp_lib_source_location should be defined in c++26" -# endif -# if __cpp_lib_source_location != 201907L -# error "__cpp_lib_source_location should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_span -# error "__cpp_lib_span should be defined in c++26" -# endif -# if __cpp_lib_span != 202002L -# error "__cpp_lib_span should have the value 202002L in c++26" -# endif - -# ifndef __cpp_lib_span_at -# error "__cpp_lib_span_at should be defined in c++26" -# endif -# if __cpp_lib_span_at != 202311L -# error "__cpp_lib_span_at should have the value 202311L in c++26" -# endif - -# ifndef __cpp_lib_span_initializer_list -# error "__cpp_lib_span_initializer_list should be defined in c++26" -# endif -# if __cpp_lib_span_initializer_list != 202311L -# error "__cpp_lib_span_initializer_list should have the value 202311L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_spanstream -# error "__cpp_lib_spanstream should be defined in c++26" -# endif -# if __cpp_lib_spanstream != 202106L -# error "__cpp_lib_spanstream should have the value 202106L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_spanstream -# error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_ssize -# error "__cpp_lib_ssize should be defined in c++26" -# endif -# if __cpp_lib_ssize != 201902L -# error "__cpp_lib_ssize should have the value 201902L in c++26" -# endif - -# ifndef __cpp_lib_sstream_from_string_view -# error "__cpp_lib_sstream_from_string_view should be defined in c++26" -# endif -# if __cpp_lib_sstream_from_string_view != 202306L -# error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_stacktrace -# error "__cpp_lib_stacktrace should be defined in c++26" -# endif -# if __cpp_lib_stacktrace != 202011L -# error "__cpp_lib_stacktrace should have the value 202011L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_stacktrace -# error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_starts_ends_with -# error "__cpp_lib_starts_ends_with should be defined in c++26" -# endif -# if __cpp_lib_starts_ends_with != 201711L -# error "__cpp_lib_starts_ends_with should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_stdatomic_h -# error "__cpp_lib_stdatomic_h should be defined in c++26" -# endif -# if __cpp_lib_stdatomic_h != 202011L -# error "__cpp_lib_stdatomic_h should have the value 202011L in c++26" -# endif - -# ifndef __cpp_lib_string_contains -# error "__cpp_lib_string_contains should be defined in c++26" -# endif -# if __cpp_lib_string_contains != 202011L -# error "__cpp_lib_string_contains should have the value 202011L in c++26" -# endif - -# ifndef __cpp_lib_string_resize_and_overwrite -# error "__cpp_lib_string_resize_and_overwrite should be defined in c++26" -# endif -# if __cpp_lib_string_resize_and_overwrite != 202110L -# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++26" -# endif - -# ifndef __cpp_lib_string_udls -# error "__cpp_lib_string_udls should be defined in c++26" -# endif -# if __cpp_lib_string_udls != 201304L -# error "__cpp_lib_string_udls should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_string_view -# error "__cpp_lib_string_view should be defined in c++26" -# endif -# if __cpp_lib_string_view != 202403L -# error "__cpp_lib_string_view should have the value 202403L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should be defined in c++26" -# endif -# if __cpp_lib_submdspan != 202306L -# error "__cpp_lib_submdspan should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_submdspan -# error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM -# ifndef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should be defined in c++26" -# endif -# if __cpp_lib_syncbuf != 201803L -# error "__cpp_lib_syncbuf should have the value 201803L in c++26" -# endif -# else -# ifdef __cpp_lib_syncbuf -# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_text_encoding -# error "__cpp_lib_text_encoding should be defined in c++26" -# endif -# if __cpp_lib_text_encoding != 202306L -# error "__cpp_lib_text_encoding should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_text_encoding -# error "__cpp_lib_text_encoding should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_three_way_comparison -# error "__cpp_lib_three_way_comparison should be defined in c++26" -# endif -# if __cpp_lib_three_way_comparison != 201907L -# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26" -# endif - -# ifndef __cpp_lib_to_address -# error "__cpp_lib_to_address should be defined in c++26" -# endif -# if __cpp_lib_to_address != 201711L -# error "__cpp_lib_to_address should have the value 201711L in c++26" -# endif - -# ifndef __cpp_lib_to_array -# error "__cpp_lib_to_array should be defined in c++26" -# endif -# if __cpp_lib_to_array != 201907L -# error "__cpp_lib_to_array should have the value 201907L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should be defined in c++26" -# endif -# if __cpp_lib_to_chars != 202306L -# error "__cpp_lib_to_chars should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_chars -# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_to_string -# error "__cpp_lib_to_string should be defined in c++26" -# endif -# if __cpp_lib_to_string != 202306L -# error "__cpp_lib_to_string should have the value 202306L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_to_string -# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_to_underlying -# error "__cpp_lib_to_underlying should be defined in c++26" -# endif -# if __cpp_lib_to_underlying != 202102L -# error "__cpp_lib_to_underlying should have the value 202102L in c++26" -# endif - -# ifndef __cpp_lib_transformation_trait_aliases -# error "__cpp_lib_transformation_trait_aliases should be defined in c++26" -# endif -# if __cpp_lib_transformation_trait_aliases != 201304L -# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_transparent_operators -# error "__cpp_lib_transparent_operators should be defined in c++26" -# endif -# if __cpp_lib_transparent_operators != 201510L -# error "__cpp_lib_transparent_operators should have the value 201510L in c++26" -# endif - -# ifndef __cpp_lib_tuple_element_t -# error "__cpp_lib_tuple_element_t should be defined in c++26" -# endif -# if __cpp_lib_tuple_element_t != 201402L -# error "__cpp_lib_tuple_element_t should have the value 201402L in c++26" -# endif - -# if !defined(_LIBCPP_VERSION) -# ifndef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should be defined in c++26" -# endif -# if __cpp_lib_tuple_like != 202311L -# error "__cpp_lib_tuple_like should have the value 202311L in c++26" -# endif -# else // _LIBCPP_VERSION -# ifdef __cpp_lib_tuple_like -# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" -# endif -# endif - -# ifndef __cpp_lib_tuples_by_type -# error "__cpp_lib_tuples_by_type should be defined in c++26" -# endif -# if __cpp_lib_tuples_by_type != 201304L -# error "__cpp_lib_tuples_by_type should have the value 201304L in c++26" -# endif - -# ifndef __cpp_lib_type_identity -# error "__cpp_lib_type_identity should be defined in c++26" -# endif -# if __cpp_lib_type_identity != 201806L -# error "__cpp_lib_type_identity should have the value 201806L in c++26" -# endif - -# ifndef __cpp_lib_type_trait_variable_templates -# error "__cpp_lib_type_trait_variable_templates should be defined in c++26" -# endif -# if __cpp_lib_type_trait_variable_templates != 201510L -# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++26" -# endif - -# ifndef __cpp_lib_uncaught_exceptions -# error "__cpp_lib_uncaught_exceptions should be defined in c++26" -# endif -# if __cpp_lib_uncaught_exceptions != 201411L -# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_unordered_map_try_emplace -# error "__cpp_lib_unordered_map_try_emplace should be defined in c++26" -# endif -# if __cpp_lib_unordered_map_try_emplace != 201411L -# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++26" -# endif - -# ifndef __cpp_lib_unreachable -# error "__cpp_lib_unreachable should be defined in c++26" -# endif -# if __cpp_lib_unreachable != 202202L -# error "__cpp_lib_unreachable should have the value 202202L in c++26" -# endif - -# ifndef __cpp_lib_unwrap_ref -# error "__cpp_lib_unwrap_ref should be defined in c++26" -# endif -# if __cpp_lib_unwrap_ref != 201811L -# error "__cpp_lib_unwrap_ref should have the value 201811L in c++26" -# endif - -# ifndef __cpp_lib_variant -# error "__cpp_lib_variant should be defined in c++26" -# endif -# if __cpp_lib_variant != 202306L -# error "__cpp_lib_variant should have the value 202306L in c++26" -# endif - -# ifndef __cpp_lib_void_t -# error "__cpp_lib_void_t should be defined in c++26" -# endif -# if __cpp_lib_void_t != 201411L -# error "__cpp_lib_void_t should have the value 201411L in c++26" -# endif +# ifndef __cpp_lib_adaptor_iterator_pair_constructor +# error "__cpp_lib_adaptor_iterator_pair_constructor should be defined in c++26" +# endif +# if __cpp_lib_adaptor_iterator_pair_constructor != 202106L +# error "__cpp_lib_adaptor_iterator_pair_constructor should have the value 202106L in c++26" +# endif + +# ifndef __cpp_lib_addressof_constexpr +# error "__cpp_lib_addressof_constexpr should be defined in c++26" +# endif +# if __cpp_lib_addressof_constexpr != 201603L +# error "__cpp_lib_addressof_constexpr should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_allocate_at_least +# error "__cpp_lib_allocate_at_least should be defined in c++26" +# endif +# if __cpp_lib_allocate_at_least != 202302L +# error "__cpp_lib_allocate_at_least should have the value 202302L in c++26" +# endif + +# ifndef __cpp_lib_allocator_traits_is_always_equal +# error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" +# endif +# if __cpp_lib_allocator_traits_is_always_equal != 201411L +# error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_any +# error "__cpp_lib_any should be defined in c++26" +# endif +# if __cpp_lib_any != 201606L +# error "__cpp_lib_any should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_apply +# error "__cpp_lib_apply should be defined in c++26" +# endif +# if __cpp_lib_apply != 201603L +# error "__cpp_lib_apply should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_array_constexpr +# error "__cpp_lib_array_constexpr should be defined in c++26" +# endif +# if __cpp_lib_array_constexpr != 201811L +# error "__cpp_lib_array_constexpr should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_as_const +# error "__cpp_lib_as_const should be defined in c++26" +# endif +# if __cpp_lib_as_const != 201510L +# error "__cpp_lib_as_const should have the value 201510L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_erasure != 202110L +# error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_erasure +# error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26" +# endif +# if __cpp_lib_associative_heterogeneous_insertion != 202306L +# error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_associative_heterogeneous_insertion +# error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_assume_aligned +# error "__cpp_lib_assume_aligned should be defined in c++26" +# endif +# if __cpp_lib_assume_aligned != 201811L +# error "__cpp_lib_assume_aligned should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_atomic_flag_test +# error "__cpp_lib_atomic_flag_test should be defined in c++26" +# endif +# if __cpp_lib_atomic_flag_test != 201907L +# error "__cpp_lib_atomic_flag_test should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_atomic_float +# error "__cpp_lib_atomic_float should be defined in c++26" +# endif +# if __cpp_lib_atomic_float != 201711L +# error "__cpp_lib_atomic_float should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_atomic_is_always_lock_free +# error "__cpp_lib_atomic_is_always_lock_free should be defined in c++26" +# endif +# if __cpp_lib_atomic_is_always_lock_free != 201603L +# error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_atomic_lock_free_type_aliases +# error "__cpp_lib_atomic_lock_free_type_aliases should be defined in c++26" +# endif +# if __cpp_lib_atomic_lock_free_type_aliases != 201907L +# error "__cpp_lib_atomic_lock_free_type_aliases should have the value 201907L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should be defined in c++26" +# endif +# if __cpp_lib_atomic_min_max != 202403L +# error "__cpp_lib_atomic_min_max should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_atomic_min_max +# error "__cpp_lib_atomic_min_max should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_atomic_ref +# error "__cpp_lib_atomic_ref should be defined in c++26" +# endif +# if __cpp_lib_atomic_ref != 201806L +# error "__cpp_lib_atomic_ref should have the value 201806L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should be defined in c++26" +# endif +# if __cpp_lib_atomic_shared_ptr != 201711L +# error "__cpp_lib_atomic_shared_ptr should have the value 201711L in c++26" +# endif +# else +# ifdef __cpp_lib_atomic_shared_ptr +# error "__cpp_lib_atomic_shared_ptr should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_atomic_value_initialization +# error "__cpp_lib_atomic_value_initialization should be defined in c++26" +# endif +# if __cpp_lib_atomic_value_initialization != 201911L +# error "__cpp_lib_atomic_value_initialization should have the value 201911L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC +# ifndef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should be defined in c++26" +# endif +# if __cpp_lib_atomic_wait != 201907L +# error "__cpp_lib_atomic_wait should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_atomic_wait +# error "__cpp_lib_atomic_wait should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_SYNC' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_barrier +# error "__cpp_lib_barrier should be defined in c++26" +# endif +# if __cpp_lib_barrier != 201907L +# error "__cpp_lib_barrier should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_barrier +# error "__cpp_lib_barrier should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_bind_back +# error "__cpp_lib_bind_back should be defined in c++26" +# endif +# if __cpp_lib_bind_back != 202202L +# error "__cpp_lib_bind_back should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_bind_front +# error "__cpp_lib_bind_front should be defined in c++26" +# endif +# if __cpp_lib_bind_front != 202306L +# error "__cpp_lib_bind_front should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_bit_cast +# error "__cpp_lib_bit_cast should be defined in c++26" +# endif +# if __cpp_lib_bit_cast != 201806L +# error "__cpp_lib_bit_cast should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_bitops +# error "__cpp_lib_bitops should be defined in c++26" +# endif +# if __cpp_lib_bitops != 201907L +# error "__cpp_lib_bitops should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_bitset +# error "__cpp_lib_bitset should be defined in c++26" +# endif +# if __cpp_lib_bitset != 202306L +# error "__cpp_lib_bitset should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_bool_constant +# error "__cpp_lib_bool_constant should be defined in c++26" +# endif +# if __cpp_lib_bool_constant != 201505L +# error "__cpp_lib_bool_constant should have the value 201505L in c++26" +# endif + +# ifndef __cpp_lib_bounded_array_traits +# error "__cpp_lib_bounded_array_traits should be defined in c++26" +# endif +# if __cpp_lib_bounded_array_traits != 201902L +# error "__cpp_lib_bounded_array_traits should have the value 201902L in c++26" +# endif + +# ifndef __cpp_lib_boyer_moore_searcher +# error "__cpp_lib_boyer_moore_searcher should be defined in c++26" +# endif +# if __cpp_lib_boyer_moore_searcher != 201603L +# error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_byte +# error "__cpp_lib_byte should be defined in c++26" +# endif +# if __cpp_lib_byte != 201603L +# error "__cpp_lib_byte should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_byteswap +# error "__cpp_lib_byteswap should be defined in c++26" +# endif +# if __cpp_lib_byteswap != 202110L +# error "__cpp_lib_byteswap should have the value 202110L in c++26" +# endif + +# if defined(__cpp_char8_t) +# ifndef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should be defined in c++26" +# endif +# if __cpp_lib_char8_t != 201907L +# error "__cpp_lib_char8_t should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_char8_t +# error "__cpp_lib_char8_t should not be defined when the requirement 'defined(__cpp_char8_t)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_chrono +# error "__cpp_lib_chrono should be defined in c++26" +# endif +# if __cpp_lib_chrono != 201611L +# error "__cpp_lib_chrono should have the value 201611L in c++26" +# endif + +# ifndef __cpp_lib_chrono_udls +# error "__cpp_lib_chrono_udls should be defined in c++26" +# endif +# if __cpp_lib_chrono_udls != 201304L +# error "__cpp_lib_chrono_udls should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_clamp +# error "__cpp_lib_clamp should be defined in c++26" +# endif +# if __cpp_lib_clamp != 201603L +# error "__cpp_lib_clamp should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_complex_udls +# error "__cpp_lib_complex_udls should be defined in c++26" +# endif +# if __cpp_lib_complex_udls != 201309L +# error "__cpp_lib_complex_udls should have the value 201309L in c++26" +# endif + +# ifndef __cpp_lib_concepts +# error "__cpp_lib_concepts should be defined in c++26" +# endif +# if __cpp_lib_concepts != 202002L +# error "__cpp_lib_concepts should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_algorithms +# error "__cpp_lib_constexpr_algorithms should be defined in c++26" +# endif +# if __cpp_lib_constexpr_algorithms != 202306L +# error "__cpp_lib_constexpr_algorithms should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_bitset +# error "__cpp_lib_constexpr_bitset should be defined in c++26" +# endif +# if __cpp_lib_constexpr_bitset != 202207L +# error "__cpp_lib_constexpr_bitset should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_charconv +# error "__cpp_lib_constexpr_charconv should be defined in c++26" +# endif +# if __cpp_lib_constexpr_charconv != 202207L +# error "__cpp_lib_constexpr_charconv should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should be defined in c++26" +# endif +# if __cpp_lib_constexpr_cmath != 202202L +# error "__cpp_lib_constexpr_cmath should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_constexpr_cmath +# error "__cpp_lib_constexpr_cmath should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_complex +# error "__cpp_lib_constexpr_complex should be defined in c++26" +# endif +# if __cpp_lib_constexpr_complex != 201711L +# error "__cpp_lib_constexpr_complex should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_dynamic_alloc +# error "__cpp_lib_constexpr_dynamic_alloc should be defined in c++26" +# endif +# if __cpp_lib_constexpr_dynamic_alloc != 201907L +# error "__cpp_lib_constexpr_dynamic_alloc should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_functional +# error "__cpp_lib_constexpr_functional should be defined in c++26" +# endif +# if __cpp_lib_constexpr_functional != 201907L +# error "__cpp_lib_constexpr_functional should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_iterator +# error "__cpp_lib_constexpr_iterator should be defined in c++26" +# endif +# if __cpp_lib_constexpr_iterator != 201811L +# error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_memory +# error "__cpp_lib_constexpr_memory should be defined in c++26" +# endif +# if __cpp_lib_constexpr_memory != 202202L +# error "__cpp_lib_constexpr_memory should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_ABI_VCRUNTIME) +# ifndef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should be defined in c++26" +# endif +# if __cpp_lib_constexpr_new != 202406L +# error "__cpp_lib_constexpr_new should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_constexpr_new +# error "__cpp_lib_constexpr_new should not be defined when the requirement '!defined(_LIBCPP_ABI_VCRUNTIME)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_constexpr_numeric +# error "__cpp_lib_constexpr_numeric should be defined in c++26" +# endif +# if __cpp_lib_constexpr_numeric != 201911L +# error "__cpp_lib_constexpr_numeric should have the value 201911L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_string +# error "__cpp_lib_constexpr_string should be defined in c++26" +# endif +# if __cpp_lib_constexpr_string != 201907L +# error "__cpp_lib_constexpr_string should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_string_view +# error "__cpp_lib_constexpr_string_view should be defined in c++26" +# endif +# if __cpp_lib_constexpr_string_view != 201811L +# error "__cpp_lib_constexpr_string_view should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_tuple +# error "__cpp_lib_constexpr_tuple should be defined in c++26" +# endif +# if __cpp_lib_constexpr_tuple != 201811L +# error "__cpp_lib_constexpr_tuple should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_typeinfo +# error "__cpp_lib_constexpr_typeinfo should be defined in c++26" +# endif +# if __cpp_lib_constexpr_typeinfo != 202106L +# error "__cpp_lib_constexpr_typeinfo should have the value 202106L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_utility +# error "__cpp_lib_constexpr_utility should be defined in c++26" +# endif +# if __cpp_lib_constexpr_utility != 201811L +# error "__cpp_lib_constexpr_utility should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_constexpr_vector +# error "__cpp_lib_constexpr_vector should be defined in c++26" +# endif +# if __cpp_lib_constexpr_vector != 201907L +# error "__cpp_lib_constexpr_vector should have the value 201907L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should be defined in c++26" +# endif +# if __cpp_lib_constrained_equality != 202403L +# error "__cpp_lib_constrained_equality should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_constrained_equality +# error "__cpp_lib_constrained_equality should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_containers_ranges +# error "__cpp_lib_containers_ranges should be defined in c++26" +# endif +# if __cpp_lib_containers_ranges != 202202L +# error "__cpp_lib_containers_ranges should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should be defined in c++26" +# endif +# if __cpp_lib_copyable_function != 202306L +# error "__cpp_lib_copyable_function should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_copyable_function +# error "__cpp_lib_copyable_function should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_coroutine +# error "__cpp_lib_coroutine should be defined in c++26" +# endif +# if __cpp_lib_coroutine != 201902L +# error "__cpp_lib_coroutine should have the value 201902L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_debugging +# error "__cpp_lib_debugging should be defined in c++26" +# endif +# if __cpp_lib_debugging != 202311L +# error "__cpp_lib_debugging should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_debugging +# error "__cpp_lib_debugging should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" +# endif +# if __cpp_lib_default_template_type_for_algorithm_values != 202403L +# error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_default_template_type_for_algorithm_values +# error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L +# ifndef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should be defined in c++26" +# endif +# if __cpp_lib_destroying_delete != 201806L +# error "__cpp_lib_destroying_delete should have the value 201806L in c++26" +# endif +# else +# ifdef __cpp_lib_destroying_delete +# error "__cpp_lib_destroying_delete should not be defined when the requirement 'TEST_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L' is not met!" +# endif +# endif + +# ifndef __cpp_lib_enable_shared_from_this +# error "__cpp_lib_enable_shared_from_this should be defined in c++26" +# endif +# if __cpp_lib_enable_shared_from_this != 201603L +# error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_endian +# error "__cpp_lib_endian should be defined in c++26" +# endif +# if __cpp_lib_endian != 201907L +# error "__cpp_lib_endian should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_erase_if +# error "__cpp_lib_erase_if should be defined in c++26" +# endif +# if __cpp_lib_erase_if != 202002L +# error "__cpp_lib_erase_if should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_exchange_function +# error "__cpp_lib_exchange_function should be defined in c++26" +# endif +# if __cpp_lib_exchange_function != 201304L +# error "__cpp_lib_exchange_function should have the value 201304L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_execution +# error "__cpp_lib_execution should be defined in c++26" +# endif +# if __cpp_lib_execution != 201902L +# error "__cpp_lib_execution should have the value 201902L in c++26" +# endif +# else +# ifdef __cpp_lib_execution +# error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_expected +# error "__cpp_lib_expected should be defined in c++26" +# endif +# if __cpp_lib_expected != 202211L +# error "__cpp_lib_expected should have the value 202211L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY) +# ifndef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should be defined in c++26" +# endif +# if __cpp_lib_filesystem != 201703L +# error "__cpp_lib_filesystem should have the value 201703L in c++26" +# endif +# else +# ifdef __cpp_lib_filesystem +# error "__cpp_lib_filesystem should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_AVAILABILITY_HAS_FILESYSTEM_LIBRARY)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_flat_map +# error "__cpp_lib_flat_map should be defined in c++26" +# endif +# if __cpp_lib_flat_map != 202207L +# error "__cpp_lib_flat_map should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_flat_set +# error "__cpp_lib_flat_set should be defined in c++26" +# endif +# if __cpp_lib_flat_set != 202207L +# error "__cpp_lib_flat_set should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_format +# error "__cpp_lib_format should be defined in c++26" +# endif +# if __cpp_lib_format != 202110L +# error "__cpp_lib_format should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_format +# error "__cpp_lib_format should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_format_path +# error "__cpp_lib_format_path should be defined in c++26" +# endif +# if __cpp_lib_format_path != 202403L +# error "__cpp_lib_format_path should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_format_path +# error "__cpp_lib_format_path should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_format_ranges +# error "__cpp_lib_format_ranges should be defined in c++26" +# endif +# if __cpp_lib_format_ranges != 202207L +# error "__cpp_lib_format_ranges should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_format_uchar +# error "__cpp_lib_format_uchar should be defined in c++26" +# endif +# if __cpp_lib_format_uchar != 202311L +# error "__cpp_lib_format_uchar should have the value 202311L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_formatters +# error "__cpp_lib_formatters should be defined in c++26" +# endif +# if __cpp_lib_formatters != 202302L +# error "__cpp_lib_formatters should have the value 202302L in c++26" +# endif +# else +# ifdef __cpp_lib_formatters +# error "__cpp_lib_formatters should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_forward_like +# error "__cpp_lib_forward_like should be defined in c++26" +# endif +# if __cpp_lib_forward_like != 202207L +# error "__cpp_lib_forward_like should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should be defined in c++26" +# endif +# if __cpp_lib_freestanding_algorithm != 202311L +# error "__cpp_lib_freestanding_algorithm should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_algorithm +# error "__cpp_lib_freestanding_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should be defined in c++26" +# endif +# if __cpp_lib_freestanding_array != 202311L +# error "__cpp_lib_freestanding_array should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_array +# error "__cpp_lib_freestanding_array should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should be defined in c++26" +# endif +# if __cpp_lib_freestanding_cstring != 202306L +# error "__cpp_lib_freestanding_cstring should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_cstring +# error "__cpp_lib_freestanding_cstring should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should be defined in c++26" +# endif +# if __cpp_lib_freestanding_expected != 202311L +# error "__cpp_lib_freestanding_expected should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_expected +# error "__cpp_lib_freestanding_expected should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should be defined in c++26" +# endif +# if __cpp_lib_freestanding_mdspan != 202311L +# error "__cpp_lib_freestanding_mdspan should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_mdspan +# error "__cpp_lib_freestanding_mdspan should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should be defined in c++26" +# endif +# if __cpp_lib_freestanding_optional != 202311L +# error "__cpp_lib_freestanding_optional should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_optional +# error "__cpp_lib_freestanding_optional should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should be defined in c++26" +# endif +# if __cpp_lib_freestanding_string_view != 202311L +# error "__cpp_lib_freestanding_string_view should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_string_view +# error "__cpp_lib_freestanding_string_view should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should be defined in c++26" +# endif +# if __cpp_lib_freestanding_variant != 202311L +# error "__cpp_lib_freestanding_variant should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_freestanding_variant +# error "__cpp_lib_freestanding_variant should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION) +# ifndef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should be defined in c++26" +# endif +# if __cpp_lib_fstream_native_handle != 202306L +# error "__cpp_lib_fstream_native_handle should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_fstream_native_handle +# error "__cpp_lib_fstream_native_handle should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_FILESYSTEM && _LIBCPP_HAS_LOCALIZATION)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should be defined in c++26" +# endif +# if __cpp_lib_function_ref != 202306L +# error "__cpp_lib_function_ref should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_function_ref +# error "__cpp_lib_function_ref should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_gcd_lcm +# error "__cpp_lib_gcd_lcm should be defined in c++26" +# endif +# if __cpp_lib_gcd_lcm != 201606L +# error "__cpp_lib_gcd_lcm should have the value 201606L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should be defined in c++26" +# endif +# if __cpp_lib_generate_random != 202403L +# error "__cpp_lib_generate_random should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_generate_random +# error "__cpp_lib_generate_random should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_generic_associative_lookup +# error "__cpp_lib_generic_associative_lookup should be defined in c++26" +# endif +# if __cpp_lib_generic_associative_lookup != 201304L +# error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_generic_unordered_lookup +# error "__cpp_lib_generic_unordered_lookup should be defined in c++26" +# endif +# if __cpp_lib_generic_unordered_lookup != 201811L +# error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE)) +# ifndef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should be defined in c++26" +# endif +# if __cpp_lib_hardware_interference_size != 201703L +# error "__cpp_lib_hardware_interference_size should have the value 201703L in c++26" +# endif +# else +# ifdef __cpp_lib_hardware_interference_size +# error "__cpp_lib_hardware_interference_size should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (defined(__GCC_DESTRUCTIVE_SIZE) && defined(__GCC_CONSTRUCTIVE_SIZE))' is not met!" +# endif +# endif + +# ifndef __cpp_lib_has_unique_object_representations +# error "__cpp_lib_has_unique_object_representations should be defined in c++26" +# endif +# if __cpp_lib_has_unique_object_representations != 201606L +# error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_hazard_pointer +# error "__cpp_lib_hazard_pointer should be defined in c++26" +# endif +# if __cpp_lib_hazard_pointer != 202306L +# error "__cpp_lib_hazard_pointer should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_hazard_pointer +# error "__cpp_lib_hazard_pointer should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_hypot +# error "__cpp_lib_hypot should be defined in c++26" +# endif +# if __cpp_lib_hypot != 201603L +# error "__cpp_lib_hypot should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_incomplete_container_elements +# error "__cpp_lib_incomplete_container_elements should be defined in c++26" +# endif +# if __cpp_lib_incomplete_container_elements != 201505L +# error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_inplace_vector +# error "__cpp_lib_inplace_vector should be defined in c++26" +# endif +# if __cpp_lib_inplace_vector != 202406L +# error "__cpp_lib_inplace_vector should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_inplace_vector +# error "__cpp_lib_inplace_vector should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_int_pow2 +# error "__cpp_lib_int_pow2 should be defined in c++26" +# endif +# if __cpp_lib_int_pow2 != 202002L +# error "__cpp_lib_int_pow2 should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_integer_comparison_functions +# error "__cpp_lib_integer_comparison_functions should be defined in c++26" +# endif +# if __cpp_lib_integer_comparison_functions != 202002L +# error "__cpp_lib_integer_comparison_functions should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_integer_sequence +# error "__cpp_lib_integer_sequence should be defined in c++26" +# endif +# if __cpp_lib_integer_sequence != 201304L +# error "__cpp_lib_integer_sequence should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_integral_constant_callable +# error "__cpp_lib_integral_constant_callable should be defined in c++26" +# endif +# if __cpp_lib_integral_constant_callable != 201304L +# error "__cpp_lib_integral_constant_callable should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_interpolate +# error "__cpp_lib_interpolate should be defined in c++26" +# endif +# if __cpp_lib_interpolate != 201902L +# error "__cpp_lib_interpolate should have the value 201902L in c++26" +# endif + +# ifndef __cpp_lib_invoke +# error "__cpp_lib_invoke should be defined in c++26" +# endif +# if __cpp_lib_invoke != 201411L +# error "__cpp_lib_invoke should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_invoke_r +# error "__cpp_lib_invoke_r should be defined in c++26" +# endif +# if __cpp_lib_invoke_r != 202106L +# error "__cpp_lib_invoke_r should have the value 202106L in c++26" +# endif + +# ifndef __cpp_lib_ios_noreplace +# error "__cpp_lib_ios_noreplace should be defined in c++26" +# endif +# if __cpp_lib_ios_noreplace != 202207L +# error "__cpp_lib_ios_noreplace should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_is_aggregate +# error "__cpp_lib_is_aggregate should be defined in c++26" +# endif +# if __cpp_lib_is_aggregate != 201703L +# error "__cpp_lib_is_aggregate should have the value 201703L in c++26" +# endif + +# ifndef __cpp_lib_is_constant_evaluated +# error "__cpp_lib_is_constant_evaluated should be defined in c++26" +# endif +# if __cpp_lib_is_constant_evaluated != 201811L +# error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_is_final +# error "__cpp_lib_is_final should be defined in c++26" +# endif +# if __cpp_lib_is_final != 201402L +# error "__cpp_lib_is_final should have the value 201402L in c++26" +# endif + +# if __has_builtin(__builtin_is_implicit_lifetime) +# ifndef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should be defined in c++26" +# endif +# if __cpp_lib_is_implicit_lifetime != 202302L +# error "__cpp_lib_is_implicit_lifetime should have the value 202302L in c++26" +# endif +# else +# ifdef __cpp_lib_is_implicit_lifetime +# error "__cpp_lib_is_implicit_lifetime should not be defined when the requirement '__has_builtin(__builtin_is_implicit_lifetime)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_is_invocable +# error "__cpp_lib_is_invocable should be defined in c++26" +# endif +# if __cpp_lib_is_invocable != 201703L +# error "__cpp_lib_is_invocable should have the value 201703L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should be defined in c++26" +# endif +# if __cpp_lib_is_layout_compatible != 201907L +# error "__cpp_lib_is_layout_compatible should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_is_layout_compatible +# error "__cpp_lib_is_layout_compatible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_nothrow_convertible +# error "__cpp_lib_is_nothrow_convertible should be defined in c++26" +# endif +# if __cpp_lib_is_nothrow_convertible != 201806L +# error "__cpp_lib_is_nothrow_convertible should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_is_null_pointer +# error "__cpp_lib_is_null_pointer should be defined in c++26" +# endif +# if __cpp_lib_is_null_pointer != 201309L +# error "__cpp_lib_is_null_pointer should have the value 201309L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should be defined in c++26" +# endif +# if __cpp_lib_is_pointer_interconvertible != 201907L +# error "__cpp_lib_is_pointer_interconvertible should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_is_pointer_interconvertible +# error "__cpp_lib_is_pointer_interconvertible should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_is_scoped_enum +# error "__cpp_lib_is_scoped_enum should be defined in c++26" +# endif +# if __cpp_lib_is_scoped_enum != 202011L +# error "__cpp_lib_is_scoped_enum should have the value 202011L in c++26" +# endif + +# ifndef __cpp_lib_is_swappable +# error "__cpp_lib_is_swappable should be defined in c++26" +# endif +# if __cpp_lib_is_swappable != 201603L +# error "__cpp_lib_is_swappable should have the value 201603L in c++26" +# endif + +# if __has_builtin(__builtin_is_virtual_base_of) +# ifndef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should be defined in c++26" +# endif +# if __cpp_lib_is_virtual_base_of != 202406L +# error "__cpp_lib_is_virtual_base_of should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_is_virtual_base_of +# error "__cpp_lib_is_virtual_base_of should not be defined when the requirement '__has_builtin(__builtin_is_virtual_base_of)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should be defined in c++26" +# endif +# if __cpp_lib_is_within_lifetime != 202306L +# error "__cpp_lib_is_within_lifetime should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_is_within_lifetime +# error "__cpp_lib_is_within_lifetime should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_jthread +# error "__cpp_lib_jthread should be defined in c++26" +# endif +# if __cpp_lib_jthread != 201911L +# error "__cpp_lib_jthread should have the value 201911L in c++26" +# endif +# else +# ifdef __cpp_lib_jthread +# error "__cpp_lib_jthread should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_latch +# error "__cpp_lib_latch should be defined in c++26" +# endif +# if __cpp_lib_latch != 201907L +# error "__cpp_lib_latch should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_latch +# error "__cpp_lib_latch should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# ifndef __cpp_lib_launder +# error "__cpp_lib_launder should be defined in c++26" +# endif +# if __cpp_lib_launder != 201606L +# error "__cpp_lib_launder should have the value 201606L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_linalg +# error "__cpp_lib_linalg should be defined in c++26" +# endif +# if __cpp_lib_linalg != 202311L +# error "__cpp_lib_linalg should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_linalg +# error "__cpp_lib_linalg should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_list_remove_return_type +# error "__cpp_lib_list_remove_return_type should be defined in c++26" +# endif +# if __cpp_lib_list_remove_return_type != 201806L +# error "__cpp_lib_list_remove_return_type should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_logical_traits +# error "__cpp_lib_logical_traits should be defined in c++26" +# endif +# if __cpp_lib_logical_traits != 201510L +# error "__cpp_lib_logical_traits should have the value 201510L in c++26" +# endif + +# ifndef __cpp_lib_make_from_tuple +# error "__cpp_lib_make_from_tuple should be defined in c++26" +# endif +# if __cpp_lib_make_from_tuple != 201606L +# error "__cpp_lib_make_from_tuple should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_make_reverse_iterator +# error "__cpp_lib_make_reverse_iterator should be defined in c++26" +# endif +# if __cpp_lib_make_reverse_iterator != 201402L +# error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++26" +# endif + +# ifndef __cpp_lib_make_unique +# error "__cpp_lib_make_unique should be defined in c++26" +# endif +# if __cpp_lib_make_unique != 201304L +# error "__cpp_lib_make_unique should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_map_try_emplace +# error "__cpp_lib_map_try_emplace should be defined in c++26" +# endif +# if __cpp_lib_map_try_emplace != 201411L +# error "__cpp_lib_map_try_emplace should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_math_constants +# error "__cpp_lib_math_constants should be defined in c++26" +# endif +# if __cpp_lib_math_constants != 201907L +# error "__cpp_lib_math_constants should have the value 201907L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should be defined in c++26" +# endif +# if __cpp_lib_math_special_functions != 201603L +# error "__cpp_lib_math_special_functions should have the value 201603L in c++26" +# endif +# else +# ifdef __cpp_lib_math_special_functions +# error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_mdspan +# error "__cpp_lib_mdspan should be defined in c++26" +# endif +# if __cpp_lib_mdspan != 202406L +# error "__cpp_lib_mdspan should have the value 202406L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should be defined in c++26" +# endif +# if __cpp_lib_memory_resource != 201603L +# error "__cpp_lib_memory_resource should have the value 201603L in c++26" +# endif +# else +# ifdef __cpp_lib_memory_resource +# error "__cpp_lib_memory_resource should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# ifndef __cpp_lib_modules +# error "__cpp_lib_modules should be defined in c++26" +# endif +# if __cpp_lib_modules != 202207L +# error "__cpp_lib_modules should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_move_iterator_concept +# error "__cpp_lib_move_iterator_concept should be defined in c++26" +# endif +# if __cpp_lib_move_iterator_concept != 202207L +# error "__cpp_lib_move_iterator_concept should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should be defined in c++26" +# endif +# if __cpp_lib_move_only_function != 202110L +# error "__cpp_lib_move_only_function should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_move_only_function +# error "__cpp_lib_move_only_function should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_node_extract +# error "__cpp_lib_node_extract should be defined in c++26" +# endif +# if __cpp_lib_node_extract != 201606L +# error "__cpp_lib_node_extract should have the value 201606L in c++26" +# endif + +# ifndef __cpp_lib_nonmember_container_access +# error "__cpp_lib_nonmember_container_access should be defined in c++26" +# endif +# if __cpp_lib_nonmember_container_access != 201411L +# error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_not_fn +# error "__cpp_lib_not_fn should be defined in c++26" +# endif +# if __cpp_lib_not_fn != 202306L +# error "__cpp_lib_not_fn should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_null_iterators +# error "__cpp_lib_null_iterators should be defined in c++26" +# endif +# if __cpp_lib_null_iterators != 201304L +# error "__cpp_lib_null_iterators should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_optional +# error "__cpp_lib_optional should be defined in c++26" +# endif +# if __cpp_lib_optional != 202110L +# error "__cpp_lib_optional should have the value 202110L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should be defined in c++26" +# endif +# if __cpp_lib_optional_range_support != 202406L +# error "__cpp_lib_optional_range_support should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_optional_range_support +# error "__cpp_lib_optional_range_support should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_out_ptr +# error "__cpp_lib_out_ptr should be defined in c++26" +# endif +# if __cpp_lib_out_ptr != 202311L +# error "__cpp_lib_out_ptr should have the value 202311L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should be defined in c++26" +# endif +# if __cpp_lib_parallel_algorithm != 201603L +# error "__cpp_lib_parallel_algorithm should have the value 201603L in c++26" +# endif +# else +# ifdef __cpp_lib_parallel_algorithm +# error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should be defined in c++26" +# endif +# if __cpp_lib_philox_engine != 202406L +# error "__cpp_lib_philox_engine should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_philox_engine +# error "__cpp_lib_philox_engine should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR +# ifndef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should be defined in c++26" +# endif +# if __cpp_lib_polymorphic_allocator != 201902L +# error "__cpp_lib_polymorphic_allocator should have the value 201902L in c++26" +# endif +# else +# ifdef __cpp_lib_polymorphic_allocator +# error "__cpp_lib_polymorphic_allocator should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_PMR' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT +# ifndef __cpp_lib_print +# error "__cpp_lib_print should be defined in c++26" +# endif +# if __cpp_lib_print != 202207L +# error "__cpp_lib_print should have the value 202207L in c++26" +# endif +# else +# ifdef __cpp_lib_print +# error "__cpp_lib_print should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_AVAILABILITY_HAS_TO_CHARS_FLOATING_POINT' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION +# ifndef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should be defined in c++26" +# endif +# if __cpp_lib_quoted_string_io != 201304L +# error "__cpp_lib_quoted_string_io should have the value 201304L in c++26" +# endif +# else +# ifdef __cpp_lib_quoted_string_io +# error "__cpp_lib_quoted_string_io should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_LOCALIZATION' is not met!" +# endif +# endif + +# ifndef __cpp_lib_ranges +# error "__cpp_lib_ranges should be defined in c++26" +# endif +# if __cpp_lib_ranges != 202406L +# error "__cpp_lib_ranges should have the value 202406L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should be defined in c++26" +# endif +# if __cpp_lib_ranges_as_const != 202207L +# error "__cpp_lib_ranges_as_const should have the value 202207L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_as_const +# error "__cpp_lib_ranges_as_const should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_as_rvalue +# error "__cpp_lib_ranges_as_rvalue should be defined in c++26" +# endif +# if __cpp_lib_ranges_as_rvalue != 202207L +# error "__cpp_lib_ranges_as_rvalue should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should be defined in c++26" +# endif +# if __cpp_lib_ranges_chunk != 202202L +# error "__cpp_lib_ranges_chunk should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_chunk +# error "__cpp_lib_ranges_chunk should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_chunk_by +# error "__cpp_lib_ranges_chunk_by should be defined in c++26" +# endif +# if __cpp_lib_ranges_chunk_by != 202202L +# error "__cpp_lib_ranges_chunk_by should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should be defined in c++26" +# endif +# if __cpp_lib_ranges_concat != 202403L +# error "__cpp_lib_ranges_concat should have the value 202403L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_concat +# error "__cpp_lib_ranges_concat should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_contains +# error "__cpp_lib_ranges_contains should be defined in c++26" +# endif +# if __cpp_lib_ranges_contains != 202207L +# error "__cpp_lib_ranges_contains should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_ranges_find_last +# error "__cpp_lib_ranges_find_last should be defined in c++26" +# endif +# if __cpp_lib_ranges_find_last != 202207L +# error "__cpp_lib_ranges_find_last should have the value 202207L in c++26" +# endif + +# ifndef __cpp_lib_ranges_iota +# error "__cpp_lib_ranges_iota should be defined in c++26" +# endif +# if __cpp_lib_ranges_iota != 202202L +# error "__cpp_lib_ranges_iota should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should be defined in c++26" +# endif +# if __cpp_lib_ranges_join_with != 202202L +# error "__cpp_lib_ranges_join_with should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_join_with +# error "__cpp_lib_ranges_join_with should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_repeat +# error "__cpp_lib_ranges_repeat should be defined in c++26" +# endif +# if __cpp_lib_ranges_repeat != 202207L +# error "__cpp_lib_ranges_repeat should have the value 202207L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should be defined in c++26" +# endif +# if __cpp_lib_ranges_slide != 202202L +# error "__cpp_lib_ranges_slide should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_slide +# error "__cpp_lib_ranges_slide should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ranges_starts_ends_with +# error "__cpp_lib_ranges_starts_ends_with should be defined in c++26" +# endif +# if __cpp_lib_ranges_starts_ends_with != 202106L +# error "__cpp_lib_ranges_starts_ends_with should have the value 202106L in c++26" +# endif + +# ifndef __cpp_lib_ranges_to_container +# error "__cpp_lib_ranges_to_container should be defined in c++26" +# endif +# if __cpp_lib_ranges_to_container != 202202L +# error "__cpp_lib_ranges_to_container should have the value 202202L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should be defined in c++26" +# endif +# if __cpp_lib_ranges_zip != 202110L +# error "__cpp_lib_ranges_zip should have the value 202110L in c++26" +# endif +# else +# ifdef __cpp_lib_ranges_zip +# error "__cpp_lib_ranges_zip should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ratio +# error "__cpp_lib_ratio should be defined in c++26" +# endif +# if __cpp_lib_ratio != 202306L +# error "__cpp_lib_ratio should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_raw_memory_algorithms +# error "__cpp_lib_raw_memory_algorithms should be defined in c++26" +# endif +# if __cpp_lib_raw_memory_algorithms != 201606L +# error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_rcu +# error "__cpp_lib_rcu should be defined in c++26" +# endif +# if __cpp_lib_rcu != 202306L +# error "__cpp_lib_rcu should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_rcu +# error "__cpp_lib_rcu should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should be defined in c++26" +# endif +# if __cpp_lib_reference_from_temporary != 202202L +# error "__cpp_lib_reference_from_temporary should have the value 202202L in c++26" +# endif +# else +# ifdef __cpp_lib_reference_from_temporary +# error "__cpp_lib_reference_from_temporary should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_reference_wrapper +# error "__cpp_lib_reference_wrapper should be defined in c++26" +# endif +# if __cpp_lib_reference_wrapper != 202403L +# error "__cpp_lib_reference_wrapper should have the value 202403L in c++26" +# endif + +# ifndef __cpp_lib_remove_cvref +# error "__cpp_lib_remove_cvref should be defined in c++26" +# endif +# if __cpp_lib_remove_cvref != 201711L +# error "__cpp_lib_remove_cvref should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_result_of_sfinae +# error "__cpp_lib_result_of_sfinae should be defined in c++26" +# endif +# if __cpp_lib_result_of_sfinae != 201210L +# error "__cpp_lib_result_of_sfinae should have the value 201210L in c++26" +# endif + +# ifndef __cpp_lib_robust_nonmodifying_seq_ops +# error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++26" +# endif +# if __cpp_lib_robust_nonmodifying_seq_ops != 201304L +# error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_sample +# error "__cpp_lib_sample should be defined in c++26" +# endif +# if __cpp_lib_sample != 201603L +# error "__cpp_lib_sample should have the value 201603L in c++26" +# endif + +# ifndef __cpp_lib_saturation_arithmetic +# error "__cpp_lib_saturation_arithmetic should be defined in c++26" +# endif +# if __cpp_lib_saturation_arithmetic != 202311L +# error "__cpp_lib_saturation_arithmetic should have the value 202311L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should be defined in c++26" +# endif +# if __cpp_lib_scoped_lock != 201703L +# error "__cpp_lib_scoped_lock should have the value 201703L in c++26" +# endif +# else +# ifdef __cpp_lib_scoped_lock +# error "__cpp_lib_scoped_lock should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC) +# ifndef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should be defined in c++26" +# endif +# if __cpp_lib_semaphore != 201907L +# error "__cpp_lib_semaphore should have the value 201907L in c++26" +# endif +# else +# ifdef __cpp_lib_semaphore +# error "__cpp_lib_semaphore should not be defined when the requirement '!defined(_LIBCPP_VERSION) || (_LIBCPP_HAS_THREADS && _LIBCPP_AVAILABILITY_HAS_SYNC)' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_senders +# error "__cpp_lib_senders should be defined in c++26" +# endif +# if __cpp_lib_senders != 202406L +# error "__cpp_lib_senders should have the value 202406L in c++26" +# endif +# else +# ifdef __cpp_lib_senders +# error "__cpp_lib_senders should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should be defined in c++26" +# endif +# if __cpp_lib_shared_mutex != 201505L +# error "__cpp_lib_shared_mutex should have the value 201505L in c++26" +# endif +# else +# ifdef __cpp_lib_shared_mutex +# error "__cpp_lib_shared_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifndef __cpp_lib_shared_ptr_arrays +# error "__cpp_lib_shared_ptr_arrays should be defined in c++26" +# endif +# if __cpp_lib_shared_ptr_arrays != 201707L +# error "__cpp_lib_shared_ptr_arrays should have the value 201707L in c++26" +# endif + +# ifndef __cpp_lib_shared_ptr_weak_type +# error "__cpp_lib_shared_ptr_weak_type should be defined in c++26" +# endif +# if __cpp_lib_shared_ptr_weak_type != 201606L +# error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS +# ifndef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should be defined in c++26" +# endif +# if __cpp_lib_shared_timed_mutex != 201402L +# error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++26" +# endif +# else +# ifdef __cpp_lib_shared_timed_mutex +# error "__cpp_lib_shared_timed_mutex should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_THREADS' is not met!" +# endif +# endif + +# ifndef __cpp_lib_shift +# error "__cpp_lib_shift should be defined in c++26" +# endif +# if __cpp_lib_shift != 201806L +# error "__cpp_lib_shift should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_smart_ptr_for_overwrite +# error "__cpp_lib_smart_ptr_for_overwrite should be defined in c++26" +# endif +# if __cpp_lib_smart_ptr_for_overwrite != 202002L +# error "__cpp_lib_smart_ptr_for_overwrite should have the value 202002L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should be defined in c++26" +# endif +# if __cpp_lib_smart_ptr_owner_equality != 202306L +# error "__cpp_lib_smart_ptr_owner_equality should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_smart_ptr_owner_equality +# error "__cpp_lib_smart_ptr_owner_equality should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_source_location +# error "__cpp_lib_source_location should be defined in c++26" +# endif +# if __cpp_lib_source_location != 201907L +# error "__cpp_lib_source_location should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_span +# error "__cpp_lib_span should be defined in c++26" +# endif +# if __cpp_lib_span != 202002L +# error "__cpp_lib_span should have the value 202002L in c++26" +# endif + +# ifndef __cpp_lib_span_at +# error "__cpp_lib_span_at should be defined in c++26" +# endif +# if __cpp_lib_span_at != 202311L +# error "__cpp_lib_span_at should have the value 202311L in c++26" +# endif + +# ifndef __cpp_lib_span_initializer_list +# error "__cpp_lib_span_initializer_list should be defined in c++26" +# endif +# if __cpp_lib_span_initializer_list != 202311L +# error "__cpp_lib_span_initializer_list should have the value 202311L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_spanstream +# error "__cpp_lib_spanstream should be defined in c++26" +# endif +# if __cpp_lib_spanstream != 202106L +# error "__cpp_lib_spanstream should have the value 202106L in c++26" +# endif +# else +# ifdef __cpp_lib_spanstream +# error "__cpp_lib_spanstream should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_ssize +# error "__cpp_lib_ssize should be defined in c++26" +# endif +# if __cpp_lib_ssize != 201902L +# error "__cpp_lib_ssize should have the value 201902L in c++26" +# endif + +# ifndef __cpp_lib_sstream_from_string_view +# error "__cpp_lib_sstream_from_string_view should be defined in c++26" +# endif +# if __cpp_lib_sstream_from_string_view != 202306L +# error "__cpp_lib_sstream_from_string_view should have the value 202306L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_stacktrace +# error "__cpp_lib_stacktrace should be defined in c++26" +# endif +# if __cpp_lib_stacktrace != 202011L +# error "__cpp_lib_stacktrace should have the value 202011L in c++26" +# endif +# else +# ifdef __cpp_lib_stacktrace +# error "__cpp_lib_stacktrace should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_starts_ends_with +# error "__cpp_lib_starts_ends_with should be defined in c++26" +# endif +# if __cpp_lib_starts_ends_with != 201711L +# error "__cpp_lib_starts_ends_with should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_stdatomic_h +# error "__cpp_lib_stdatomic_h should be defined in c++26" +# endif +# if __cpp_lib_stdatomic_h != 202011L +# error "__cpp_lib_stdatomic_h should have the value 202011L in c++26" +# endif + +# ifndef __cpp_lib_string_contains +# error "__cpp_lib_string_contains should be defined in c++26" +# endif +# if __cpp_lib_string_contains != 202011L +# error "__cpp_lib_string_contains should have the value 202011L in c++26" +# endif + +# ifndef __cpp_lib_string_resize_and_overwrite +# error "__cpp_lib_string_resize_and_overwrite should be defined in c++26" +# endif +# if __cpp_lib_string_resize_and_overwrite != 202110L +# error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++26" +# endif + +# ifndef __cpp_lib_string_udls +# error "__cpp_lib_string_udls should be defined in c++26" +# endif +# if __cpp_lib_string_udls != 201304L +# error "__cpp_lib_string_udls should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_string_view +# error "__cpp_lib_string_view should be defined in c++26" +# endif +# if __cpp_lib_string_view != 202403L +# error "__cpp_lib_string_view should have the value 202403L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should be defined in c++26" +# endif +# if __cpp_lib_submdspan != 202306L +# error "__cpp_lib_submdspan should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_submdspan +# error "__cpp_lib_submdspan should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM +# ifndef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should be defined in c++26" +# endif +# if __cpp_lib_syncbuf != 201803L +# error "__cpp_lib_syncbuf should have the value 201803L in c++26" +# endif +# else +# ifdef __cpp_lib_syncbuf +# error "__cpp_lib_syncbuf should not be defined when the requirement '!defined(_LIBCPP_VERSION) || _LIBCPP_HAS_EXPERIMENTAL_SYNCSTREAM' is not met!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_text_encoding +# error "__cpp_lib_text_encoding should be defined in c++26" +# endif +# if __cpp_lib_text_encoding != 202306L +# error "__cpp_lib_text_encoding should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_text_encoding +# error "__cpp_lib_text_encoding should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_three_way_comparison +# error "__cpp_lib_three_way_comparison should be defined in c++26" +# endif +# if __cpp_lib_three_way_comparison != 201907L +# error "__cpp_lib_three_way_comparison should have the value 201907L in c++26" +# endif + +# ifndef __cpp_lib_to_address +# error "__cpp_lib_to_address should be defined in c++26" +# endif +# if __cpp_lib_to_address != 201711L +# error "__cpp_lib_to_address should have the value 201711L in c++26" +# endif + +# ifndef __cpp_lib_to_array +# error "__cpp_lib_to_array should be defined in c++26" +# endif +# if __cpp_lib_to_array != 201907L +# error "__cpp_lib_to_array should have the value 201907L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should be defined in c++26" +# endif +# if __cpp_lib_to_chars != 202306L +# error "__cpp_lib_to_chars should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_to_chars +# error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_to_string +# error "__cpp_lib_to_string should be defined in c++26" +# endif +# if __cpp_lib_to_string != 202306L +# error "__cpp_lib_to_string should have the value 202306L in c++26" +# endif +# else +# ifdef __cpp_lib_to_string +# error "__cpp_lib_to_string should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_to_underlying +# error "__cpp_lib_to_underlying should be defined in c++26" +# endif +# if __cpp_lib_to_underlying != 202102L +# error "__cpp_lib_to_underlying should have the value 202102L in c++26" +# endif + +# ifndef __cpp_lib_transformation_trait_aliases +# error "__cpp_lib_transformation_trait_aliases should be defined in c++26" +# endif +# if __cpp_lib_transformation_trait_aliases != 201304L +# error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_transparent_operators +# error "__cpp_lib_transparent_operators should be defined in c++26" +# endif +# if __cpp_lib_transparent_operators != 201510L +# error "__cpp_lib_transparent_operators should have the value 201510L in c++26" +# endif + +# ifndef __cpp_lib_tuple_element_t +# error "__cpp_lib_tuple_element_t should be defined in c++26" +# endif +# if __cpp_lib_tuple_element_t != 201402L +# error "__cpp_lib_tuple_element_t should have the value 201402L in c++26" +# endif + +# if !defined(_LIBCPP_VERSION) +# ifndef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should be defined in c++26" +# endif +# if __cpp_lib_tuple_like != 202311L +# error "__cpp_lib_tuple_like should have the value 202311L in c++26" +# endif +# else +# ifdef __cpp_lib_tuple_like +# error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!" +# endif +# endif + +# ifndef __cpp_lib_tuples_by_type +# error "__cpp_lib_tuples_by_type should be defined in c++26" +# endif +# if __cpp_lib_tuples_by_type != 201304L +# error "__cpp_lib_tuples_by_type should have the value 201304L in c++26" +# endif + +# ifndef __cpp_lib_type_identity +# error "__cpp_lib_type_identity should be defined in c++26" +# endif +# if __cpp_lib_type_identity != 201806L +# error "__cpp_lib_type_identity should have the value 201806L in c++26" +# endif + +# ifndef __cpp_lib_type_trait_variable_templates +# error "__cpp_lib_type_trait_variable_templates should be defined in c++26" +# endif +# if __cpp_lib_type_trait_variable_templates != 201510L +# error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++26" +# endif + +# ifndef __cpp_lib_uncaught_exceptions +# error "__cpp_lib_uncaught_exceptions should be defined in c++26" +# endif +# if __cpp_lib_uncaught_exceptions != 201411L +# error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_unordered_map_try_emplace +# error "__cpp_lib_unordered_map_try_emplace should be defined in c++26" +# endif +# if __cpp_lib_unordered_map_try_emplace != 201411L +# error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++26" +# endif + +# ifndef __cpp_lib_unreachable +# error "__cpp_lib_unreachable should be defined in c++26" +# endif +# if __cpp_lib_unreachable != 202202L +# error "__cpp_lib_unreachable should have the value 202202L in c++26" +# endif + +# ifndef __cpp_lib_unwrap_ref +# error "__cpp_lib_unwrap_ref should be defined in c++26" +# endif +# if __cpp_lib_unwrap_ref != 201811L +# error "__cpp_lib_unwrap_ref should have the value 201811L in c++26" +# endif + +# ifndef __cpp_lib_variant +# error "__cpp_lib_variant should be defined in c++26" +# endif +# if __cpp_lib_variant != 202306L +# error "__cpp_lib_variant should have the value 202306L in c++26" +# endif + +# ifndef __cpp_lib_void_t +# error "__cpp_lib_void_t should be defined in c++26" +# endif +# if __cpp_lib_void_t != 201411L +# error "__cpp_lib_void_t should have the value 201411L in c++26" +# endif #endif // TEST_STD_VER > 23 +// clang-format on + diff --git a/libcxx/utils/generate_feature_test_macro_components.py b/libcxx/utils/generate_feature_test_macro_components.py index f16841eed9e96..baca05f5e0772 100755 --- a/libcxx/utils/generate_feature_test_macro_components.py +++ b/libcxx/utils/generate_feature_test_macro_components.py @@ -1690,45 +1690,45 @@ def produce_version_header(): test_types = { "undefined": """ -# ifdef {name} -# error "{name} should not be defined before {std_first}" -# endif +# ifdef {name} +# error "{name} should not be defined before {std_first}" +# endif """, "test_suite_guard": """ -# if {test_suite_guard} -# ifndef {name} -# error "{name} should be defined in {std}" -# endif -# if {name} != {value} -# error "{name} should have the value {value} in {std}" -# endif -# else -# ifdef {name} -# error "{name} should not be defined when the requirement '{test_suite_guard}' is not met!" -# endif -# endif +# if {test_suite_guard} +# ifndef {name} +# error "{name} should be defined in {std}" +# endif +# if {name} != {value} +# error "{name} should have the value {value} in {std}" +# endif +# else +# ifdef {name} +# error "{name} should not be defined when the requirement '{test_suite_guard}' is not met!" +# endif +# endif """, "unimplemented": """ -# if !defined(_LIBCPP_VERSION) -# ifndef {name} -# error "{name} should be defined in {std}" -# endif -# if {name} != {value} -# error "{name} should have the value {value} in {std}" -# endif -# else // _LIBCPP_VERSION -# ifdef {name} -# error "{name} should not be defined because it is unimplemented in libc++!" -# endif -# endif +# if !defined(_LIBCPP_VERSION) +# ifndef {name} +# error "{name} should be defined in {std}" +# endif +# if {name} != {value} +# error "{name} should have the value {value} in {std}" +# endif +# else +# ifdef {name} +# error "{name} should not be defined because it is unimplemented in libc++!" +# endif +# endif """, "defined": """ -# ifndef {name} -# error "{name} should be defined in {std}" -# endif -# if {name} != {value} -# error "{name} should have the value {value} in {std}" -# endif +# ifndef {name} +# error "{name} should be defined in {std}" +# endif +# if {name} != {value} +# error "{name} should have the value {value} in {std}" +# endif """, } @@ -1828,28 +1828,27 @@ def produce_tests(): // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// -// + // WARNING: This test was generated by {script_name} // and should not be edited manually. -// -// clang-format off {markup} // <{header}> // Test the feature test macros defined by <{header}> -{synopsis} +// clang-format off #include <{header}> #include "test_macros.h" {cxx_tests} +// clang-format on + """.format( script_name=script_name, header=h, markup=("\n{}\n".format(markup) if markup else ""), - synopsis=generate_synopsis(test_list), cxx_tests=generate_std_tests(test_list), ) test_name = "{header}.version.compile.pass.cpp".format(header=h)