brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.7 KiB · 3db3861 Raw
399 lines · cpp
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9// WARNING: This test was generated by generate_feature_test_macro_components.py10// and should not be edited manually.11 12// <map>13 14// Test the feature test macros defined by <map>15 16// clang-format off17 18#include <map>19#include "test_macros.h"20 21#if TEST_STD_VER < 1422 23#  ifdef __cpp_lib_allocator_traits_is_always_equal24#    error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"25#  endif26 27#  ifdef __cpp_lib_associative_heterogeneous_erasure28#    error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"29#  endif30 31#  ifdef __cpp_lib_associative_heterogeneous_insertion32#    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"33#  endif34 35#  ifdef __cpp_lib_containers_ranges36#    error "__cpp_lib_containers_ranges should not be defined before c++23"37#  endif38 39#  ifdef __cpp_lib_erase_if40#    error "__cpp_lib_erase_if should not be defined before c++20"41#  endif42 43#  ifdef __cpp_lib_generic_associative_lookup44#    error "__cpp_lib_generic_associative_lookup should not be defined before c++14"45#  endif46 47#  ifdef __cpp_lib_map_try_emplace48#    error "__cpp_lib_map_try_emplace should not be defined before c++17"49#  endif50 51#  ifdef __cpp_lib_node_extract52#    error "__cpp_lib_node_extract should not be defined before c++17"53#  endif54 55#  ifdef __cpp_lib_nonmember_container_access56#    error "__cpp_lib_nonmember_container_access should not be defined before c++17"57#  endif58 59#  ifdef __cpp_lib_tuple_like60#    error "__cpp_lib_tuple_like should not be defined before c++23"61#  endif62 63#elif TEST_STD_VER == 1464 65#  ifdef __cpp_lib_allocator_traits_is_always_equal66#    error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17"67#  endif68 69#  ifdef __cpp_lib_associative_heterogeneous_erasure70#    error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"71#  endif72 73#  ifdef __cpp_lib_associative_heterogeneous_insertion74#    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"75#  endif76 77#  ifdef __cpp_lib_containers_ranges78#    error "__cpp_lib_containers_ranges should not be defined before c++23"79#  endif80 81#  ifdef __cpp_lib_erase_if82#    error "__cpp_lib_erase_if should not be defined before c++20"83#  endif84 85#  ifndef __cpp_lib_generic_associative_lookup86#    error "__cpp_lib_generic_associative_lookup should be defined in c++14"87#  endif88#  if __cpp_lib_generic_associative_lookup != 201304L89#    error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++14"90#  endif91 92#  ifdef __cpp_lib_map_try_emplace93#    error "__cpp_lib_map_try_emplace should not be defined before c++17"94#  endif95 96#  ifdef __cpp_lib_node_extract97#    error "__cpp_lib_node_extract should not be defined before c++17"98#  endif99 100#  ifdef __cpp_lib_nonmember_container_access101#    error "__cpp_lib_nonmember_container_access should not be defined before c++17"102#  endif103 104#  ifdef __cpp_lib_tuple_like105#    error "__cpp_lib_tuple_like should not be defined before c++23"106#  endif107 108#elif TEST_STD_VER == 17109 110#  ifndef __cpp_lib_allocator_traits_is_always_equal111#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17"112#  endif113#  if __cpp_lib_allocator_traits_is_always_equal != 201411L114#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17"115#  endif116 117#  ifdef __cpp_lib_associative_heterogeneous_erasure118#    error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"119#  endif120 121#  ifdef __cpp_lib_associative_heterogeneous_insertion122#    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"123#  endif124 125#  ifdef __cpp_lib_containers_ranges126#    error "__cpp_lib_containers_ranges should not be defined before c++23"127#  endif128 129#  ifdef __cpp_lib_erase_if130#    error "__cpp_lib_erase_if should not be defined before c++20"131#  endif132 133#  ifndef __cpp_lib_generic_associative_lookup134#    error "__cpp_lib_generic_associative_lookup should be defined in c++17"135#  endif136#  if __cpp_lib_generic_associative_lookup != 201304L137#    error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++17"138#  endif139 140#  ifndef __cpp_lib_map_try_emplace141#    error "__cpp_lib_map_try_emplace should be defined in c++17"142#  endif143#  if __cpp_lib_map_try_emplace != 201411L144#    error "__cpp_lib_map_try_emplace should have the value 201411L in c++17"145#  endif146 147#  ifndef __cpp_lib_node_extract148#    error "__cpp_lib_node_extract should be defined in c++17"149#  endif150#  if __cpp_lib_node_extract != 201606L151#    error "__cpp_lib_node_extract should have the value 201606L in c++17"152#  endif153 154#  ifndef __cpp_lib_nonmember_container_access155#    error "__cpp_lib_nonmember_container_access should be defined in c++17"156#  endif157#  if __cpp_lib_nonmember_container_access != 201411L158#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"159#  endif160 161#  ifdef __cpp_lib_tuple_like162#    error "__cpp_lib_tuple_like should not be defined before c++23"163#  endif164 165#elif TEST_STD_VER == 20166 167#  ifndef __cpp_lib_allocator_traits_is_always_equal168#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20"169#  endif170#  if __cpp_lib_allocator_traits_is_always_equal != 201411L171#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20"172#  endif173 174#  ifdef __cpp_lib_associative_heterogeneous_erasure175#    error "__cpp_lib_associative_heterogeneous_erasure should not be defined before c++23"176#  endif177 178#  ifdef __cpp_lib_associative_heterogeneous_insertion179#    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"180#  endif181 182#  ifdef __cpp_lib_containers_ranges183#    error "__cpp_lib_containers_ranges should not be defined before c++23"184#  endif185 186#  ifndef __cpp_lib_erase_if187#    error "__cpp_lib_erase_if should be defined in c++20"188#  endif189#  if __cpp_lib_erase_if != 202002L190#    error "__cpp_lib_erase_if should have the value 202002L in c++20"191#  endif192 193#  ifndef __cpp_lib_generic_associative_lookup194#    error "__cpp_lib_generic_associative_lookup should be defined in c++20"195#  endif196#  if __cpp_lib_generic_associative_lookup != 201304L197#    error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++20"198#  endif199 200#  ifndef __cpp_lib_map_try_emplace201#    error "__cpp_lib_map_try_emplace should be defined in c++20"202#  endif203#  if __cpp_lib_map_try_emplace != 201411L204#    error "__cpp_lib_map_try_emplace should have the value 201411L in c++20"205#  endif206 207#  ifndef __cpp_lib_node_extract208#    error "__cpp_lib_node_extract should be defined in c++20"209#  endif210#  if __cpp_lib_node_extract != 201606L211#    error "__cpp_lib_node_extract should have the value 201606L in c++20"212#  endif213 214#  ifndef __cpp_lib_nonmember_container_access215#    error "__cpp_lib_nonmember_container_access should be defined in c++20"216#  endif217#  if __cpp_lib_nonmember_container_access != 201411L218#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"219#  endif220 221#  ifdef __cpp_lib_tuple_like222#    error "__cpp_lib_tuple_like should not be defined before c++23"223#  endif224 225#elif TEST_STD_VER == 23226 227#  ifndef __cpp_lib_allocator_traits_is_always_equal228#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23"229#  endif230#  if __cpp_lib_allocator_traits_is_always_equal != 201411L231#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23"232#  endif233 234#  if !defined(_LIBCPP_VERSION)235#    ifndef __cpp_lib_associative_heterogeneous_erasure236#      error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++23"237#    endif238#    if __cpp_lib_associative_heterogeneous_erasure != 202110L239#      error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++23"240#    endif241#  else242#    ifdef __cpp_lib_associative_heterogeneous_erasure243#      error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"244#    endif245#  endif246 247#  ifdef __cpp_lib_associative_heterogeneous_insertion248#    error "__cpp_lib_associative_heterogeneous_insertion should not be defined before c++26"249#  endif250 251#  ifndef __cpp_lib_containers_ranges252#    error "__cpp_lib_containers_ranges should be defined in c++23"253#  endif254#  if __cpp_lib_containers_ranges != 202202L255#    error "__cpp_lib_containers_ranges should have the value 202202L in c++23"256#  endif257 258#  ifndef __cpp_lib_erase_if259#    error "__cpp_lib_erase_if should be defined in c++23"260#  endif261#  if __cpp_lib_erase_if != 202002L262#    error "__cpp_lib_erase_if should have the value 202002L in c++23"263#  endif264 265#  ifndef __cpp_lib_generic_associative_lookup266#    error "__cpp_lib_generic_associative_lookup should be defined in c++23"267#  endif268#  if __cpp_lib_generic_associative_lookup != 201304L269#    error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++23"270#  endif271 272#  ifndef __cpp_lib_map_try_emplace273#    error "__cpp_lib_map_try_emplace should be defined in c++23"274#  endif275#  if __cpp_lib_map_try_emplace != 201411L276#    error "__cpp_lib_map_try_emplace should have the value 201411L in c++23"277#  endif278 279#  ifndef __cpp_lib_node_extract280#    error "__cpp_lib_node_extract should be defined in c++23"281#  endif282#  if __cpp_lib_node_extract != 201606L283#    error "__cpp_lib_node_extract should have the value 201606L in c++23"284#  endif285 286#  ifndef __cpp_lib_nonmember_container_access287#    error "__cpp_lib_nonmember_container_access should be defined in c++23"288#  endif289#  if __cpp_lib_nonmember_container_access != 201411L290#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"291#  endif292 293#  if !defined(_LIBCPP_VERSION)294#    ifndef __cpp_lib_tuple_like295#      error "__cpp_lib_tuple_like should be defined in c++23"296#    endif297#    if __cpp_lib_tuple_like != 202207L298#      error "__cpp_lib_tuple_like should have the value 202207L in c++23"299#    endif300#  else301#    ifdef __cpp_lib_tuple_like302#      error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"303#    endif304#  endif305 306#elif TEST_STD_VER > 23307 308#  ifndef __cpp_lib_allocator_traits_is_always_equal309#    error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26"310#  endif311#  if __cpp_lib_allocator_traits_is_always_equal != 201411L312#    error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26"313#  endif314 315#  if !defined(_LIBCPP_VERSION)316#    ifndef __cpp_lib_associative_heterogeneous_erasure317#      error "__cpp_lib_associative_heterogeneous_erasure should be defined in c++26"318#    endif319#    if __cpp_lib_associative_heterogeneous_erasure != 202110L320#      error "__cpp_lib_associative_heterogeneous_erasure should have the value 202110L in c++26"321#    endif322#  else323#    ifdef __cpp_lib_associative_heterogeneous_erasure324#      error "__cpp_lib_associative_heterogeneous_erasure should not be defined because it is unimplemented in libc++!"325#    endif326#  endif327 328#  if !defined(_LIBCPP_VERSION)329#    ifndef __cpp_lib_associative_heterogeneous_insertion330#      error "__cpp_lib_associative_heterogeneous_insertion should be defined in c++26"331#    endif332#    if __cpp_lib_associative_heterogeneous_insertion != 202306L333#      error "__cpp_lib_associative_heterogeneous_insertion should have the value 202306L in c++26"334#    endif335#  else336#    ifdef __cpp_lib_associative_heterogeneous_insertion337#      error "__cpp_lib_associative_heterogeneous_insertion should not be defined because it is unimplemented in libc++!"338#    endif339#  endif340 341#  ifndef __cpp_lib_containers_ranges342#    error "__cpp_lib_containers_ranges should be defined in c++26"343#  endif344#  if __cpp_lib_containers_ranges != 202202L345#    error "__cpp_lib_containers_ranges should have the value 202202L in c++26"346#  endif347 348#  ifndef __cpp_lib_erase_if349#    error "__cpp_lib_erase_if should be defined in c++26"350#  endif351#  if __cpp_lib_erase_if != 202002L352#    error "__cpp_lib_erase_if should have the value 202002L in c++26"353#  endif354 355#  ifndef __cpp_lib_generic_associative_lookup356#    error "__cpp_lib_generic_associative_lookup should be defined in c++26"357#  endif358#  if __cpp_lib_generic_associative_lookup != 201304L359#    error "__cpp_lib_generic_associative_lookup should have the value 201304L in c++26"360#  endif361 362#  ifndef __cpp_lib_map_try_emplace363#    error "__cpp_lib_map_try_emplace should be defined in c++26"364#  endif365#  if __cpp_lib_map_try_emplace != 201411L366#    error "__cpp_lib_map_try_emplace should have the value 201411L in c++26"367#  endif368 369#  ifndef __cpp_lib_node_extract370#    error "__cpp_lib_node_extract should be defined in c++26"371#  endif372#  if __cpp_lib_node_extract != 201606L373#    error "__cpp_lib_node_extract should have the value 201606L in c++26"374#  endif375 376#  ifndef __cpp_lib_nonmember_container_access377#    error "__cpp_lib_nonmember_container_access should be defined in c++26"378#  endif379#  if __cpp_lib_nonmember_container_access != 201411L380#    error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"381#  endif382 383#  if !defined(_LIBCPP_VERSION)384#    ifndef __cpp_lib_tuple_like385#      error "__cpp_lib_tuple_like should be defined in c++26"386#    endif387#    if __cpp_lib_tuple_like != 202311L388#      error "__cpp_lib_tuple_like should have the value 202311L in c++26"389#    endif390#  else391#    ifdef __cpp_lib_tuple_like392#      error "__cpp_lib_tuple_like should not be defined because it is unimplemented in libc++!"393#    endif394#  endif395 396#endif // TEST_STD_VER > 23397 398// clang-format on399