12c6217f2SLouis Dionne //===----------------------------------------------------------------------===// 22c6217f2SLouis Dionne // 32c6217f2SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 42c6217f2SLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 52c6217f2SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 62c6217f2SLouis Dionne // 72c6217f2SLouis Dionne //===----------------------------------------------------------------------===// 82c6217f2SLouis Dionne // 92c6217f2SLouis Dionne // WARNING: This test was generated by generate_feature_test_macro_components.py 102c6217f2SLouis Dionne // and should not be edited manually. 112c6217f2SLouis Dionne // 122c6217f2SLouis Dionne // clang-format off 132c6217f2SLouis Dionne 142c6217f2SLouis Dionne // <string> 152c6217f2SLouis Dionne 162c6217f2SLouis Dionne // Test the feature test macros defined by <string> 172c6217f2SLouis Dionne 182c6217f2SLouis Dionne /* Constant Value 192c6217f2SLouis Dionne __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] 20*309aed30SNikolas Klauser __cpp_lib_char8_t 201907L [C++20] 21425620ccSNikolas Klauser __cpp_lib_constexpr_string 201907L [C++20] 222c6217f2SLouis Dionne __cpp_lib_erase_if 202002L [C++20] 232c6217f2SLouis Dionne __cpp_lib_nonmember_container_access 201411L [C++17] 242c6217f2SLouis Dionne __cpp_lib_ranges_to_container 202202L [C++2b] 252c6217f2SLouis Dionne __cpp_lib_starts_ends_with 201711L [C++20] 262c6217f2SLouis Dionne __cpp_lib_string_contains 202011L [C++2b] 272c6217f2SLouis Dionne __cpp_lib_string_resize_and_overwrite 202110L [C++2b] 282c6217f2SLouis Dionne __cpp_lib_string_udls 201304L [C++14] 292c6217f2SLouis Dionne __cpp_lib_string_view 201606L [C++17] 302c6217f2SLouis Dionne 201803L [C++20] 312c6217f2SLouis Dionne */ 322c6217f2SLouis Dionne 332c6217f2SLouis Dionne #include <string> 342c6217f2SLouis Dionne #include "test_macros.h" 352c6217f2SLouis Dionne 362c6217f2SLouis Dionne #if TEST_STD_VER < 14 372c6217f2SLouis Dionne 382c6217f2SLouis Dionne # ifdef __cpp_lib_allocator_traits_is_always_equal 392c6217f2SLouis Dionne # error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" 402c6217f2SLouis Dionne # endif 412c6217f2SLouis Dionne 422c6217f2SLouis Dionne # ifdef __cpp_lib_char8_t 432c6217f2SLouis Dionne # error "__cpp_lib_char8_t should not be defined before c++20" 442c6217f2SLouis Dionne # endif 452c6217f2SLouis Dionne 462c6217f2SLouis Dionne # ifdef __cpp_lib_constexpr_string 472c6217f2SLouis Dionne # error "__cpp_lib_constexpr_string should not be defined before c++20" 482c6217f2SLouis Dionne # endif 492c6217f2SLouis Dionne 502c6217f2SLouis Dionne # ifdef __cpp_lib_erase_if 512c6217f2SLouis Dionne # error "__cpp_lib_erase_if should not be defined before c++20" 522c6217f2SLouis Dionne # endif 532c6217f2SLouis Dionne 542c6217f2SLouis Dionne # ifdef __cpp_lib_nonmember_container_access 552c6217f2SLouis Dionne # error "__cpp_lib_nonmember_container_access should not be defined before c++17" 562c6217f2SLouis Dionne # endif 572c6217f2SLouis Dionne 582c6217f2SLouis Dionne # ifdef __cpp_lib_ranges_to_container 592c6217f2SLouis Dionne # error "__cpp_lib_ranges_to_container should not be defined before c++2b" 602c6217f2SLouis Dionne # endif 612c6217f2SLouis Dionne 622c6217f2SLouis Dionne # ifdef __cpp_lib_starts_ends_with 632c6217f2SLouis Dionne # error "__cpp_lib_starts_ends_with should not be defined before c++20" 642c6217f2SLouis Dionne # endif 652c6217f2SLouis Dionne 662c6217f2SLouis Dionne # ifdef __cpp_lib_string_contains 672c6217f2SLouis Dionne # error "__cpp_lib_string_contains should not be defined before c++2b" 682c6217f2SLouis Dionne # endif 692c6217f2SLouis Dionne 702c6217f2SLouis Dionne # ifdef __cpp_lib_string_resize_and_overwrite 712c6217f2SLouis Dionne # error "__cpp_lib_string_resize_and_overwrite should not be defined before c++2b" 722c6217f2SLouis Dionne # endif 732c6217f2SLouis Dionne 742c6217f2SLouis Dionne # ifdef __cpp_lib_string_udls 752c6217f2SLouis Dionne # error "__cpp_lib_string_udls should not be defined before c++14" 762c6217f2SLouis Dionne # endif 772c6217f2SLouis Dionne 782c6217f2SLouis Dionne # ifdef __cpp_lib_string_view 792c6217f2SLouis Dionne # error "__cpp_lib_string_view should not be defined before c++17" 802c6217f2SLouis Dionne # endif 812c6217f2SLouis Dionne 822c6217f2SLouis Dionne #elif TEST_STD_VER == 14 832c6217f2SLouis Dionne 842c6217f2SLouis Dionne # ifdef __cpp_lib_allocator_traits_is_always_equal 852c6217f2SLouis Dionne # error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" 862c6217f2SLouis Dionne # endif 872c6217f2SLouis Dionne 882c6217f2SLouis Dionne # ifdef __cpp_lib_char8_t 892c6217f2SLouis Dionne # error "__cpp_lib_char8_t should not be defined before c++20" 902c6217f2SLouis Dionne # endif 912c6217f2SLouis Dionne 922c6217f2SLouis Dionne # ifdef __cpp_lib_constexpr_string 932c6217f2SLouis Dionne # error "__cpp_lib_constexpr_string should not be defined before c++20" 942c6217f2SLouis Dionne # endif 952c6217f2SLouis Dionne 962c6217f2SLouis Dionne # ifdef __cpp_lib_erase_if 972c6217f2SLouis Dionne # error "__cpp_lib_erase_if should not be defined before c++20" 982c6217f2SLouis Dionne # endif 992c6217f2SLouis Dionne 1002c6217f2SLouis Dionne # ifdef __cpp_lib_nonmember_container_access 1012c6217f2SLouis Dionne # error "__cpp_lib_nonmember_container_access should not be defined before c++17" 1022c6217f2SLouis Dionne # endif 1032c6217f2SLouis Dionne 1042c6217f2SLouis Dionne # ifdef __cpp_lib_ranges_to_container 1052c6217f2SLouis Dionne # error "__cpp_lib_ranges_to_container should not be defined before c++2b" 1062c6217f2SLouis Dionne # endif 1072c6217f2SLouis Dionne 1082c6217f2SLouis Dionne # ifdef __cpp_lib_starts_ends_with 1092c6217f2SLouis Dionne # error "__cpp_lib_starts_ends_with should not be defined before c++20" 1102c6217f2SLouis Dionne # endif 1112c6217f2SLouis Dionne 1122c6217f2SLouis Dionne # ifdef __cpp_lib_string_contains 1132c6217f2SLouis Dionne # error "__cpp_lib_string_contains should not be defined before c++2b" 1142c6217f2SLouis Dionne # endif 1152c6217f2SLouis Dionne 1162c6217f2SLouis Dionne # ifdef __cpp_lib_string_resize_and_overwrite 1172c6217f2SLouis Dionne # error "__cpp_lib_string_resize_and_overwrite should not be defined before c++2b" 1182c6217f2SLouis Dionne # endif 1192c6217f2SLouis Dionne 1202c6217f2SLouis Dionne # ifndef __cpp_lib_string_udls 1212c6217f2SLouis Dionne # error "__cpp_lib_string_udls should be defined in c++14" 1222c6217f2SLouis Dionne # endif 1232c6217f2SLouis Dionne # if __cpp_lib_string_udls != 201304L 1242c6217f2SLouis Dionne # error "__cpp_lib_string_udls should have the value 201304L in c++14" 1252c6217f2SLouis Dionne # endif 1262c6217f2SLouis Dionne 1272c6217f2SLouis Dionne # ifdef __cpp_lib_string_view 1282c6217f2SLouis Dionne # error "__cpp_lib_string_view should not be defined before c++17" 1292c6217f2SLouis Dionne # endif 1302c6217f2SLouis Dionne 1312c6217f2SLouis Dionne #elif TEST_STD_VER == 17 1322c6217f2SLouis Dionne 1332c6217f2SLouis Dionne # ifndef __cpp_lib_allocator_traits_is_always_equal 1342c6217f2SLouis Dionne # error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" 1352c6217f2SLouis Dionne # endif 1362c6217f2SLouis Dionne # if __cpp_lib_allocator_traits_is_always_equal != 201411L 1372c6217f2SLouis Dionne # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" 1382c6217f2SLouis Dionne # endif 1392c6217f2SLouis Dionne 1402c6217f2SLouis Dionne # ifdef __cpp_lib_char8_t 1412c6217f2SLouis Dionne # error "__cpp_lib_char8_t should not be defined before c++20" 1422c6217f2SLouis Dionne # endif 1432c6217f2SLouis Dionne 1442c6217f2SLouis Dionne # ifdef __cpp_lib_constexpr_string 1452c6217f2SLouis Dionne # error "__cpp_lib_constexpr_string should not be defined before c++20" 1462c6217f2SLouis Dionne # endif 1472c6217f2SLouis Dionne 1482c6217f2SLouis Dionne # ifdef __cpp_lib_erase_if 1492c6217f2SLouis Dionne # error "__cpp_lib_erase_if should not be defined before c++20" 1502c6217f2SLouis Dionne # endif 1512c6217f2SLouis Dionne 1522c6217f2SLouis Dionne # ifndef __cpp_lib_nonmember_container_access 1532c6217f2SLouis Dionne # error "__cpp_lib_nonmember_container_access should be defined in c++17" 1542c6217f2SLouis Dionne # endif 1552c6217f2SLouis Dionne # if __cpp_lib_nonmember_container_access != 201411L 1562c6217f2SLouis Dionne # error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" 1572c6217f2SLouis Dionne # endif 1582c6217f2SLouis Dionne 1592c6217f2SLouis Dionne # ifdef __cpp_lib_ranges_to_container 1602c6217f2SLouis Dionne # error "__cpp_lib_ranges_to_container should not be defined before c++2b" 1612c6217f2SLouis Dionne # endif 1622c6217f2SLouis Dionne 1632c6217f2SLouis Dionne # ifdef __cpp_lib_starts_ends_with 1642c6217f2SLouis Dionne # error "__cpp_lib_starts_ends_with should not be defined before c++20" 1652c6217f2SLouis Dionne # endif 1662c6217f2SLouis Dionne 1672c6217f2SLouis Dionne # ifdef __cpp_lib_string_contains 1682c6217f2SLouis Dionne # error "__cpp_lib_string_contains should not be defined before c++2b" 1692c6217f2SLouis Dionne # endif 1702c6217f2SLouis Dionne 1712c6217f2SLouis Dionne # ifdef __cpp_lib_string_resize_and_overwrite 1722c6217f2SLouis Dionne # error "__cpp_lib_string_resize_and_overwrite should not be defined before c++2b" 1732c6217f2SLouis Dionne # endif 1742c6217f2SLouis Dionne 1752c6217f2SLouis Dionne # ifndef __cpp_lib_string_udls 1762c6217f2SLouis Dionne # error "__cpp_lib_string_udls should be defined in c++17" 1772c6217f2SLouis Dionne # endif 1782c6217f2SLouis Dionne # if __cpp_lib_string_udls != 201304L 1792c6217f2SLouis Dionne # error "__cpp_lib_string_udls should have the value 201304L in c++17" 1802c6217f2SLouis Dionne # endif 1812c6217f2SLouis Dionne 1822c6217f2SLouis Dionne # ifndef __cpp_lib_string_view 1832c6217f2SLouis Dionne # error "__cpp_lib_string_view should be defined in c++17" 1842c6217f2SLouis Dionne # endif 1852c6217f2SLouis Dionne # if __cpp_lib_string_view != 201606L 1862c6217f2SLouis Dionne # error "__cpp_lib_string_view should have the value 201606L in c++17" 1872c6217f2SLouis Dionne # endif 1882c6217f2SLouis Dionne 1892c6217f2SLouis Dionne #elif TEST_STD_VER == 20 1902c6217f2SLouis Dionne 1912c6217f2SLouis Dionne # ifndef __cpp_lib_allocator_traits_is_always_equal 1922c6217f2SLouis Dionne # error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" 1932c6217f2SLouis Dionne # endif 1942c6217f2SLouis Dionne # if __cpp_lib_allocator_traits_is_always_equal != 201411L 1952c6217f2SLouis Dionne # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" 1962c6217f2SLouis Dionne # endif 1972c6217f2SLouis Dionne 1982c6217f2SLouis Dionne # if defined(__cpp_char8_t) 1992c6217f2SLouis Dionne # ifndef __cpp_lib_char8_t 2002c6217f2SLouis Dionne # error "__cpp_lib_char8_t should be defined in c++20" 2012c6217f2SLouis Dionne # endif 202*309aed30SNikolas Klauser # if __cpp_lib_char8_t != 201907L 203*309aed30SNikolas Klauser # error "__cpp_lib_char8_t should have the value 201907L in c++20" 2042c6217f2SLouis Dionne # endif 2052c6217f2SLouis Dionne # else 2062c6217f2SLouis Dionne # ifdef __cpp_lib_char8_t 2072c6217f2SLouis Dionne # error "__cpp_lib_char8_t should not be defined when defined(__cpp_char8_t) is not defined!" 2082c6217f2SLouis Dionne # endif 2092c6217f2SLouis Dionne # endif 2102c6217f2SLouis Dionne 2112c6217f2SLouis Dionne # ifndef __cpp_lib_constexpr_string 2122c6217f2SLouis Dionne # error "__cpp_lib_constexpr_string should be defined in c++20" 2132c6217f2SLouis Dionne # endif 214425620ccSNikolas Klauser # if __cpp_lib_constexpr_string != 201907L 215425620ccSNikolas Klauser # error "__cpp_lib_constexpr_string should have the value 201907L in c++20" 2162c6217f2SLouis Dionne # endif 2172c6217f2SLouis Dionne 2182c6217f2SLouis Dionne # ifndef __cpp_lib_erase_if 2192c6217f2SLouis Dionne # error "__cpp_lib_erase_if should be defined in c++20" 2202c6217f2SLouis Dionne # endif 2212c6217f2SLouis Dionne # if __cpp_lib_erase_if != 202002L 2222c6217f2SLouis Dionne # error "__cpp_lib_erase_if should have the value 202002L in c++20" 2232c6217f2SLouis Dionne # endif 2242c6217f2SLouis Dionne 2252c6217f2SLouis Dionne # ifndef __cpp_lib_nonmember_container_access 2262c6217f2SLouis Dionne # error "__cpp_lib_nonmember_container_access should be defined in c++20" 2272c6217f2SLouis Dionne # endif 2282c6217f2SLouis Dionne # if __cpp_lib_nonmember_container_access != 201411L 2292c6217f2SLouis Dionne # error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" 2302c6217f2SLouis Dionne # endif 2312c6217f2SLouis Dionne 2322c6217f2SLouis Dionne # ifdef __cpp_lib_ranges_to_container 2332c6217f2SLouis Dionne # error "__cpp_lib_ranges_to_container should not be defined before c++2b" 2342c6217f2SLouis Dionne # endif 2352c6217f2SLouis Dionne 2362c6217f2SLouis Dionne # ifndef __cpp_lib_starts_ends_with 2372c6217f2SLouis Dionne # error "__cpp_lib_starts_ends_with should be defined in c++20" 2382c6217f2SLouis Dionne # endif 2392c6217f2SLouis Dionne # if __cpp_lib_starts_ends_with != 201711L 2402c6217f2SLouis Dionne # error "__cpp_lib_starts_ends_with should have the value 201711L in c++20" 2412c6217f2SLouis Dionne # endif 2422c6217f2SLouis Dionne 2432c6217f2SLouis Dionne # ifdef __cpp_lib_string_contains 2442c6217f2SLouis Dionne # error "__cpp_lib_string_contains should not be defined before c++2b" 2452c6217f2SLouis Dionne # endif 2462c6217f2SLouis Dionne 2472c6217f2SLouis Dionne # ifdef __cpp_lib_string_resize_and_overwrite 2482c6217f2SLouis Dionne # error "__cpp_lib_string_resize_and_overwrite should not be defined before c++2b" 2492c6217f2SLouis Dionne # endif 2502c6217f2SLouis Dionne 2512c6217f2SLouis Dionne # ifndef __cpp_lib_string_udls 2522c6217f2SLouis Dionne # error "__cpp_lib_string_udls should be defined in c++20" 2532c6217f2SLouis Dionne # endif 2542c6217f2SLouis Dionne # if __cpp_lib_string_udls != 201304L 2552c6217f2SLouis Dionne # error "__cpp_lib_string_udls should have the value 201304L in c++20" 2562c6217f2SLouis Dionne # endif 2572c6217f2SLouis Dionne 2582c6217f2SLouis Dionne # ifndef __cpp_lib_string_view 2592c6217f2SLouis Dionne # error "__cpp_lib_string_view should be defined in c++20" 2602c6217f2SLouis Dionne # endif 2612c6217f2SLouis Dionne # if __cpp_lib_string_view != 201803L 2622c6217f2SLouis Dionne # error "__cpp_lib_string_view should have the value 201803L in c++20" 2632c6217f2SLouis Dionne # endif 2642c6217f2SLouis Dionne 2652c6217f2SLouis Dionne #elif TEST_STD_VER > 20 2662c6217f2SLouis Dionne 2672c6217f2SLouis Dionne # ifndef __cpp_lib_allocator_traits_is_always_equal 2682c6217f2SLouis Dionne # error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2b" 2692c6217f2SLouis Dionne # endif 2702c6217f2SLouis Dionne # if __cpp_lib_allocator_traits_is_always_equal != 201411L 2712c6217f2SLouis Dionne # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++2b" 2722c6217f2SLouis Dionne # endif 2732c6217f2SLouis Dionne 2742c6217f2SLouis Dionne # if defined(__cpp_char8_t) 2752c6217f2SLouis Dionne # ifndef __cpp_lib_char8_t 2762c6217f2SLouis Dionne # error "__cpp_lib_char8_t should be defined in c++2b" 2772c6217f2SLouis Dionne # endif 278*309aed30SNikolas Klauser # if __cpp_lib_char8_t != 201907L 279*309aed30SNikolas Klauser # error "__cpp_lib_char8_t should have the value 201907L in c++2b" 2802c6217f2SLouis Dionne # endif 2812c6217f2SLouis Dionne # else 2822c6217f2SLouis Dionne # ifdef __cpp_lib_char8_t 2832c6217f2SLouis Dionne # error "__cpp_lib_char8_t should not be defined when defined(__cpp_char8_t) is not defined!" 2842c6217f2SLouis Dionne # endif 2852c6217f2SLouis Dionne # endif 2862c6217f2SLouis Dionne 2872c6217f2SLouis Dionne # ifndef __cpp_lib_constexpr_string 2882c6217f2SLouis Dionne # error "__cpp_lib_constexpr_string should be defined in c++2b" 2892c6217f2SLouis Dionne # endif 290425620ccSNikolas Klauser # if __cpp_lib_constexpr_string != 201907L 291425620ccSNikolas Klauser # error "__cpp_lib_constexpr_string should have the value 201907L in c++2b" 2922c6217f2SLouis Dionne # endif 2932c6217f2SLouis Dionne 2942c6217f2SLouis Dionne # ifndef __cpp_lib_erase_if 2952c6217f2SLouis Dionne # error "__cpp_lib_erase_if should be defined in c++2b" 2962c6217f2SLouis Dionne # endif 2972c6217f2SLouis Dionne # if __cpp_lib_erase_if != 202002L 2982c6217f2SLouis Dionne # error "__cpp_lib_erase_if should have the value 202002L in c++2b" 2992c6217f2SLouis Dionne # endif 3002c6217f2SLouis Dionne 3012c6217f2SLouis Dionne # ifndef __cpp_lib_nonmember_container_access 3022c6217f2SLouis Dionne # error "__cpp_lib_nonmember_container_access should be defined in c++2b" 3032c6217f2SLouis Dionne # endif 3042c6217f2SLouis Dionne # if __cpp_lib_nonmember_container_access != 201411L 3052c6217f2SLouis Dionne # error "__cpp_lib_nonmember_container_access should have the value 201411L in c++2b" 3062c6217f2SLouis Dionne # endif 3072c6217f2SLouis Dionne 3082c6217f2SLouis Dionne # if !defined(_LIBCPP_VERSION) 3092c6217f2SLouis Dionne # ifndef __cpp_lib_ranges_to_container 3102c6217f2SLouis Dionne # error "__cpp_lib_ranges_to_container should be defined in c++2b" 3112c6217f2SLouis Dionne # endif 3122c6217f2SLouis Dionne # if __cpp_lib_ranges_to_container != 202202L 3132c6217f2SLouis Dionne # error "__cpp_lib_ranges_to_container should have the value 202202L in c++2b" 3142c6217f2SLouis Dionne # endif 3152c6217f2SLouis Dionne # else // _LIBCPP_VERSION 3162c6217f2SLouis Dionne # ifdef __cpp_lib_ranges_to_container 3172c6217f2SLouis Dionne # error "__cpp_lib_ranges_to_container should not be defined because it is unimplemented in libc++!" 3182c6217f2SLouis Dionne # endif 3192c6217f2SLouis Dionne # endif 3202c6217f2SLouis Dionne 3212c6217f2SLouis Dionne # ifndef __cpp_lib_starts_ends_with 3222c6217f2SLouis Dionne # error "__cpp_lib_starts_ends_with should be defined in c++2b" 3232c6217f2SLouis Dionne # endif 3242c6217f2SLouis Dionne # if __cpp_lib_starts_ends_with != 201711L 3252c6217f2SLouis Dionne # error "__cpp_lib_starts_ends_with should have the value 201711L in c++2b" 3262c6217f2SLouis Dionne # endif 3272c6217f2SLouis Dionne 3282c6217f2SLouis Dionne # ifndef __cpp_lib_string_contains 3292c6217f2SLouis Dionne # error "__cpp_lib_string_contains should be defined in c++2b" 3302c6217f2SLouis Dionne # endif 3312c6217f2SLouis Dionne # if __cpp_lib_string_contains != 202011L 3322c6217f2SLouis Dionne # error "__cpp_lib_string_contains should have the value 202011L in c++2b" 3332c6217f2SLouis Dionne # endif 3342c6217f2SLouis Dionne 3352c6217f2SLouis Dionne # ifndef __cpp_lib_string_resize_and_overwrite 3362c6217f2SLouis Dionne # error "__cpp_lib_string_resize_and_overwrite should be defined in c++2b" 3372c6217f2SLouis Dionne # endif 3382c6217f2SLouis Dionne # if __cpp_lib_string_resize_and_overwrite != 202110L 3392c6217f2SLouis Dionne # error "__cpp_lib_string_resize_and_overwrite should have the value 202110L in c++2b" 3402c6217f2SLouis Dionne # endif 3412c6217f2SLouis Dionne 3422c6217f2SLouis Dionne # ifndef __cpp_lib_string_udls 3432c6217f2SLouis Dionne # error "__cpp_lib_string_udls should be defined in c++2b" 3442c6217f2SLouis Dionne # endif 3452c6217f2SLouis Dionne # if __cpp_lib_string_udls != 201304L 3462c6217f2SLouis Dionne # error "__cpp_lib_string_udls should have the value 201304L in c++2b" 3472c6217f2SLouis Dionne # endif 3482c6217f2SLouis Dionne 3492c6217f2SLouis Dionne # ifndef __cpp_lib_string_view 3502c6217f2SLouis Dionne # error "__cpp_lib_string_view should be defined in c++2b" 3512c6217f2SLouis Dionne # endif 3522c6217f2SLouis Dionne # if __cpp_lib_string_view != 201803L 3532c6217f2SLouis Dionne # error "__cpp_lib_string_view should have the value 201803L in c++2b" 3542c6217f2SLouis Dionne # endif 3552c6217f2SLouis Dionne 3562c6217f2SLouis Dionne #endif // TEST_STD_VER > 20 3572c6217f2SLouis Dionne 358