libcxx

libcxx mirror with random patches
git clone https://git.neptards.moe/neptards/libcxx.git
Log | Files | Refs

version.version.pass.cpp (74565B)


      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // WARNING: This test was generated by generate_feature_test_macro_components.py
     11 // and should not be edited manually.
     12 
     13 // <version>
     14 
     15 // Test the feature test macros defined by <version>
     16 
     17 /*  Constant                                       Value
     18     __cpp_lib_addressof_constexpr                  201603L [C++17]
     19     __cpp_lib_allocator_traits_is_always_equal     201411L [C++17]
     20     __cpp_lib_any                                  201606L [C++17]
     21     __cpp_lib_apply                                201603L [C++17]
     22     __cpp_lib_array_constexpr                      201603L [C++17]
     23     __cpp_lib_as_const                             201510L [C++17]
     24     __cpp_lib_atomic_is_always_lock_free           201603L [C++17]
     25     __cpp_lib_atomic_ref                           201806L [C++2a]
     26     __cpp_lib_bind_front                           201811L [C++2a]
     27     __cpp_lib_bit_cast                             201806L [C++2a]
     28     __cpp_lib_bool_constant                        201505L [C++17]
     29     __cpp_lib_boyer_moore_searcher                 201603L [C++17]
     30     __cpp_lib_byte                                 201603L [C++17]
     31     __cpp_lib_char8_t                              201811L [C++2a]
     32     __cpp_lib_chrono                               201611L [C++17]
     33     __cpp_lib_chrono_udls                          201304L [C++14]
     34     __cpp_lib_clamp                                201603L [C++17]
     35     __cpp_lib_complex_udls                         201309L [C++14]
     36     __cpp_lib_concepts                             201806L [C++2a]
     37     __cpp_lib_constexpr_misc                       201811L [C++2a]
     38     __cpp_lib_constexpr_swap_algorithms            201806L [C++2a]
     39     __cpp_lib_destroying_delete                    201806L [C++2a]
     40     __cpp_lib_enable_shared_from_this              201603L [C++17]
     41     __cpp_lib_erase_if                             201811L [C++2a]
     42     __cpp_lib_exchange_function                    201304L [C++14]
     43     __cpp_lib_execution                            201603L [C++17]
     44     __cpp_lib_filesystem                           201703L [C++17]
     45     __cpp_lib_gcd_lcm                              201606L [C++17]
     46     __cpp_lib_generic_associative_lookup           201304L [C++14]
     47     __cpp_lib_generic_unordered_lookup             201811L [C++2a]
     48     __cpp_lib_hardware_interference_size           201703L [C++17]
     49     __cpp_lib_has_unique_object_representations    201606L [C++17]
     50     __cpp_lib_hypot                                201603L [C++17]
     51     __cpp_lib_incomplete_container_elements        201505L [C++17]
     52     __cpp_lib_integer_sequence                     201304L [C++14]
     53     __cpp_lib_integral_constant_callable           201304L [C++14]
     54     __cpp_lib_invoke                               201411L [C++17]
     55     __cpp_lib_is_aggregate                         201703L [C++17]
     56     __cpp_lib_is_constant_evaluated                201811L [C++2a]
     57     __cpp_lib_is_final                             201402L [C++14]
     58     __cpp_lib_is_invocable                         201703L [C++17]
     59     __cpp_lib_is_null_pointer                      201309L [C++14]
     60     __cpp_lib_is_swappable                         201603L [C++17]
     61     __cpp_lib_launder                              201606L [C++17]
     62     __cpp_lib_list_remove_return_type              201806L [C++2a]
     63     __cpp_lib_logical_traits                       201510L [C++17]
     64     __cpp_lib_make_from_tuple                      201606L [C++17]
     65     __cpp_lib_make_reverse_iterator                201402L [C++14]
     66     __cpp_lib_make_unique                          201304L [C++14]
     67     __cpp_lib_map_try_emplace                      201411L [C++17]
     68     __cpp_lib_math_special_functions               201603L [C++17]
     69     __cpp_lib_memory_resource                      201603L [C++17]
     70     __cpp_lib_node_extract                         201606L [C++17]
     71     __cpp_lib_nonmember_container_access           201411L [C++17]
     72     __cpp_lib_not_fn                               201603L [C++17]
     73     __cpp_lib_null_iterators                       201304L [C++14]
     74     __cpp_lib_optional                             201606L [C++17]
     75     __cpp_lib_parallel_algorithm                   201603L [C++17]
     76     __cpp_lib_quoted_string_io                     201304L [C++14]
     77     __cpp_lib_ranges                               201811L [C++2a]
     78     __cpp_lib_raw_memory_algorithms                201606L [C++17]
     79     __cpp_lib_result_of_sfinae                     201210L [C++14]
     80     __cpp_lib_robust_nonmodifying_seq_ops          201304L [C++14]
     81     __cpp_lib_sample                               201603L [C++17]
     82     __cpp_lib_scoped_lock                          201703L [C++17]
     83     __cpp_lib_shared_mutex                         201505L [C++17]
     84     __cpp_lib_shared_ptr_arrays                    201611L [C++17]
     85     __cpp_lib_shared_ptr_weak_type                 201606L [C++17]
     86     __cpp_lib_shared_timed_mutex                   201402L [C++14]
     87     __cpp_lib_string_udls                          201304L [C++14]
     88     __cpp_lib_string_view                          201606L [C++17]
     89     __cpp_lib_three_way_comparison                 201711L [C++2a]
     90     __cpp_lib_to_chars                             201611L [C++17]
     91     __cpp_lib_transformation_trait_aliases         201304L [C++14]
     92     __cpp_lib_transparent_operators                201210L [C++14]
     93                                                    201510L [C++17]
     94     __cpp_lib_tuple_element_t                      201402L [C++14]
     95     __cpp_lib_tuples_by_type                       201304L [C++14]
     96     __cpp_lib_type_trait_variable_templates        201510L [C++17]
     97     __cpp_lib_uncaught_exceptions                  201411L [C++17]
     98     __cpp_lib_unordered_map_try_emplace            201411L [C++17]
     99     __cpp_lib_variant                              201606L [C++17]
    100     __cpp_lib_void_t                               201411L [C++17]
    101 */
    102 
    103 #include <version>
    104 #include "test_macros.h"
    105 
    106 #if TEST_STD_VER < 14
    107 
    108 # ifdef __cpp_lib_addressof_constexpr
    109 #   error "__cpp_lib_addressof_constexpr should not be defined before c++17"
    110 # endif
    111 
    112 # ifdef __cpp_lib_allocator_traits_is_always_equal
    113 #   error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
    114 # endif
    115 
    116 # ifdef __cpp_lib_any
    117 #   error "__cpp_lib_any should not be defined before c++17"
    118 # endif
    119 
    120 # ifdef __cpp_lib_apply
    121 #   error "__cpp_lib_apply should not be defined before c++17"
    122 # endif
    123 
    124 # ifdef __cpp_lib_array_constexpr
    125 #   error "__cpp_lib_array_constexpr should not be defined before c++17"
    126 # endif
    127 
    128 # ifdef __cpp_lib_as_const
    129 #   error "__cpp_lib_as_const should not be defined before c++17"
    130 # endif
    131 
    132 # ifdef __cpp_lib_atomic_is_always_lock_free
    133 #   error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17"
    134 # endif
    135 
    136 # ifdef __cpp_lib_atomic_ref
    137 #   error "__cpp_lib_atomic_ref should not be defined before c++2a"
    138 # endif
    139 
    140 # ifdef __cpp_lib_bind_front
    141 #   error "__cpp_lib_bind_front should not be defined before c++2a"
    142 # endif
    143 
    144 # ifdef __cpp_lib_bit_cast
    145 #   error "__cpp_lib_bit_cast should not be defined before c++2a"
    146 # endif
    147 
    148 # ifdef __cpp_lib_bool_constant
    149 #   error "__cpp_lib_bool_constant should not be defined before c++17"
    150 # endif
    151 
    152 # ifdef __cpp_lib_boyer_moore_searcher
    153 #   error "__cpp_lib_boyer_moore_searcher should not be defined before c++17"
    154 # endif
    155 
    156 # ifdef __cpp_lib_byte
    157 #   error "__cpp_lib_byte should not be defined before c++17"
    158 # endif
    159 
    160 # ifdef __cpp_lib_char8_t
    161 #   error "__cpp_lib_char8_t should not be defined before c++2a"
    162 # endif
    163 
    164 # ifdef __cpp_lib_chrono
    165 #   error "__cpp_lib_chrono should not be defined before c++17"
    166 # endif
    167 
    168 # ifdef __cpp_lib_chrono_udls
    169 #   error "__cpp_lib_chrono_udls should not be defined before c++14"
    170 # endif
    171 
    172 # ifdef __cpp_lib_clamp
    173 #   error "__cpp_lib_clamp should not be defined before c++17"
    174 # endif
    175 
    176 # ifdef __cpp_lib_complex_udls
    177 #   error "__cpp_lib_complex_udls should not be defined before c++14"
    178 # endif
    179 
    180 # ifdef __cpp_lib_concepts
    181 #   error "__cpp_lib_concepts should not be defined before c++2a"
    182 # endif
    183 
    184 # ifdef __cpp_lib_constexpr_misc
    185 #   error "__cpp_lib_constexpr_misc should not be defined before c++2a"
    186 # endif
    187 
    188 # ifdef __cpp_lib_constexpr_swap_algorithms
    189 #   error "__cpp_lib_constexpr_swap_algorithms should not be defined before c++2a"
    190 # endif
    191 
    192 # ifdef __cpp_lib_destroying_delete
    193 #   error "__cpp_lib_destroying_delete should not be defined before c++2a"
    194 # endif
    195 
    196 # ifdef __cpp_lib_enable_shared_from_this
    197 #   error "__cpp_lib_enable_shared_from_this should not be defined before c++17"
    198 # endif
    199 
    200 # ifdef __cpp_lib_erase_if
    201 #   error "__cpp_lib_erase_if should not be defined before c++2a"
    202 # endif
    203 
    204 # ifdef __cpp_lib_exchange_function
    205 #   error "__cpp_lib_exchange_function should not be defined before c++14"
    206 # endif
    207 
    208 # ifdef __cpp_lib_execution
    209 #   error "__cpp_lib_execution should not be defined before c++17"
    210 # endif
    211 
    212 # ifdef __cpp_lib_filesystem
    213 #   error "__cpp_lib_filesystem should not be defined before c++17"
    214 # endif
    215 
    216 # ifdef __cpp_lib_gcd_lcm
    217 #   error "__cpp_lib_gcd_lcm should not be defined before c++17"
    218 # endif
    219 
    220 # ifdef __cpp_lib_generic_associative_lookup
    221 #   error "__cpp_lib_generic_associative_lookup should not be defined before c++14"
    222 # endif
    223 
    224 # ifdef __cpp_lib_generic_unordered_lookup
    225 #   error "__cpp_lib_generic_unordered_lookup should not be defined before c++2a"
    226 # endif
    227 
    228 # ifdef __cpp_lib_hardware_interference_size
    229 #   error "__cpp_lib_hardware_interference_size should not be defined before c++17"
    230 # endif
    231 
    232 # ifdef __cpp_lib_has_unique_object_representations
    233 #   error "__cpp_lib_has_unique_object_representations should not be defined before c++17"
    234 # endif
    235 
    236 # ifdef __cpp_lib_hypot
    237 #   error "__cpp_lib_hypot should not be defined before c++17"
    238 # endif
    239 
    240 # ifdef __cpp_lib_incomplete_container_elements
    241 #   error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
    242 # endif
    243 
    244 # ifdef __cpp_lib_integer_sequence
    245 #   error "__cpp_lib_integer_sequence should not be defined before c++14"
    246 # endif
    247 
    248 # ifdef __cpp_lib_integral_constant_callable
    249 #   error "__cpp_lib_integral_constant_callable should not be defined before c++14"
    250 # endif
    251 
    252 # ifdef __cpp_lib_invoke
    253 #   error "__cpp_lib_invoke should not be defined before c++17"
    254 # endif
    255 
    256 # ifdef __cpp_lib_is_aggregate
    257 #   error "__cpp_lib_is_aggregate should not be defined before c++17"
    258 # endif
    259 
    260 # ifdef __cpp_lib_is_constant_evaluated
    261 #   error "__cpp_lib_is_constant_evaluated should not be defined before c++2a"
    262 # endif
    263 
    264 # ifdef __cpp_lib_is_final
    265 #   error "__cpp_lib_is_final should not be defined before c++14"
    266 # endif
    267 
    268 # ifdef __cpp_lib_is_invocable
    269 #   error "__cpp_lib_is_invocable should not be defined before c++17"
    270 # endif
    271 
    272 # ifdef __cpp_lib_is_null_pointer
    273 #   error "__cpp_lib_is_null_pointer should not be defined before c++14"
    274 # endif
    275 
    276 # ifdef __cpp_lib_is_swappable
    277 #   error "__cpp_lib_is_swappable should not be defined before c++17"
    278 # endif
    279 
    280 # ifdef __cpp_lib_launder
    281 #   error "__cpp_lib_launder should not be defined before c++17"
    282 # endif
    283 
    284 # ifdef __cpp_lib_list_remove_return_type
    285 #   error "__cpp_lib_list_remove_return_type should not be defined before c++2a"
    286 # endif
    287 
    288 # ifdef __cpp_lib_logical_traits
    289 #   error "__cpp_lib_logical_traits should not be defined before c++17"
    290 # endif
    291 
    292 # ifdef __cpp_lib_make_from_tuple
    293 #   error "__cpp_lib_make_from_tuple should not be defined before c++17"
    294 # endif
    295 
    296 # ifdef __cpp_lib_make_reverse_iterator
    297 #   error "__cpp_lib_make_reverse_iterator should not be defined before c++14"
    298 # endif
    299 
    300 # ifdef __cpp_lib_make_unique
    301 #   error "__cpp_lib_make_unique should not be defined before c++14"
    302 # endif
    303 
    304 # ifdef __cpp_lib_map_try_emplace
    305 #   error "__cpp_lib_map_try_emplace should not be defined before c++17"
    306 # endif
    307 
    308 # ifdef __cpp_lib_math_special_functions
    309 #   error "__cpp_lib_math_special_functions should not be defined before c++17"
    310 # endif
    311 
    312 # ifdef __cpp_lib_memory_resource
    313 #   error "__cpp_lib_memory_resource should not be defined before c++17"
    314 # endif
    315 
    316 # ifdef __cpp_lib_node_extract
    317 #   error "__cpp_lib_node_extract should not be defined before c++17"
    318 # endif
    319 
    320 # ifdef __cpp_lib_nonmember_container_access
    321 #   error "__cpp_lib_nonmember_container_access should not be defined before c++17"
    322 # endif
    323 
    324 # ifdef __cpp_lib_not_fn
    325 #   error "__cpp_lib_not_fn should not be defined before c++17"
    326 # endif
    327 
    328 # ifdef __cpp_lib_null_iterators
    329 #   error "__cpp_lib_null_iterators should not be defined before c++14"
    330 # endif
    331 
    332 # ifdef __cpp_lib_optional
    333 #   error "__cpp_lib_optional should not be defined before c++17"
    334 # endif
    335 
    336 # ifdef __cpp_lib_parallel_algorithm
    337 #   error "__cpp_lib_parallel_algorithm should not be defined before c++17"
    338 # endif
    339 
    340 # ifdef __cpp_lib_quoted_string_io
    341 #   error "__cpp_lib_quoted_string_io should not be defined before c++14"
    342 # endif
    343 
    344 # ifdef __cpp_lib_ranges
    345 #   error "__cpp_lib_ranges should not be defined before c++2a"
    346 # endif
    347 
    348 # ifdef __cpp_lib_raw_memory_algorithms
    349 #   error "__cpp_lib_raw_memory_algorithms should not be defined before c++17"
    350 # endif
    351 
    352 # ifdef __cpp_lib_result_of_sfinae
    353 #   error "__cpp_lib_result_of_sfinae should not be defined before c++14"
    354 # endif
    355 
    356 # ifdef __cpp_lib_robust_nonmodifying_seq_ops
    357 #   error "__cpp_lib_robust_nonmodifying_seq_ops should not be defined before c++14"
    358 # endif
    359 
    360 # ifdef __cpp_lib_sample
    361 #   error "__cpp_lib_sample should not be defined before c++17"
    362 # endif
    363 
    364 # ifdef __cpp_lib_scoped_lock
    365 #   error "__cpp_lib_scoped_lock should not be defined before c++17"
    366 # endif
    367 
    368 # ifdef __cpp_lib_shared_mutex
    369 #   error "__cpp_lib_shared_mutex should not be defined before c++17"
    370 # endif
    371 
    372 # ifdef __cpp_lib_shared_ptr_arrays
    373 #   error "__cpp_lib_shared_ptr_arrays should not be defined before c++17"
    374 # endif
    375 
    376 # ifdef __cpp_lib_shared_ptr_weak_type
    377 #   error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17"
    378 # endif
    379 
    380 # ifdef __cpp_lib_shared_timed_mutex
    381 #   error "__cpp_lib_shared_timed_mutex should not be defined before c++14"
    382 # endif
    383 
    384 # ifdef __cpp_lib_string_udls
    385 #   error "__cpp_lib_string_udls should not be defined before c++14"
    386 # endif
    387 
    388 # ifdef __cpp_lib_string_view
    389 #   error "__cpp_lib_string_view should not be defined before c++17"
    390 # endif
    391 
    392 # ifdef __cpp_lib_three_way_comparison
    393 #   error "__cpp_lib_three_way_comparison should not be defined before c++2a"
    394 # endif
    395 
    396 # ifdef __cpp_lib_to_chars
    397 #   error "__cpp_lib_to_chars should not be defined before c++17"
    398 # endif
    399 
    400 # ifdef __cpp_lib_transformation_trait_aliases
    401 #   error "__cpp_lib_transformation_trait_aliases should not be defined before c++14"
    402 # endif
    403 
    404 # ifdef __cpp_lib_transparent_operators
    405 #   error "__cpp_lib_transparent_operators should not be defined before c++14"
    406 # endif
    407 
    408 # ifdef __cpp_lib_tuple_element_t
    409 #   error "__cpp_lib_tuple_element_t should not be defined before c++14"
    410 # endif
    411 
    412 # ifdef __cpp_lib_tuples_by_type
    413 #   error "__cpp_lib_tuples_by_type should not be defined before c++14"
    414 # endif
    415 
    416 # ifdef __cpp_lib_type_trait_variable_templates
    417 #   error "__cpp_lib_type_trait_variable_templates should not be defined before c++17"
    418 # endif
    419 
    420 # ifdef __cpp_lib_uncaught_exceptions
    421 #   error "__cpp_lib_uncaught_exceptions should not be defined before c++17"
    422 # endif
    423 
    424 # ifdef __cpp_lib_unordered_map_try_emplace
    425 #   error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17"
    426 # endif
    427 
    428 # ifdef __cpp_lib_variant
    429 #   error "__cpp_lib_variant should not be defined before c++17"
    430 # endif
    431 
    432 # ifdef __cpp_lib_void_t
    433 #   error "__cpp_lib_void_t should not be defined before c++17"
    434 # endif
    435 
    436 #elif TEST_STD_VER == 14
    437 
    438 # ifdef __cpp_lib_addressof_constexpr
    439 #   error "__cpp_lib_addressof_constexpr should not be defined before c++17"
    440 # endif
    441 
    442 # ifdef __cpp_lib_allocator_traits_is_always_equal
    443 #   error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"
    444 # endif
    445 
    446 # ifdef __cpp_lib_any
    447 #   error "__cpp_lib_any should not be defined before c++17"
    448 # endif
    449 
    450 # ifdef __cpp_lib_apply
    451 #   error "__cpp_lib_apply should not be defined before c++17"
    452 # endif
    453 
    454 # ifdef __cpp_lib_array_constexpr
    455 #   error "__cpp_lib_array_constexpr should not be defined before c++17"
    456 # endif
    457 
    458 # ifdef __cpp_lib_as_const
    459 #   error "__cpp_lib_as_const should not be defined before c++17"
    460 # endif
    461 
    462 # ifdef __cpp_lib_atomic_is_always_lock_free
    463 #   error "__cpp_lib_atomic_is_always_lock_free should not be defined before c++17"
    464 # endif
    465 
    466 # ifdef __cpp_lib_atomic_ref
    467 #   error "__cpp_lib_atomic_ref should not be defined before c++2a"
    468 # endif
    469 
    470 # ifdef __cpp_lib_bind_front
    471 #   error "__cpp_lib_bind_front should not be defined before c++2a"
    472 # endif
    473 
    474 # ifdef __cpp_lib_bit_cast
    475 #   error "__cpp_lib_bit_cast should not be defined before c++2a"
    476 # endif
    477 
    478 # ifdef __cpp_lib_bool_constant
    479 #   error "__cpp_lib_bool_constant should not be defined before c++17"
    480 # endif
    481 
    482 # ifdef __cpp_lib_boyer_moore_searcher
    483 #   error "__cpp_lib_boyer_moore_searcher should not be defined before c++17"
    484 # endif
    485 
    486 # ifdef __cpp_lib_byte
    487 #   error "__cpp_lib_byte should not be defined before c++17"
    488 # endif
    489 
    490 # ifdef __cpp_lib_char8_t
    491 #   error "__cpp_lib_char8_t should not be defined before c++2a"
    492 # endif
    493 
    494 # ifdef __cpp_lib_chrono
    495 #   error "__cpp_lib_chrono should not be defined before c++17"
    496 # endif
    497 
    498 # ifndef __cpp_lib_chrono_udls
    499 #   error "__cpp_lib_chrono_udls should be defined in c++14"
    500 # endif
    501 # if __cpp_lib_chrono_udls != 201304L
    502 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++14"
    503 # endif
    504 
    505 # ifdef __cpp_lib_clamp
    506 #   error "__cpp_lib_clamp should not be defined before c++17"
    507 # endif
    508 
    509 # ifndef __cpp_lib_complex_udls
    510 #   error "__cpp_lib_complex_udls should be defined in c++14"
    511 # endif
    512 # if __cpp_lib_complex_udls != 201309L
    513 #   error "__cpp_lib_complex_udls should have the value 201309L in c++14"
    514 # endif
    515 
    516 # ifdef __cpp_lib_concepts
    517 #   error "__cpp_lib_concepts should not be defined before c++2a"
    518 # endif
    519 
    520 # ifdef __cpp_lib_constexpr_misc
    521 #   error "__cpp_lib_constexpr_misc should not be defined before c++2a"
    522 # endif
    523 
    524 # ifdef __cpp_lib_constexpr_swap_algorithms
    525 #   error "__cpp_lib_constexpr_swap_algorithms should not be defined before c++2a"
    526 # endif
    527 
    528 # ifdef __cpp_lib_destroying_delete
    529 #   error "__cpp_lib_destroying_delete should not be defined before c++2a"
    530 # endif
    531 
    532 # ifdef __cpp_lib_enable_shared_from_this
    533 #   error "__cpp_lib_enable_shared_from_this should not be defined before c++17"
    534 # endif
    535 
    536 # ifdef __cpp_lib_erase_if
    537 #   error "__cpp_lib_erase_if should not be defined before c++2a"
    538 # endif
    539 
    540 # ifndef __cpp_lib_exchange_function
    541 #   error "__cpp_lib_exchange_function should be defined in c++14"
    542 # endif
    543 # if __cpp_lib_exchange_function != 201304L
    544 #   error "__cpp_lib_exchange_function should have the value 201304L in c++14"
    545 # endif
    546 
    547 # ifdef __cpp_lib_execution
    548 #   error "__cpp_lib_execution should not be defined before c++17"
    549 # endif
    550 
    551 # ifdef __cpp_lib_filesystem
    552 #   error "__cpp_lib_filesystem should not be defined before c++17"
    553 # endif
    554 
    555 # ifdef __cpp_lib_gcd_lcm
    556 #   error "__cpp_lib_gcd_lcm should not be defined before c++17"
    557 # endif
    558 
    559 # ifndef __cpp_lib_generic_associative_lookup
    560 #   error "__cpp_lib_generic_associative_lookup should be defined in c++14"
    561 # endif
    562 # if __cpp_lib_generic_associative_lookup != 201304L
    563 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14"
    564 # endif
    565 
    566 # ifdef __cpp_lib_generic_unordered_lookup
    567 #   error "__cpp_lib_generic_unordered_lookup should not be defined before c++2a"
    568 # endif
    569 
    570 # ifdef __cpp_lib_hardware_interference_size
    571 #   error "__cpp_lib_hardware_interference_size should not be defined before c++17"
    572 # endif
    573 
    574 # ifdef __cpp_lib_has_unique_object_representations
    575 #   error "__cpp_lib_has_unique_object_representations should not be defined before c++17"
    576 # endif
    577 
    578 # ifdef __cpp_lib_hypot
    579 #   error "__cpp_lib_hypot should not be defined before c++17"
    580 # endif
    581 
    582 # ifdef __cpp_lib_incomplete_container_elements
    583 #   error "__cpp_lib_incomplete_container_elements should not be defined before c++17"
    584 # endif
    585 
    586 # ifndef __cpp_lib_integer_sequence
    587 #   error "__cpp_lib_integer_sequence should be defined in c++14"
    588 # endif
    589 # if __cpp_lib_integer_sequence != 201304L
    590 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++14"
    591 # endif
    592 
    593 # ifndef __cpp_lib_integral_constant_callable
    594 #   error "__cpp_lib_integral_constant_callable should be defined in c++14"
    595 # endif
    596 # if __cpp_lib_integral_constant_callable != 201304L
    597 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++14"
    598 # endif
    599 
    600 # ifdef __cpp_lib_invoke
    601 #   error "__cpp_lib_invoke should not be defined before c++17"
    602 # endif
    603 
    604 # ifdef __cpp_lib_is_aggregate
    605 #   error "__cpp_lib_is_aggregate should not be defined before c++17"
    606 # endif
    607 
    608 # ifdef __cpp_lib_is_constant_evaluated
    609 #   error "__cpp_lib_is_constant_evaluated should not be defined before c++2a"
    610 # endif
    611 
    612 # ifndef __cpp_lib_is_final
    613 #   error "__cpp_lib_is_final should be defined in c++14"
    614 # endif
    615 # if __cpp_lib_is_final != 201402L
    616 #   error "__cpp_lib_is_final should have the value 201402L in c++14"
    617 # endif
    618 
    619 # ifdef __cpp_lib_is_invocable
    620 #   error "__cpp_lib_is_invocable should not be defined before c++17"
    621 # endif
    622 
    623 # ifndef __cpp_lib_is_null_pointer
    624 #   error "__cpp_lib_is_null_pointer should be defined in c++14"
    625 # endif
    626 # if __cpp_lib_is_null_pointer != 201309L
    627 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++14"
    628 # endif
    629 
    630 # ifdef __cpp_lib_is_swappable
    631 #   error "__cpp_lib_is_swappable should not be defined before c++17"
    632 # endif
    633 
    634 # ifdef __cpp_lib_launder
    635 #   error "__cpp_lib_launder should not be defined before c++17"
    636 # endif
    637 
    638 # ifdef __cpp_lib_list_remove_return_type
    639 #   error "__cpp_lib_list_remove_return_type should not be defined before c++2a"
    640 # endif
    641 
    642 # ifdef __cpp_lib_logical_traits
    643 #   error "__cpp_lib_logical_traits should not be defined before c++17"
    644 # endif
    645 
    646 # ifdef __cpp_lib_make_from_tuple
    647 #   error "__cpp_lib_make_from_tuple should not be defined before c++17"
    648 # endif
    649 
    650 # ifndef __cpp_lib_make_reverse_iterator
    651 #   error "__cpp_lib_make_reverse_iterator should be defined in c++14"
    652 # endif
    653 # if __cpp_lib_make_reverse_iterator != 201402L
    654 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++14"
    655 # endif
    656 
    657 # ifndef __cpp_lib_make_unique
    658 #   error "__cpp_lib_make_unique should be defined in c++14"
    659 # endif
    660 # if __cpp_lib_make_unique != 201304L
    661 #   error "__cpp_lib_make_unique should have the value 201304L in c++14"
    662 # endif
    663 
    664 # ifdef __cpp_lib_map_try_emplace
    665 #   error "__cpp_lib_map_try_emplace should not be defined before c++17"
    666 # endif
    667 
    668 # ifdef __cpp_lib_math_special_functions
    669 #   error "__cpp_lib_math_special_functions should not be defined before c++17"
    670 # endif
    671 
    672 # ifdef __cpp_lib_memory_resource
    673 #   error "__cpp_lib_memory_resource should not be defined before c++17"
    674 # endif
    675 
    676 # ifdef __cpp_lib_node_extract
    677 #   error "__cpp_lib_node_extract should not be defined before c++17"
    678 # endif
    679 
    680 # ifdef __cpp_lib_nonmember_container_access
    681 #   error "__cpp_lib_nonmember_container_access should not be defined before c++17"
    682 # endif
    683 
    684 # ifdef __cpp_lib_not_fn
    685 #   error "__cpp_lib_not_fn should not be defined before c++17"
    686 # endif
    687 
    688 # ifndef __cpp_lib_null_iterators
    689 #   error "__cpp_lib_null_iterators should be defined in c++14"
    690 # endif
    691 # if __cpp_lib_null_iterators != 201304L
    692 #   error "__cpp_lib_null_iterators should have the value 201304L in c++14"
    693 # endif
    694 
    695 # ifdef __cpp_lib_optional
    696 #   error "__cpp_lib_optional should not be defined before c++17"
    697 # endif
    698 
    699 # ifdef __cpp_lib_parallel_algorithm
    700 #   error "__cpp_lib_parallel_algorithm should not be defined before c++17"
    701 # endif
    702 
    703 # ifndef __cpp_lib_quoted_string_io
    704 #   error "__cpp_lib_quoted_string_io should be defined in c++14"
    705 # endif
    706 # if __cpp_lib_quoted_string_io != 201304L
    707 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++14"
    708 # endif
    709 
    710 # ifdef __cpp_lib_ranges
    711 #   error "__cpp_lib_ranges should not be defined before c++2a"
    712 # endif
    713 
    714 # ifdef __cpp_lib_raw_memory_algorithms
    715 #   error "__cpp_lib_raw_memory_algorithms should not be defined before c++17"
    716 # endif
    717 
    718 # ifndef __cpp_lib_result_of_sfinae
    719 #   error "__cpp_lib_result_of_sfinae should be defined in c++14"
    720 # endif
    721 # if __cpp_lib_result_of_sfinae != 201210L
    722 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++14"
    723 # endif
    724 
    725 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
    726 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++14"
    727 # endif
    728 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
    729 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++14"
    730 # endif
    731 
    732 # ifdef __cpp_lib_sample
    733 #   error "__cpp_lib_sample should not be defined before c++17"
    734 # endif
    735 
    736 # ifdef __cpp_lib_scoped_lock
    737 #   error "__cpp_lib_scoped_lock should not be defined before c++17"
    738 # endif
    739 
    740 # ifdef __cpp_lib_shared_mutex
    741 #   error "__cpp_lib_shared_mutex should not be defined before c++17"
    742 # endif
    743 
    744 # ifdef __cpp_lib_shared_ptr_arrays
    745 #   error "__cpp_lib_shared_ptr_arrays should not be defined before c++17"
    746 # endif
    747 
    748 # ifdef __cpp_lib_shared_ptr_weak_type
    749 #   error "__cpp_lib_shared_ptr_weak_type should not be defined before c++17"
    750 # endif
    751 
    752 # if !defined(_LIBCPP_HAS_NO_THREADS)
    753 #   ifndef __cpp_lib_shared_timed_mutex
    754 #     error "__cpp_lib_shared_timed_mutex should be defined in c++14"
    755 #   endif
    756 #   if __cpp_lib_shared_timed_mutex != 201402L
    757 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++14"
    758 #   endif
    759 # else
    760 #   ifdef __cpp_lib_shared_timed_mutex
    761 #     error "__cpp_lib_shared_timed_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
    762 #   endif
    763 # endif
    764 
    765 # ifndef __cpp_lib_string_udls
    766 #   error "__cpp_lib_string_udls should be defined in c++14"
    767 # endif
    768 # if __cpp_lib_string_udls != 201304L
    769 #   error "__cpp_lib_string_udls should have the value 201304L in c++14"
    770 # endif
    771 
    772 # ifdef __cpp_lib_string_view
    773 #   error "__cpp_lib_string_view should not be defined before c++17"
    774 # endif
    775 
    776 # ifdef __cpp_lib_three_way_comparison
    777 #   error "__cpp_lib_three_way_comparison should not be defined before c++2a"
    778 # endif
    779 
    780 # ifdef __cpp_lib_to_chars
    781 #   error "__cpp_lib_to_chars should not be defined before c++17"
    782 # endif
    783 
    784 # ifndef __cpp_lib_transformation_trait_aliases
    785 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++14"
    786 # endif
    787 # if __cpp_lib_transformation_trait_aliases != 201304L
    788 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++14"
    789 # endif
    790 
    791 # ifndef __cpp_lib_transparent_operators
    792 #   error "__cpp_lib_transparent_operators should be defined in c++14"
    793 # endif
    794 # if __cpp_lib_transparent_operators != 201210L
    795 #   error "__cpp_lib_transparent_operators should have the value 201210L in c++14"
    796 # endif
    797 
    798 # ifndef __cpp_lib_tuple_element_t
    799 #   error "__cpp_lib_tuple_element_t should be defined in c++14"
    800 # endif
    801 # if __cpp_lib_tuple_element_t != 201402L
    802 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++14"
    803 # endif
    804 
    805 # ifndef __cpp_lib_tuples_by_type
    806 #   error "__cpp_lib_tuples_by_type should be defined in c++14"
    807 # endif
    808 # if __cpp_lib_tuples_by_type != 201304L
    809 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++14"
    810 # endif
    811 
    812 # ifdef __cpp_lib_type_trait_variable_templates
    813 #   error "__cpp_lib_type_trait_variable_templates should not be defined before c++17"
    814 # endif
    815 
    816 # ifdef __cpp_lib_uncaught_exceptions
    817 #   error "__cpp_lib_uncaught_exceptions should not be defined before c++17"
    818 # endif
    819 
    820 # ifdef __cpp_lib_unordered_map_try_emplace
    821 #   error "__cpp_lib_unordered_map_try_emplace should not be defined before c++17"
    822 # endif
    823 
    824 # ifdef __cpp_lib_variant
    825 #   error "__cpp_lib_variant should not be defined before c++17"
    826 # endif
    827 
    828 # ifdef __cpp_lib_void_t
    829 #   error "__cpp_lib_void_t should not be defined before c++17"
    830 # endif
    831 
    832 #elif TEST_STD_VER == 17
    833 
    834 # if TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700
    835 #   ifndef __cpp_lib_addressof_constexpr
    836 #     error "__cpp_lib_addressof_constexpr should be defined in c++17"
    837 #   endif
    838 #   if __cpp_lib_addressof_constexpr != 201603L
    839 #     error "__cpp_lib_addressof_constexpr should have the value 201603L in c++17"
    840 #   endif
    841 # else
    842 #   ifdef __cpp_lib_addressof_constexpr
    843 #     error "__cpp_lib_addressof_constexpr should not be defined when TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700 is not defined!"
    844 #   endif
    845 # endif
    846 
    847 # ifndef __cpp_lib_allocator_traits_is_always_equal
    848 #   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17"
    849 # endif
    850 # if __cpp_lib_allocator_traits_is_always_equal != 201411L
    851 #   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"
    852 # endif
    853 
    854 # ifndef __cpp_lib_any
    855 #   error "__cpp_lib_any should be defined in c++17"
    856 # endif
    857 # if __cpp_lib_any != 201606L
    858 #   error "__cpp_lib_any should have the value 201606L in c++17"
    859 # endif
    860 
    861 # ifndef __cpp_lib_apply
    862 #   error "__cpp_lib_apply should be defined in c++17"
    863 # endif
    864 # if __cpp_lib_apply != 201603L
    865 #   error "__cpp_lib_apply should have the value 201603L in c++17"
    866 # endif
    867 
    868 # ifndef __cpp_lib_array_constexpr
    869 #   error "__cpp_lib_array_constexpr should be defined in c++17"
    870 # endif
    871 # if __cpp_lib_array_constexpr != 201603L
    872 #   error "__cpp_lib_array_constexpr should have the value 201603L in c++17"
    873 # endif
    874 
    875 # ifndef __cpp_lib_as_const
    876 #   error "__cpp_lib_as_const should be defined in c++17"
    877 # endif
    878 # if __cpp_lib_as_const != 201510L
    879 #   error "__cpp_lib_as_const should have the value 201510L in c++17"
    880 # endif
    881 
    882 # if !defined(_LIBCPP_HAS_NO_THREADS)
    883 #   ifndef __cpp_lib_atomic_is_always_lock_free
    884 #     error "__cpp_lib_atomic_is_always_lock_free should be defined in c++17"
    885 #   endif
    886 #   if __cpp_lib_atomic_is_always_lock_free != 201603L
    887 #     error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++17"
    888 #   endif
    889 # else
    890 #   ifdef __cpp_lib_atomic_is_always_lock_free
    891 #     error "__cpp_lib_atomic_is_always_lock_free should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
    892 #   endif
    893 # endif
    894 
    895 # ifdef __cpp_lib_atomic_ref
    896 #   error "__cpp_lib_atomic_ref should not be defined before c++2a"
    897 # endif
    898 
    899 # ifdef __cpp_lib_bind_front
    900 #   error "__cpp_lib_bind_front should not be defined before c++2a"
    901 # endif
    902 
    903 # ifdef __cpp_lib_bit_cast
    904 #   error "__cpp_lib_bit_cast should not be defined before c++2a"
    905 # endif
    906 
    907 # ifndef __cpp_lib_bool_constant
    908 #   error "__cpp_lib_bool_constant should be defined in c++17"
    909 # endif
    910 # if __cpp_lib_bool_constant != 201505L
    911 #   error "__cpp_lib_bool_constant should have the value 201505L in c++17"
    912 # endif
    913 
    914 # if !defined(_LIBCPP_VERSION)
    915 #   ifndef __cpp_lib_boyer_moore_searcher
    916 #     error "__cpp_lib_boyer_moore_searcher should be defined in c++17"
    917 #   endif
    918 #   if __cpp_lib_boyer_moore_searcher != 201603L
    919 #     error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++17"
    920 #   endif
    921 # else // _LIBCPP_VERSION
    922 #   ifdef __cpp_lib_boyer_moore_searcher
    923 #     error "__cpp_lib_boyer_moore_searcher should not be defined because it is unimplemented in libc++!"
    924 #   endif
    925 # endif
    926 
    927 # ifndef __cpp_lib_byte
    928 #   error "__cpp_lib_byte should be defined in c++17"
    929 # endif
    930 # if __cpp_lib_byte != 201603L
    931 #   error "__cpp_lib_byte should have the value 201603L in c++17"
    932 # endif
    933 
    934 # ifdef __cpp_lib_char8_t
    935 #   error "__cpp_lib_char8_t should not be defined before c++2a"
    936 # endif
    937 
    938 # ifndef __cpp_lib_chrono
    939 #   error "__cpp_lib_chrono should be defined in c++17"
    940 # endif
    941 # if __cpp_lib_chrono != 201611L
    942 #   error "__cpp_lib_chrono should have the value 201611L in c++17"
    943 # endif
    944 
    945 # ifndef __cpp_lib_chrono_udls
    946 #   error "__cpp_lib_chrono_udls should be defined in c++17"
    947 # endif
    948 # if __cpp_lib_chrono_udls != 201304L
    949 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++17"
    950 # endif
    951 
    952 # ifndef __cpp_lib_clamp
    953 #   error "__cpp_lib_clamp should be defined in c++17"
    954 # endif
    955 # if __cpp_lib_clamp != 201603L
    956 #   error "__cpp_lib_clamp should have the value 201603L in c++17"
    957 # endif
    958 
    959 # ifndef __cpp_lib_complex_udls
    960 #   error "__cpp_lib_complex_udls should be defined in c++17"
    961 # endif
    962 # if __cpp_lib_complex_udls != 201309L
    963 #   error "__cpp_lib_complex_udls should have the value 201309L in c++17"
    964 # endif
    965 
    966 # ifdef __cpp_lib_concepts
    967 #   error "__cpp_lib_concepts should not be defined before c++2a"
    968 # endif
    969 
    970 # ifdef __cpp_lib_constexpr_misc
    971 #   error "__cpp_lib_constexpr_misc should not be defined before c++2a"
    972 # endif
    973 
    974 # ifdef __cpp_lib_constexpr_swap_algorithms
    975 #   error "__cpp_lib_constexpr_swap_algorithms should not be defined before c++2a"
    976 # endif
    977 
    978 # ifdef __cpp_lib_destroying_delete
    979 #   error "__cpp_lib_destroying_delete should not be defined before c++2a"
    980 # endif
    981 
    982 # ifndef __cpp_lib_enable_shared_from_this
    983 #   error "__cpp_lib_enable_shared_from_this should be defined in c++17"
    984 # endif
    985 # if __cpp_lib_enable_shared_from_this != 201603L
    986 #   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++17"
    987 # endif
    988 
    989 # ifdef __cpp_lib_erase_if
    990 #   error "__cpp_lib_erase_if should not be defined before c++2a"
    991 # endif
    992 
    993 # ifndef __cpp_lib_exchange_function
    994 #   error "__cpp_lib_exchange_function should be defined in c++17"
    995 # endif
    996 # if __cpp_lib_exchange_function != 201304L
    997 #   error "__cpp_lib_exchange_function should have the value 201304L in c++17"
    998 # endif
    999 
   1000 # if !defined(_LIBCPP_VERSION)
   1001 #   ifndef __cpp_lib_execution
   1002 #     error "__cpp_lib_execution should be defined in c++17"
   1003 #   endif
   1004 #   if __cpp_lib_execution != 201603L
   1005 #     error "__cpp_lib_execution should have the value 201603L in c++17"
   1006 #   endif
   1007 # else // _LIBCPP_VERSION
   1008 #   ifdef __cpp_lib_execution
   1009 #     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
   1010 #   endif
   1011 # endif
   1012 
   1013 # ifndef __cpp_lib_filesystem
   1014 #   error "__cpp_lib_filesystem should be defined in c++17"
   1015 # endif
   1016 # if __cpp_lib_filesystem != 201703L
   1017 #   error "__cpp_lib_filesystem should have the value 201703L in c++17"
   1018 # endif
   1019 
   1020 # ifndef __cpp_lib_gcd_lcm
   1021 #   error "__cpp_lib_gcd_lcm should be defined in c++17"
   1022 # endif
   1023 # if __cpp_lib_gcd_lcm != 201606L
   1024 #   error "__cpp_lib_gcd_lcm should have the value 201606L in c++17"
   1025 # endif
   1026 
   1027 # ifndef __cpp_lib_generic_associative_lookup
   1028 #   error "__cpp_lib_generic_associative_lookup should be defined in c++17"
   1029 # endif
   1030 # if __cpp_lib_generic_associative_lookup != 201304L
   1031 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17"
   1032 # endif
   1033 
   1034 # ifdef __cpp_lib_generic_unordered_lookup
   1035 #   error "__cpp_lib_generic_unordered_lookup should not be defined before c++2a"
   1036 # endif
   1037 
   1038 # ifndef __cpp_lib_hardware_interference_size
   1039 #   error "__cpp_lib_hardware_interference_size should be defined in c++17"
   1040 # endif
   1041 # if __cpp_lib_hardware_interference_size != 201703L
   1042 #   error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17"
   1043 # endif
   1044 
   1045 # if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
   1046 #   ifndef __cpp_lib_has_unique_object_representations
   1047 #     error "__cpp_lib_has_unique_object_representations should be defined in c++17"
   1048 #   endif
   1049 #   if __cpp_lib_has_unique_object_representations != 201606L
   1050 #     error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++17"
   1051 #   endif
   1052 # else
   1053 #   ifdef __cpp_lib_has_unique_object_representations
   1054 #     error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
   1055 #   endif
   1056 # endif
   1057 
   1058 # ifndef __cpp_lib_hypot
   1059 #   error "__cpp_lib_hypot should be defined in c++17"
   1060 # endif
   1061 # if __cpp_lib_hypot != 201603L
   1062 #   error "__cpp_lib_hypot should have the value 201603L in c++17"
   1063 # endif
   1064 
   1065 # ifndef __cpp_lib_incomplete_container_elements
   1066 #   error "__cpp_lib_incomplete_container_elements should be defined in c++17"
   1067 # endif
   1068 # if __cpp_lib_incomplete_container_elements != 201505L
   1069 #   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++17"
   1070 # endif
   1071 
   1072 # ifndef __cpp_lib_integer_sequence
   1073 #   error "__cpp_lib_integer_sequence should be defined in c++17"
   1074 # endif
   1075 # if __cpp_lib_integer_sequence != 201304L
   1076 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++17"
   1077 # endif
   1078 
   1079 # ifndef __cpp_lib_integral_constant_callable
   1080 #   error "__cpp_lib_integral_constant_callable should be defined in c++17"
   1081 # endif
   1082 # if __cpp_lib_integral_constant_callable != 201304L
   1083 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++17"
   1084 # endif
   1085 
   1086 # ifndef __cpp_lib_invoke
   1087 #   error "__cpp_lib_invoke should be defined in c++17"
   1088 # endif
   1089 # if __cpp_lib_invoke != 201411L
   1090 #   error "__cpp_lib_invoke should have the value 201411L in c++17"
   1091 # endif
   1092 
   1093 # if TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001
   1094 #   ifndef __cpp_lib_is_aggregate
   1095 #     error "__cpp_lib_is_aggregate should be defined in c++17"
   1096 #   endif
   1097 #   if __cpp_lib_is_aggregate != 201703L
   1098 #     error "__cpp_lib_is_aggregate should have the value 201703L in c++17"
   1099 #   endif
   1100 # else
   1101 #   ifdef __cpp_lib_is_aggregate
   1102 #     error "__cpp_lib_is_aggregate should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001 is not defined!"
   1103 #   endif
   1104 # endif
   1105 
   1106 # ifdef __cpp_lib_is_constant_evaluated
   1107 #   error "__cpp_lib_is_constant_evaluated should not be defined before c++2a"
   1108 # endif
   1109 
   1110 # ifndef __cpp_lib_is_final
   1111 #   error "__cpp_lib_is_final should be defined in c++17"
   1112 # endif
   1113 # if __cpp_lib_is_final != 201402L
   1114 #   error "__cpp_lib_is_final should have the value 201402L in c++17"
   1115 # endif
   1116 
   1117 # ifndef __cpp_lib_is_invocable
   1118 #   error "__cpp_lib_is_invocable should be defined in c++17"
   1119 # endif
   1120 # if __cpp_lib_is_invocable != 201703L
   1121 #   error "__cpp_lib_is_invocable should have the value 201703L in c++17"
   1122 # endif
   1123 
   1124 # ifndef __cpp_lib_is_null_pointer
   1125 #   error "__cpp_lib_is_null_pointer should be defined in c++17"
   1126 # endif
   1127 # if __cpp_lib_is_null_pointer != 201309L
   1128 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++17"
   1129 # endif
   1130 
   1131 # ifndef __cpp_lib_is_swappable
   1132 #   error "__cpp_lib_is_swappable should be defined in c++17"
   1133 # endif
   1134 # if __cpp_lib_is_swappable != 201603L
   1135 #   error "__cpp_lib_is_swappable should have the value 201603L in c++17"
   1136 # endif
   1137 
   1138 # ifndef __cpp_lib_launder
   1139 #   error "__cpp_lib_launder should be defined in c++17"
   1140 # endif
   1141 # if __cpp_lib_launder != 201606L
   1142 #   error "__cpp_lib_launder should have the value 201606L in c++17"
   1143 # endif
   1144 
   1145 # ifdef __cpp_lib_list_remove_return_type
   1146 #   error "__cpp_lib_list_remove_return_type should not be defined before c++2a"
   1147 # endif
   1148 
   1149 # ifndef __cpp_lib_logical_traits
   1150 #   error "__cpp_lib_logical_traits should be defined in c++17"
   1151 # endif
   1152 # if __cpp_lib_logical_traits != 201510L
   1153 #   error "__cpp_lib_logical_traits should have the value 201510L in c++17"
   1154 # endif
   1155 
   1156 # ifndef __cpp_lib_make_from_tuple
   1157 #   error "__cpp_lib_make_from_tuple should be defined in c++17"
   1158 # endif
   1159 # if __cpp_lib_make_from_tuple != 201606L
   1160 #   error "__cpp_lib_make_from_tuple should have the value 201606L in c++17"
   1161 # endif
   1162 
   1163 # ifndef __cpp_lib_make_reverse_iterator
   1164 #   error "__cpp_lib_make_reverse_iterator should be defined in c++17"
   1165 # endif
   1166 # if __cpp_lib_make_reverse_iterator != 201402L
   1167 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17"
   1168 # endif
   1169 
   1170 # ifndef __cpp_lib_make_unique
   1171 #   error "__cpp_lib_make_unique should be defined in c++17"
   1172 # endif
   1173 # if __cpp_lib_make_unique != 201304L
   1174 #   error "__cpp_lib_make_unique should have the value 201304L in c++17"
   1175 # endif
   1176 
   1177 # ifndef __cpp_lib_map_try_emplace
   1178 #   error "__cpp_lib_map_try_emplace should be defined in c++17"
   1179 # endif
   1180 # if __cpp_lib_map_try_emplace != 201411L
   1181 #   error "__cpp_lib_map_try_emplace should have the value 201411L in c++17"
   1182 # endif
   1183 
   1184 # if !defined(_LIBCPP_VERSION)
   1185 #   ifndef __cpp_lib_math_special_functions
   1186 #     error "__cpp_lib_math_special_functions should be defined in c++17"
   1187 #   endif
   1188 #   if __cpp_lib_math_special_functions != 201603L
   1189 #     error "__cpp_lib_math_special_functions should have the value 201603L in c++17"
   1190 #   endif
   1191 # else // _LIBCPP_VERSION
   1192 #   ifdef __cpp_lib_math_special_functions
   1193 #     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
   1194 #   endif
   1195 # endif
   1196 
   1197 # if !defined(_LIBCPP_VERSION)
   1198 #   ifndef __cpp_lib_memory_resource
   1199 #     error "__cpp_lib_memory_resource should be defined in c++17"
   1200 #   endif
   1201 #   if __cpp_lib_memory_resource != 201603L
   1202 #     error "__cpp_lib_memory_resource should have the value 201603L in c++17"
   1203 #   endif
   1204 # else // _LIBCPP_VERSION
   1205 #   ifdef __cpp_lib_memory_resource
   1206 #     error "__cpp_lib_memory_resource should not be defined because it is unimplemented in libc++!"
   1207 #   endif
   1208 # endif
   1209 
   1210 # ifndef __cpp_lib_node_extract
   1211 #   error "__cpp_lib_node_extract should be defined in c++17"
   1212 # endif
   1213 # if __cpp_lib_node_extract != 201606L
   1214 #   error "__cpp_lib_node_extract should have the value 201606L in c++17"
   1215 # endif
   1216 
   1217 # ifndef __cpp_lib_nonmember_container_access
   1218 #   error "__cpp_lib_nonmember_container_access should be defined in c++17"
   1219 # endif
   1220 # if __cpp_lib_nonmember_container_access != 201411L
   1221 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
   1222 # endif
   1223 
   1224 # ifndef __cpp_lib_not_fn
   1225 #   error "__cpp_lib_not_fn should be defined in c++17"
   1226 # endif
   1227 # if __cpp_lib_not_fn != 201603L
   1228 #   error "__cpp_lib_not_fn should have the value 201603L in c++17"
   1229 # endif
   1230 
   1231 # ifndef __cpp_lib_null_iterators
   1232 #   error "__cpp_lib_null_iterators should be defined in c++17"
   1233 # endif
   1234 # if __cpp_lib_null_iterators != 201304L
   1235 #   error "__cpp_lib_null_iterators should have the value 201304L in c++17"
   1236 # endif
   1237 
   1238 # ifndef __cpp_lib_optional
   1239 #   error "__cpp_lib_optional should be defined in c++17"
   1240 # endif
   1241 # if __cpp_lib_optional != 201606L
   1242 #   error "__cpp_lib_optional should have the value 201606L in c++17"
   1243 # endif
   1244 
   1245 # if !defined(_LIBCPP_VERSION)
   1246 #   ifndef __cpp_lib_parallel_algorithm
   1247 #     error "__cpp_lib_parallel_algorithm should be defined in c++17"
   1248 #   endif
   1249 #   if __cpp_lib_parallel_algorithm != 201603L
   1250 #     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++17"
   1251 #   endif
   1252 # else // _LIBCPP_VERSION
   1253 #   ifdef __cpp_lib_parallel_algorithm
   1254 #     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
   1255 #   endif
   1256 # endif
   1257 
   1258 # ifndef __cpp_lib_quoted_string_io
   1259 #   error "__cpp_lib_quoted_string_io should be defined in c++17"
   1260 # endif
   1261 # if __cpp_lib_quoted_string_io != 201304L
   1262 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++17"
   1263 # endif
   1264 
   1265 # ifdef __cpp_lib_ranges
   1266 #   error "__cpp_lib_ranges should not be defined before c++2a"
   1267 # endif
   1268 
   1269 # ifndef __cpp_lib_raw_memory_algorithms
   1270 #   error "__cpp_lib_raw_memory_algorithms should be defined in c++17"
   1271 # endif
   1272 # if __cpp_lib_raw_memory_algorithms != 201606L
   1273 #   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++17"
   1274 # endif
   1275 
   1276 # ifndef __cpp_lib_result_of_sfinae
   1277 #   error "__cpp_lib_result_of_sfinae should be defined in c++17"
   1278 # endif
   1279 # if __cpp_lib_result_of_sfinae != 201210L
   1280 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++17"
   1281 # endif
   1282 
   1283 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
   1284 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++17"
   1285 # endif
   1286 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
   1287 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++17"
   1288 # endif
   1289 
   1290 # ifndef __cpp_lib_sample
   1291 #   error "__cpp_lib_sample should be defined in c++17"
   1292 # endif
   1293 # if __cpp_lib_sample != 201603L
   1294 #   error "__cpp_lib_sample should have the value 201603L in c++17"
   1295 # endif
   1296 
   1297 # ifndef __cpp_lib_scoped_lock
   1298 #   error "__cpp_lib_scoped_lock should be defined in c++17"
   1299 # endif
   1300 # if __cpp_lib_scoped_lock != 201703L
   1301 #   error "__cpp_lib_scoped_lock should have the value 201703L in c++17"
   1302 # endif
   1303 
   1304 # if !defined(_LIBCPP_HAS_NO_THREADS)
   1305 #   ifndef __cpp_lib_shared_mutex
   1306 #     error "__cpp_lib_shared_mutex should be defined in c++17"
   1307 #   endif
   1308 #   if __cpp_lib_shared_mutex != 201505L
   1309 #     error "__cpp_lib_shared_mutex should have the value 201505L in c++17"
   1310 #   endif
   1311 # else
   1312 #   ifdef __cpp_lib_shared_mutex
   1313 #     error "__cpp_lib_shared_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
   1314 #   endif
   1315 # endif
   1316 
   1317 # if !defined(_LIBCPP_VERSION)
   1318 #   ifndef __cpp_lib_shared_ptr_arrays
   1319 #     error "__cpp_lib_shared_ptr_arrays should be defined in c++17"
   1320 #   endif
   1321 #   if __cpp_lib_shared_ptr_arrays != 201611L
   1322 #     error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++17"
   1323 #   endif
   1324 # else // _LIBCPP_VERSION
   1325 #   ifdef __cpp_lib_shared_ptr_arrays
   1326 #     error "__cpp_lib_shared_ptr_arrays should not be defined because it is unimplemented in libc++!"
   1327 #   endif
   1328 # endif
   1329 
   1330 # ifndef __cpp_lib_shared_ptr_weak_type
   1331 #   error "__cpp_lib_shared_ptr_weak_type should be defined in c++17"
   1332 # endif
   1333 # if __cpp_lib_shared_ptr_weak_type != 201606L
   1334 #   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++17"
   1335 # endif
   1336 
   1337 # if !defined(_LIBCPP_HAS_NO_THREADS)
   1338 #   ifndef __cpp_lib_shared_timed_mutex
   1339 #     error "__cpp_lib_shared_timed_mutex should be defined in c++17"
   1340 #   endif
   1341 #   if __cpp_lib_shared_timed_mutex != 201402L
   1342 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++17"
   1343 #   endif
   1344 # else
   1345 #   ifdef __cpp_lib_shared_timed_mutex
   1346 #     error "__cpp_lib_shared_timed_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
   1347 #   endif
   1348 # endif
   1349 
   1350 # ifndef __cpp_lib_string_udls
   1351 #   error "__cpp_lib_string_udls should be defined in c++17"
   1352 # endif
   1353 # if __cpp_lib_string_udls != 201304L
   1354 #   error "__cpp_lib_string_udls should have the value 201304L in c++17"
   1355 # endif
   1356 
   1357 # ifndef __cpp_lib_string_view
   1358 #   error "__cpp_lib_string_view should be defined in c++17"
   1359 # endif
   1360 # if __cpp_lib_string_view != 201606L
   1361 #   error "__cpp_lib_string_view should have the value 201606L in c++17"
   1362 # endif
   1363 
   1364 # ifdef __cpp_lib_three_way_comparison
   1365 #   error "__cpp_lib_three_way_comparison should not be defined before c++2a"
   1366 # endif
   1367 
   1368 # if !defined(_LIBCPP_VERSION)
   1369 #   ifndef __cpp_lib_to_chars
   1370 #     error "__cpp_lib_to_chars should be defined in c++17"
   1371 #   endif
   1372 #   if __cpp_lib_to_chars != 201611L
   1373 #     error "__cpp_lib_to_chars should have the value 201611L in c++17"
   1374 #   endif
   1375 # else // _LIBCPP_VERSION
   1376 #   ifdef __cpp_lib_to_chars
   1377 #     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
   1378 #   endif
   1379 # endif
   1380 
   1381 # ifndef __cpp_lib_transformation_trait_aliases
   1382 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++17"
   1383 # endif
   1384 # if __cpp_lib_transformation_trait_aliases != 201304L
   1385 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++17"
   1386 # endif
   1387 
   1388 # ifndef __cpp_lib_transparent_operators
   1389 #   error "__cpp_lib_transparent_operators should be defined in c++17"
   1390 # endif
   1391 # if __cpp_lib_transparent_operators != 201510L
   1392 #   error "__cpp_lib_transparent_operators should have the value 201510L in c++17"
   1393 # endif
   1394 
   1395 # ifndef __cpp_lib_tuple_element_t
   1396 #   error "__cpp_lib_tuple_element_t should be defined in c++17"
   1397 # endif
   1398 # if __cpp_lib_tuple_element_t != 201402L
   1399 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++17"
   1400 # endif
   1401 
   1402 # ifndef __cpp_lib_tuples_by_type
   1403 #   error "__cpp_lib_tuples_by_type should be defined in c++17"
   1404 # endif
   1405 # if __cpp_lib_tuples_by_type != 201304L
   1406 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++17"
   1407 # endif
   1408 
   1409 # ifndef __cpp_lib_type_trait_variable_templates
   1410 #   error "__cpp_lib_type_trait_variable_templates should be defined in c++17"
   1411 # endif
   1412 # if __cpp_lib_type_trait_variable_templates != 201510L
   1413 #   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++17"
   1414 # endif
   1415 
   1416 # ifndef __cpp_lib_uncaught_exceptions
   1417 #   error "__cpp_lib_uncaught_exceptions should be defined in c++17"
   1418 # endif
   1419 # if __cpp_lib_uncaught_exceptions != 201411L
   1420 #   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++17"
   1421 # endif
   1422 
   1423 # ifndef __cpp_lib_unordered_map_try_emplace
   1424 #   error "__cpp_lib_unordered_map_try_emplace should be defined in c++17"
   1425 # endif
   1426 # if __cpp_lib_unordered_map_try_emplace != 201411L
   1427 #   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++17"
   1428 # endif
   1429 
   1430 # ifndef __cpp_lib_variant
   1431 #   error "__cpp_lib_variant should be defined in c++17"
   1432 # endif
   1433 # if __cpp_lib_variant != 201606L
   1434 #   error "__cpp_lib_variant should have the value 201606L in c++17"
   1435 # endif
   1436 
   1437 # ifndef __cpp_lib_void_t
   1438 #   error "__cpp_lib_void_t should be defined in c++17"
   1439 # endif
   1440 # if __cpp_lib_void_t != 201411L
   1441 #   error "__cpp_lib_void_t should have the value 201411L in c++17"
   1442 # endif
   1443 
   1444 #elif TEST_STD_VER > 17
   1445 
   1446 # if TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700
   1447 #   ifndef __cpp_lib_addressof_constexpr
   1448 #     error "__cpp_lib_addressof_constexpr should be defined in c++2a"
   1449 #   endif
   1450 #   if __cpp_lib_addressof_constexpr != 201603L
   1451 #     error "__cpp_lib_addressof_constexpr should have the value 201603L in c++2a"
   1452 #   endif
   1453 # else
   1454 #   ifdef __cpp_lib_addressof_constexpr
   1455 #     error "__cpp_lib_addressof_constexpr should not be defined when TEST_HAS_BUILTIN(__builtin_addressof) || TEST_GCC_VER >= 700 is not defined!"
   1456 #   endif
   1457 # endif
   1458 
   1459 # ifndef __cpp_lib_allocator_traits_is_always_equal
   1460 #   error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++2a"
   1461 # endif
   1462 # if __cpp_lib_allocator_traits_is_always_equal != 201411L
   1463 #   error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++2a"
   1464 # endif
   1465 
   1466 # ifndef __cpp_lib_any
   1467 #   error "__cpp_lib_any should be defined in c++2a"
   1468 # endif
   1469 # if __cpp_lib_any != 201606L
   1470 #   error "__cpp_lib_any should have the value 201606L in c++2a"
   1471 # endif
   1472 
   1473 # ifndef __cpp_lib_apply
   1474 #   error "__cpp_lib_apply should be defined in c++2a"
   1475 # endif
   1476 # if __cpp_lib_apply != 201603L
   1477 #   error "__cpp_lib_apply should have the value 201603L in c++2a"
   1478 # endif
   1479 
   1480 # ifndef __cpp_lib_array_constexpr
   1481 #   error "__cpp_lib_array_constexpr should be defined in c++2a"
   1482 # endif
   1483 # if __cpp_lib_array_constexpr != 201603L
   1484 #   error "__cpp_lib_array_constexpr should have the value 201603L in c++2a"
   1485 # endif
   1486 
   1487 # ifndef __cpp_lib_as_const
   1488 #   error "__cpp_lib_as_const should be defined in c++2a"
   1489 # endif
   1490 # if __cpp_lib_as_const != 201510L
   1491 #   error "__cpp_lib_as_const should have the value 201510L in c++2a"
   1492 # endif
   1493 
   1494 # if !defined(_LIBCPP_HAS_NO_THREADS)
   1495 #   ifndef __cpp_lib_atomic_is_always_lock_free
   1496 #     error "__cpp_lib_atomic_is_always_lock_free should be defined in c++2a"
   1497 #   endif
   1498 #   if __cpp_lib_atomic_is_always_lock_free != 201603L
   1499 #     error "__cpp_lib_atomic_is_always_lock_free should have the value 201603L in c++2a"
   1500 #   endif
   1501 # else
   1502 #   ifdef __cpp_lib_atomic_is_always_lock_free
   1503 #     error "__cpp_lib_atomic_is_always_lock_free should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
   1504 #   endif
   1505 # endif
   1506 
   1507 # if !defined(_LIBCPP_VERSION)
   1508 #   ifndef __cpp_lib_atomic_ref
   1509 #     error "__cpp_lib_atomic_ref should be defined in c++2a"
   1510 #   endif
   1511 #   if __cpp_lib_atomic_ref != 201806L
   1512 #     error "__cpp_lib_atomic_ref should have the value 201806L in c++2a"
   1513 #   endif
   1514 # else // _LIBCPP_VERSION
   1515 #   ifdef __cpp_lib_atomic_ref
   1516 #     error "__cpp_lib_atomic_ref should not be defined because it is unimplemented in libc++!"
   1517 #   endif
   1518 # endif
   1519 
   1520 # if !defined(_LIBCPP_VERSION)
   1521 #   ifndef __cpp_lib_bind_front
   1522 #     error "__cpp_lib_bind_front should be defined in c++2a"
   1523 #   endif
   1524 #   if __cpp_lib_bind_front != 201811L
   1525 #     error "__cpp_lib_bind_front should have the value 201811L in c++2a"
   1526 #   endif
   1527 # else // _LIBCPP_VERSION
   1528 #   ifdef __cpp_lib_bind_front
   1529 #     error "__cpp_lib_bind_front should not be defined because it is unimplemented in libc++!"
   1530 #   endif
   1531 # endif
   1532 
   1533 # if !defined(_LIBCPP_VERSION)
   1534 #   ifndef __cpp_lib_bit_cast
   1535 #     error "__cpp_lib_bit_cast should be defined in c++2a"
   1536 #   endif
   1537 #   if __cpp_lib_bit_cast != 201806L
   1538 #     error "__cpp_lib_bit_cast should have the value 201806L in c++2a"
   1539 #   endif
   1540 # else // _LIBCPP_VERSION
   1541 #   ifdef __cpp_lib_bit_cast
   1542 #     error "__cpp_lib_bit_cast should not be defined because it is unimplemented in libc++!"
   1543 #   endif
   1544 # endif
   1545 
   1546 # ifndef __cpp_lib_bool_constant
   1547 #   error "__cpp_lib_bool_constant should be defined in c++2a"
   1548 # endif
   1549 # if __cpp_lib_bool_constant != 201505L
   1550 #   error "__cpp_lib_bool_constant should have the value 201505L in c++2a"
   1551 # endif
   1552 
   1553 # if !defined(_LIBCPP_VERSION)
   1554 #   ifndef __cpp_lib_boyer_moore_searcher
   1555 #     error "__cpp_lib_boyer_moore_searcher should be defined in c++2a"
   1556 #   endif
   1557 #   if __cpp_lib_boyer_moore_searcher != 201603L
   1558 #     error "__cpp_lib_boyer_moore_searcher should have the value 201603L in c++2a"
   1559 #   endif
   1560 # else // _LIBCPP_VERSION
   1561 #   ifdef __cpp_lib_boyer_moore_searcher
   1562 #     error "__cpp_lib_boyer_moore_searcher should not be defined because it is unimplemented in libc++!"
   1563 #   endif
   1564 # endif
   1565 
   1566 # ifndef __cpp_lib_byte
   1567 #   error "__cpp_lib_byte should be defined in c++2a"
   1568 # endif
   1569 # if __cpp_lib_byte != 201603L
   1570 #   error "__cpp_lib_byte should have the value 201603L in c++2a"
   1571 # endif
   1572 
   1573 # if defined(__cpp_char8_t)
   1574 #   ifndef __cpp_lib_char8_t
   1575 #     error "__cpp_lib_char8_t should be defined in c++2a"
   1576 #   endif
   1577 #   if __cpp_lib_char8_t != 201811L
   1578 #     error "__cpp_lib_char8_t should have the value 201811L in c++2a"
   1579 #   endif
   1580 # else
   1581 #   ifdef __cpp_lib_char8_t
   1582 #     error "__cpp_lib_char8_t should not be defined when defined(__cpp_char8_t) is not defined!"
   1583 #   endif
   1584 # endif
   1585 
   1586 # ifndef __cpp_lib_chrono
   1587 #   error "__cpp_lib_chrono should be defined in c++2a"
   1588 # endif
   1589 # if __cpp_lib_chrono != 201611L
   1590 #   error "__cpp_lib_chrono should have the value 201611L in c++2a"
   1591 # endif
   1592 
   1593 # ifndef __cpp_lib_chrono_udls
   1594 #   error "__cpp_lib_chrono_udls should be defined in c++2a"
   1595 # endif
   1596 # if __cpp_lib_chrono_udls != 201304L
   1597 #   error "__cpp_lib_chrono_udls should have the value 201304L in c++2a"
   1598 # endif
   1599 
   1600 # ifndef __cpp_lib_clamp
   1601 #   error "__cpp_lib_clamp should be defined in c++2a"
   1602 # endif
   1603 # if __cpp_lib_clamp != 201603L
   1604 #   error "__cpp_lib_clamp should have the value 201603L in c++2a"
   1605 # endif
   1606 
   1607 # ifndef __cpp_lib_complex_udls
   1608 #   error "__cpp_lib_complex_udls should be defined in c++2a"
   1609 # endif
   1610 # if __cpp_lib_complex_udls != 201309L
   1611 #   error "__cpp_lib_complex_udls should have the value 201309L in c++2a"
   1612 # endif
   1613 
   1614 # if !defined(_LIBCPP_VERSION)
   1615 #   ifndef __cpp_lib_concepts
   1616 #     error "__cpp_lib_concepts should be defined in c++2a"
   1617 #   endif
   1618 #   if __cpp_lib_concepts != 201806L
   1619 #     error "__cpp_lib_concepts should have the value 201806L in c++2a"
   1620 #   endif
   1621 # else // _LIBCPP_VERSION
   1622 #   ifdef __cpp_lib_concepts
   1623 #     error "__cpp_lib_concepts should not be defined because it is unimplemented in libc++!"
   1624 #   endif
   1625 # endif
   1626 
   1627 # if !defined(_LIBCPP_VERSION)
   1628 #   ifndef __cpp_lib_constexpr_misc
   1629 #     error "__cpp_lib_constexpr_misc should be defined in c++2a"
   1630 #   endif
   1631 #   if __cpp_lib_constexpr_misc != 201811L
   1632 #     error "__cpp_lib_constexpr_misc should have the value 201811L in c++2a"
   1633 #   endif
   1634 # else // _LIBCPP_VERSION
   1635 #   ifdef __cpp_lib_constexpr_misc
   1636 #     error "__cpp_lib_constexpr_misc should not be defined because it is unimplemented in libc++!"
   1637 #   endif
   1638 # endif
   1639 
   1640 # if !defined(_LIBCPP_VERSION)
   1641 #   ifndef __cpp_lib_constexpr_swap_algorithms
   1642 #     error "__cpp_lib_constexpr_swap_algorithms should be defined in c++2a"
   1643 #   endif
   1644 #   if __cpp_lib_constexpr_swap_algorithms != 201806L
   1645 #     error "__cpp_lib_constexpr_swap_algorithms should have the value 201806L in c++2a"
   1646 #   endif
   1647 # else // _LIBCPP_VERSION
   1648 #   ifdef __cpp_lib_constexpr_swap_algorithms
   1649 #     error "__cpp_lib_constexpr_swap_algorithms should not be defined because it is unimplemented in libc++!"
   1650 #   endif
   1651 # endif
   1652 
   1653 # if !defined(_LIBCPP_VERSION)
   1654 #   ifndef __cpp_lib_destroying_delete
   1655 #     error "__cpp_lib_destroying_delete should be defined in c++2a"
   1656 #   endif
   1657 #   if __cpp_lib_destroying_delete != 201806L
   1658 #     error "__cpp_lib_destroying_delete should have the value 201806L in c++2a"
   1659 #   endif
   1660 # else // _LIBCPP_VERSION
   1661 #   ifdef __cpp_lib_destroying_delete
   1662 #     error "__cpp_lib_destroying_delete should not be defined because it is unimplemented in libc++!"
   1663 #   endif
   1664 # endif
   1665 
   1666 # ifndef __cpp_lib_enable_shared_from_this
   1667 #   error "__cpp_lib_enable_shared_from_this should be defined in c++2a"
   1668 # endif
   1669 # if __cpp_lib_enable_shared_from_this != 201603L
   1670 #   error "__cpp_lib_enable_shared_from_this should have the value 201603L in c++2a"
   1671 # endif
   1672 
   1673 # ifndef __cpp_lib_erase_if
   1674 #   error "__cpp_lib_erase_if should be defined in c++2a"
   1675 # endif
   1676 # if __cpp_lib_erase_if != 201811L
   1677 #   error "__cpp_lib_erase_if should have the value 201811L in c++2a"
   1678 # endif
   1679 
   1680 # ifndef __cpp_lib_exchange_function
   1681 #   error "__cpp_lib_exchange_function should be defined in c++2a"
   1682 # endif
   1683 # if __cpp_lib_exchange_function != 201304L
   1684 #   error "__cpp_lib_exchange_function should have the value 201304L in c++2a"
   1685 # endif
   1686 
   1687 # if !defined(_LIBCPP_VERSION)
   1688 #   ifndef __cpp_lib_execution
   1689 #     error "__cpp_lib_execution should be defined in c++2a"
   1690 #   endif
   1691 #   if __cpp_lib_execution != 201603L
   1692 #     error "__cpp_lib_execution should have the value 201603L in c++2a"
   1693 #   endif
   1694 # else // _LIBCPP_VERSION
   1695 #   ifdef __cpp_lib_execution
   1696 #     error "__cpp_lib_execution should not be defined because it is unimplemented in libc++!"
   1697 #   endif
   1698 # endif
   1699 
   1700 # ifndef __cpp_lib_filesystem
   1701 #   error "__cpp_lib_filesystem should be defined in c++2a"
   1702 # endif
   1703 # if __cpp_lib_filesystem != 201703L
   1704 #   error "__cpp_lib_filesystem should have the value 201703L in c++2a"
   1705 # endif
   1706 
   1707 # ifndef __cpp_lib_gcd_lcm
   1708 #   error "__cpp_lib_gcd_lcm should be defined in c++2a"
   1709 # endif
   1710 # if __cpp_lib_gcd_lcm != 201606L
   1711 #   error "__cpp_lib_gcd_lcm should have the value 201606L in c++2a"
   1712 # endif
   1713 
   1714 # ifndef __cpp_lib_generic_associative_lookup
   1715 #   error "__cpp_lib_generic_associative_lookup should be defined in c++2a"
   1716 # endif
   1717 # if __cpp_lib_generic_associative_lookup != 201304L
   1718 #   error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++2a"
   1719 # endif
   1720 
   1721 # if !defined(_LIBCPP_VERSION)
   1722 #   ifndef __cpp_lib_generic_unordered_lookup
   1723 #     error "__cpp_lib_generic_unordered_lookup should be defined in c++2a"
   1724 #   endif
   1725 #   if __cpp_lib_generic_unordered_lookup != 201811L
   1726 #     error "__cpp_lib_generic_unordered_lookup should have the value 201811L in c++2a"
   1727 #   endif
   1728 # else // _LIBCPP_VERSION
   1729 #   ifdef __cpp_lib_generic_unordered_lookup
   1730 #     error "__cpp_lib_generic_unordered_lookup should not be defined because it is unimplemented in libc++!"
   1731 #   endif
   1732 # endif
   1733 
   1734 # ifndef __cpp_lib_hardware_interference_size
   1735 #   error "__cpp_lib_hardware_interference_size should be defined in c++2a"
   1736 # endif
   1737 # if __cpp_lib_hardware_interference_size != 201703L
   1738 #   error "__cpp_lib_hardware_interference_size should have the value 201703L in c++2a"
   1739 # endif
   1740 
   1741 # if TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700
   1742 #   ifndef __cpp_lib_has_unique_object_representations
   1743 #     error "__cpp_lib_has_unique_object_representations should be defined in c++2a"
   1744 #   endif
   1745 #   if __cpp_lib_has_unique_object_representations != 201606L
   1746 #     error "__cpp_lib_has_unique_object_representations should have the value 201606L in c++2a"
   1747 #   endif
   1748 # else
   1749 #   ifdef __cpp_lib_has_unique_object_representations
   1750 #     error "__cpp_lib_has_unique_object_representations should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__has_unique_object_representations) || TEST_GCC_VER >= 700 is not defined!"
   1751 #   endif
   1752 # endif
   1753 
   1754 # ifndef __cpp_lib_hypot
   1755 #   error "__cpp_lib_hypot should be defined in c++2a"
   1756 # endif
   1757 # if __cpp_lib_hypot != 201603L
   1758 #   error "__cpp_lib_hypot should have the value 201603L in c++2a"
   1759 # endif
   1760 
   1761 # ifndef __cpp_lib_incomplete_container_elements
   1762 #   error "__cpp_lib_incomplete_container_elements should be defined in c++2a"
   1763 # endif
   1764 # if __cpp_lib_incomplete_container_elements != 201505L
   1765 #   error "__cpp_lib_incomplete_container_elements should have the value 201505L in c++2a"
   1766 # endif
   1767 
   1768 # ifndef __cpp_lib_integer_sequence
   1769 #   error "__cpp_lib_integer_sequence should be defined in c++2a"
   1770 # endif
   1771 # if __cpp_lib_integer_sequence != 201304L
   1772 #   error "__cpp_lib_integer_sequence should have the value 201304L in c++2a"
   1773 # endif
   1774 
   1775 # ifndef __cpp_lib_integral_constant_callable
   1776 #   error "__cpp_lib_integral_constant_callable should be defined in c++2a"
   1777 # endif
   1778 # if __cpp_lib_integral_constant_callable != 201304L
   1779 #   error "__cpp_lib_integral_constant_callable should have the value 201304L in c++2a"
   1780 # endif
   1781 
   1782 # ifndef __cpp_lib_invoke
   1783 #   error "__cpp_lib_invoke should be defined in c++2a"
   1784 # endif
   1785 # if __cpp_lib_invoke != 201411L
   1786 #   error "__cpp_lib_invoke should have the value 201411L in c++2a"
   1787 # endif
   1788 
   1789 # if TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001
   1790 #   ifndef __cpp_lib_is_aggregate
   1791 #     error "__cpp_lib_is_aggregate should be defined in c++2a"
   1792 #   endif
   1793 #   if __cpp_lib_is_aggregate != 201703L
   1794 #     error "__cpp_lib_is_aggregate should have the value 201703L in c++2a"
   1795 #   endif
   1796 # else
   1797 #   ifdef __cpp_lib_is_aggregate
   1798 #     error "__cpp_lib_is_aggregate should not be defined when TEST_HAS_BUILTIN_IDENTIFIER(__is_aggregate) || TEST_GCC_VER_NEW >= 7001 is not defined!"
   1799 #   endif
   1800 # endif
   1801 
   1802 # if !defined(_LIBCPP_VERSION)
   1803 #   ifndef __cpp_lib_is_constant_evaluated
   1804 #     error "__cpp_lib_is_constant_evaluated should be defined in c++2a"
   1805 #   endif
   1806 #   if __cpp_lib_is_constant_evaluated != 201811L
   1807 #     error "__cpp_lib_is_constant_evaluated should have the value 201811L in c++2a"
   1808 #   endif
   1809 # else // _LIBCPP_VERSION
   1810 #   ifdef __cpp_lib_is_constant_evaluated
   1811 #     error "__cpp_lib_is_constant_evaluated should not be defined because it is unimplemented in libc++!"
   1812 #   endif
   1813 # endif
   1814 
   1815 # ifndef __cpp_lib_is_final
   1816 #   error "__cpp_lib_is_final should be defined in c++2a"
   1817 # endif
   1818 # if __cpp_lib_is_final != 201402L
   1819 #   error "__cpp_lib_is_final should have the value 201402L in c++2a"
   1820 # endif
   1821 
   1822 # ifndef __cpp_lib_is_invocable
   1823 #   error "__cpp_lib_is_invocable should be defined in c++2a"
   1824 # endif
   1825 # if __cpp_lib_is_invocable != 201703L
   1826 #   error "__cpp_lib_is_invocable should have the value 201703L in c++2a"
   1827 # endif
   1828 
   1829 # ifndef __cpp_lib_is_null_pointer
   1830 #   error "__cpp_lib_is_null_pointer should be defined in c++2a"
   1831 # endif
   1832 # if __cpp_lib_is_null_pointer != 201309L
   1833 #   error "__cpp_lib_is_null_pointer should have the value 201309L in c++2a"
   1834 # endif
   1835 
   1836 # ifndef __cpp_lib_is_swappable
   1837 #   error "__cpp_lib_is_swappable should be defined in c++2a"
   1838 # endif
   1839 # if __cpp_lib_is_swappable != 201603L
   1840 #   error "__cpp_lib_is_swappable should have the value 201603L in c++2a"
   1841 # endif
   1842 
   1843 # ifndef __cpp_lib_launder
   1844 #   error "__cpp_lib_launder should be defined in c++2a"
   1845 # endif
   1846 # if __cpp_lib_launder != 201606L
   1847 #   error "__cpp_lib_launder should have the value 201606L in c++2a"
   1848 # endif
   1849 
   1850 # if !defined(_LIBCPP_VERSION)
   1851 #   ifndef __cpp_lib_list_remove_return_type
   1852 #     error "__cpp_lib_list_remove_return_type should be defined in c++2a"
   1853 #   endif
   1854 #   if __cpp_lib_list_remove_return_type != 201806L
   1855 #     error "__cpp_lib_list_remove_return_type should have the value 201806L in c++2a"
   1856 #   endif
   1857 # else // _LIBCPP_VERSION
   1858 #   ifdef __cpp_lib_list_remove_return_type
   1859 #     error "__cpp_lib_list_remove_return_type should not be defined because it is unimplemented in libc++!"
   1860 #   endif
   1861 # endif
   1862 
   1863 # ifndef __cpp_lib_logical_traits
   1864 #   error "__cpp_lib_logical_traits should be defined in c++2a"
   1865 # endif
   1866 # if __cpp_lib_logical_traits != 201510L
   1867 #   error "__cpp_lib_logical_traits should have the value 201510L in c++2a"
   1868 # endif
   1869 
   1870 # ifndef __cpp_lib_make_from_tuple
   1871 #   error "__cpp_lib_make_from_tuple should be defined in c++2a"
   1872 # endif
   1873 # if __cpp_lib_make_from_tuple != 201606L
   1874 #   error "__cpp_lib_make_from_tuple should have the value 201606L in c++2a"
   1875 # endif
   1876 
   1877 # ifndef __cpp_lib_make_reverse_iterator
   1878 #   error "__cpp_lib_make_reverse_iterator should be defined in c++2a"
   1879 # endif
   1880 # if __cpp_lib_make_reverse_iterator != 201402L
   1881 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++2a"
   1882 # endif
   1883 
   1884 # ifndef __cpp_lib_make_unique
   1885 #   error "__cpp_lib_make_unique should be defined in c++2a"
   1886 # endif
   1887 # if __cpp_lib_make_unique != 201304L
   1888 #   error "__cpp_lib_make_unique should have the value 201304L in c++2a"
   1889 # endif
   1890 
   1891 # ifndef __cpp_lib_map_try_emplace
   1892 #   error "__cpp_lib_map_try_emplace should be defined in c++2a"
   1893 # endif
   1894 # if __cpp_lib_map_try_emplace != 201411L
   1895 #   error "__cpp_lib_map_try_emplace should have the value 201411L in c++2a"
   1896 # endif
   1897 
   1898 # if !defined(_LIBCPP_VERSION)
   1899 #   ifndef __cpp_lib_math_special_functions
   1900 #     error "__cpp_lib_math_special_functions should be defined in c++2a"
   1901 #   endif
   1902 #   if __cpp_lib_math_special_functions != 201603L
   1903 #     error "__cpp_lib_math_special_functions should have the value 201603L in c++2a"
   1904 #   endif
   1905 # else // _LIBCPP_VERSION
   1906 #   ifdef __cpp_lib_math_special_functions
   1907 #     error "__cpp_lib_math_special_functions should not be defined because it is unimplemented in libc++!"
   1908 #   endif
   1909 # endif
   1910 
   1911 # if !defined(_LIBCPP_VERSION)
   1912 #   ifndef __cpp_lib_memory_resource
   1913 #     error "__cpp_lib_memory_resource should be defined in c++2a"
   1914 #   endif
   1915 #   if __cpp_lib_memory_resource != 201603L
   1916 #     error "__cpp_lib_memory_resource should have the value 201603L in c++2a"
   1917 #   endif
   1918 # else // _LIBCPP_VERSION
   1919 #   ifdef __cpp_lib_memory_resource
   1920 #     error "__cpp_lib_memory_resource should not be defined because it is unimplemented in libc++!"
   1921 #   endif
   1922 # endif
   1923 
   1924 # ifndef __cpp_lib_node_extract
   1925 #   error "__cpp_lib_node_extract should be defined in c++2a"
   1926 # endif
   1927 # if __cpp_lib_node_extract != 201606L
   1928 #   error "__cpp_lib_node_extract should have the value 201606L in c++2a"
   1929 # endif
   1930 
   1931 # ifndef __cpp_lib_nonmember_container_access
   1932 #   error "__cpp_lib_nonmember_container_access should be defined in c++2a"
   1933 # endif
   1934 # if __cpp_lib_nonmember_container_access != 201411L
   1935 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++2a"
   1936 # endif
   1937 
   1938 # ifndef __cpp_lib_not_fn
   1939 #   error "__cpp_lib_not_fn should be defined in c++2a"
   1940 # endif
   1941 # if __cpp_lib_not_fn != 201603L
   1942 #   error "__cpp_lib_not_fn should have the value 201603L in c++2a"
   1943 # endif
   1944 
   1945 # ifndef __cpp_lib_null_iterators
   1946 #   error "__cpp_lib_null_iterators should be defined in c++2a"
   1947 # endif
   1948 # if __cpp_lib_null_iterators != 201304L
   1949 #   error "__cpp_lib_null_iterators should have the value 201304L in c++2a"
   1950 # endif
   1951 
   1952 # ifndef __cpp_lib_optional
   1953 #   error "__cpp_lib_optional should be defined in c++2a"
   1954 # endif
   1955 # if __cpp_lib_optional != 201606L
   1956 #   error "__cpp_lib_optional should have the value 201606L in c++2a"
   1957 # endif
   1958 
   1959 # if !defined(_LIBCPP_VERSION)
   1960 #   ifndef __cpp_lib_parallel_algorithm
   1961 #     error "__cpp_lib_parallel_algorithm should be defined in c++2a"
   1962 #   endif
   1963 #   if __cpp_lib_parallel_algorithm != 201603L
   1964 #     error "__cpp_lib_parallel_algorithm should have the value 201603L in c++2a"
   1965 #   endif
   1966 # else // _LIBCPP_VERSION
   1967 #   ifdef __cpp_lib_parallel_algorithm
   1968 #     error "__cpp_lib_parallel_algorithm should not be defined because it is unimplemented in libc++!"
   1969 #   endif
   1970 # endif
   1971 
   1972 # ifndef __cpp_lib_quoted_string_io
   1973 #   error "__cpp_lib_quoted_string_io should be defined in c++2a"
   1974 # endif
   1975 # if __cpp_lib_quoted_string_io != 201304L
   1976 #   error "__cpp_lib_quoted_string_io should have the value 201304L in c++2a"
   1977 # endif
   1978 
   1979 # if !defined(_LIBCPP_VERSION)
   1980 #   ifndef __cpp_lib_ranges
   1981 #     error "__cpp_lib_ranges should be defined in c++2a"
   1982 #   endif
   1983 #   if __cpp_lib_ranges != 201811L
   1984 #     error "__cpp_lib_ranges should have the value 201811L in c++2a"
   1985 #   endif
   1986 # else // _LIBCPP_VERSION
   1987 #   ifdef __cpp_lib_ranges
   1988 #     error "__cpp_lib_ranges should not be defined because it is unimplemented in libc++!"
   1989 #   endif
   1990 # endif
   1991 
   1992 # ifndef __cpp_lib_raw_memory_algorithms
   1993 #   error "__cpp_lib_raw_memory_algorithms should be defined in c++2a"
   1994 # endif
   1995 # if __cpp_lib_raw_memory_algorithms != 201606L
   1996 #   error "__cpp_lib_raw_memory_algorithms should have the value 201606L in c++2a"
   1997 # endif
   1998 
   1999 # ifndef __cpp_lib_result_of_sfinae
   2000 #   error "__cpp_lib_result_of_sfinae should be defined in c++2a"
   2001 # endif
   2002 # if __cpp_lib_result_of_sfinae != 201210L
   2003 #   error "__cpp_lib_result_of_sfinae should have the value 201210L in c++2a"
   2004 # endif
   2005 
   2006 # ifndef __cpp_lib_robust_nonmodifying_seq_ops
   2007 #   error "__cpp_lib_robust_nonmodifying_seq_ops should be defined in c++2a"
   2008 # endif
   2009 # if __cpp_lib_robust_nonmodifying_seq_ops != 201304L
   2010 #   error "__cpp_lib_robust_nonmodifying_seq_ops should have the value 201304L in c++2a"
   2011 # endif
   2012 
   2013 # ifndef __cpp_lib_sample
   2014 #   error "__cpp_lib_sample should be defined in c++2a"
   2015 # endif
   2016 # if __cpp_lib_sample != 201603L
   2017 #   error "__cpp_lib_sample should have the value 201603L in c++2a"
   2018 # endif
   2019 
   2020 # ifndef __cpp_lib_scoped_lock
   2021 #   error "__cpp_lib_scoped_lock should be defined in c++2a"
   2022 # endif
   2023 # if __cpp_lib_scoped_lock != 201703L
   2024 #   error "__cpp_lib_scoped_lock should have the value 201703L in c++2a"
   2025 # endif
   2026 
   2027 # if !defined(_LIBCPP_HAS_NO_THREADS)
   2028 #   ifndef __cpp_lib_shared_mutex
   2029 #     error "__cpp_lib_shared_mutex should be defined in c++2a"
   2030 #   endif
   2031 #   if __cpp_lib_shared_mutex != 201505L
   2032 #     error "__cpp_lib_shared_mutex should have the value 201505L in c++2a"
   2033 #   endif
   2034 # else
   2035 #   ifdef __cpp_lib_shared_mutex
   2036 #     error "__cpp_lib_shared_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
   2037 #   endif
   2038 # endif
   2039 
   2040 # if !defined(_LIBCPP_VERSION)
   2041 #   ifndef __cpp_lib_shared_ptr_arrays
   2042 #     error "__cpp_lib_shared_ptr_arrays should be defined in c++2a"
   2043 #   endif
   2044 #   if __cpp_lib_shared_ptr_arrays != 201611L
   2045 #     error "__cpp_lib_shared_ptr_arrays should have the value 201611L in c++2a"
   2046 #   endif
   2047 # else // _LIBCPP_VERSION
   2048 #   ifdef __cpp_lib_shared_ptr_arrays
   2049 #     error "__cpp_lib_shared_ptr_arrays should not be defined because it is unimplemented in libc++!"
   2050 #   endif
   2051 # endif
   2052 
   2053 # ifndef __cpp_lib_shared_ptr_weak_type
   2054 #   error "__cpp_lib_shared_ptr_weak_type should be defined in c++2a"
   2055 # endif
   2056 # if __cpp_lib_shared_ptr_weak_type != 201606L
   2057 #   error "__cpp_lib_shared_ptr_weak_type should have the value 201606L in c++2a"
   2058 # endif
   2059 
   2060 # if !defined(_LIBCPP_HAS_NO_THREADS)
   2061 #   ifndef __cpp_lib_shared_timed_mutex
   2062 #     error "__cpp_lib_shared_timed_mutex should be defined in c++2a"
   2063 #   endif
   2064 #   if __cpp_lib_shared_timed_mutex != 201402L
   2065 #     error "__cpp_lib_shared_timed_mutex should have the value 201402L in c++2a"
   2066 #   endif
   2067 # else
   2068 #   ifdef __cpp_lib_shared_timed_mutex
   2069 #     error "__cpp_lib_shared_timed_mutex should not be defined when !defined(_LIBCPP_HAS_NO_THREADS) is not defined!"
   2070 #   endif
   2071 # endif
   2072 
   2073 # ifndef __cpp_lib_string_udls
   2074 #   error "__cpp_lib_string_udls should be defined in c++2a"
   2075 # endif
   2076 # if __cpp_lib_string_udls != 201304L
   2077 #   error "__cpp_lib_string_udls should have the value 201304L in c++2a"
   2078 # endif
   2079 
   2080 # ifndef __cpp_lib_string_view
   2081 #   error "__cpp_lib_string_view should be defined in c++2a"
   2082 # endif
   2083 # if __cpp_lib_string_view != 201606L
   2084 #   error "__cpp_lib_string_view should have the value 201606L in c++2a"
   2085 # endif
   2086 
   2087 # if !defined(_LIBCPP_VERSION)
   2088 #   ifndef __cpp_lib_three_way_comparison
   2089 #     error "__cpp_lib_three_way_comparison should be defined in c++2a"
   2090 #   endif
   2091 #   if __cpp_lib_three_way_comparison != 201711L
   2092 #     error "__cpp_lib_three_way_comparison should have the value 201711L in c++2a"
   2093 #   endif
   2094 # else // _LIBCPP_VERSION
   2095 #   ifdef __cpp_lib_three_way_comparison
   2096 #     error "__cpp_lib_three_way_comparison should not be defined because it is unimplemented in libc++!"
   2097 #   endif
   2098 # endif
   2099 
   2100 # if !defined(_LIBCPP_VERSION)
   2101 #   ifndef __cpp_lib_to_chars
   2102 #     error "__cpp_lib_to_chars should be defined in c++2a"
   2103 #   endif
   2104 #   if __cpp_lib_to_chars != 201611L
   2105 #     error "__cpp_lib_to_chars should have the value 201611L in c++2a"
   2106 #   endif
   2107 # else // _LIBCPP_VERSION
   2108 #   ifdef __cpp_lib_to_chars
   2109 #     error "__cpp_lib_to_chars should not be defined because it is unimplemented in libc++!"
   2110 #   endif
   2111 # endif
   2112 
   2113 # ifndef __cpp_lib_transformation_trait_aliases
   2114 #   error "__cpp_lib_transformation_trait_aliases should be defined in c++2a"
   2115 # endif
   2116 # if __cpp_lib_transformation_trait_aliases != 201304L
   2117 #   error "__cpp_lib_transformation_trait_aliases should have the value 201304L in c++2a"
   2118 # endif
   2119 
   2120 # ifndef __cpp_lib_transparent_operators
   2121 #   error "__cpp_lib_transparent_operators should be defined in c++2a"
   2122 # endif
   2123 # if __cpp_lib_transparent_operators != 201510L
   2124 #   error "__cpp_lib_transparent_operators should have the value 201510L in c++2a"
   2125 # endif
   2126 
   2127 # ifndef __cpp_lib_tuple_element_t
   2128 #   error "__cpp_lib_tuple_element_t should be defined in c++2a"
   2129 # endif
   2130 # if __cpp_lib_tuple_element_t != 201402L
   2131 #   error "__cpp_lib_tuple_element_t should have the value 201402L in c++2a"
   2132 # endif
   2133 
   2134 # ifndef __cpp_lib_tuples_by_type
   2135 #   error "__cpp_lib_tuples_by_type should be defined in c++2a"
   2136 # endif
   2137 # if __cpp_lib_tuples_by_type != 201304L
   2138 #   error "__cpp_lib_tuples_by_type should have the value 201304L in c++2a"
   2139 # endif
   2140 
   2141 # ifndef __cpp_lib_type_trait_variable_templates
   2142 #   error "__cpp_lib_type_trait_variable_templates should be defined in c++2a"
   2143 # endif
   2144 # if __cpp_lib_type_trait_variable_templates != 201510L
   2145 #   error "__cpp_lib_type_trait_variable_templates should have the value 201510L in c++2a"
   2146 # endif
   2147 
   2148 # ifndef __cpp_lib_uncaught_exceptions
   2149 #   error "__cpp_lib_uncaught_exceptions should be defined in c++2a"
   2150 # endif
   2151 # if __cpp_lib_uncaught_exceptions != 201411L
   2152 #   error "__cpp_lib_uncaught_exceptions should have the value 201411L in c++2a"
   2153 # endif
   2154 
   2155 # ifndef __cpp_lib_unordered_map_try_emplace
   2156 #   error "__cpp_lib_unordered_map_try_emplace should be defined in c++2a"
   2157 # endif
   2158 # if __cpp_lib_unordered_map_try_emplace != 201411L
   2159 #   error "__cpp_lib_unordered_map_try_emplace should have the value 201411L in c++2a"
   2160 # endif
   2161 
   2162 # ifndef __cpp_lib_variant
   2163 #   error "__cpp_lib_variant should be defined in c++2a"
   2164 # endif
   2165 # if __cpp_lib_variant != 201606L
   2166 #   error "__cpp_lib_variant should have the value 201606L in c++2a"
   2167 # endif
   2168 
   2169 # ifndef __cpp_lib_void_t
   2170 #   error "__cpp_lib_void_t should be defined in c++2a"
   2171 # endif
   2172 # if __cpp_lib_void_t != 201411L
   2173 #   error "__cpp_lib_void_t should have the value 201411L in c++2a"
   2174 # endif
   2175 
   2176 #endif // TEST_STD_VER > 17
   2177 
   2178 int main() {}