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-exception 6 // 7 //===----------------------------------------------------------------------===// 8 // 9 // WARNING: This test was generated by generate_feature_test_macro_components.py 10 // and should not be edited manually. 11 // 12 // clang-format off 13 14 // <deque> 15 16 // Test the feature test macros defined by <deque> 17 18 /* Constant Value 19 __cpp_lib_allocator_traits_is_always_equal 201411L [C++17] 20 __cpp_lib_containers_ranges 202202L [C++23] 21 __cpp_lib_default_template_type_for_algorithm_values 202403L [C++26] 22 __cpp_lib_erase_if 202002L [C++20] 23 __cpp_lib_nonmember_container_access 201411L [C++17] 24 */ 25 26 #include <deque> 27 #include "test_macros.h" 28 29 #if TEST_STD_VER < 14 30 31 # ifdef __cpp_lib_allocator_traits_is_always_equal 32 # error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" 33 # endif 34 35 # ifdef __cpp_lib_containers_ranges 36 # error "__cpp_lib_containers_ranges should not be defined before c++23" 37 # endif 38 39 # ifdef __cpp_lib_default_template_type_for_algorithm_values 40 # error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" 41 # endif 42 43 # ifdef __cpp_lib_erase_if 44 # error "__cpp_lib_erase_if should not be defined before c++20" 45 # endif 46 47 # ifdef __cpp_lib_nonmember_container_access 48 # error "__cpp_lib_nonmember_container_access should not be defined before c++17" 49 # endif 50 51 #elif TEST_STD_VER == 14 52 53 # ifdef __cpp_lib_allocator_traits_is_always_equal 54 # error "__cpp_lib_allocator_traits_is_always_equal should not be defined before c++17" 55 # endif 56 57 # ifdef __cpp_lib_containers_ranges 58 # error "__cpp_lib_containers_ranges should not be defined before c++23" 59 # endif 60 61 # ifdef __cpp_lib_default_template_type_for_algorithm_values 62 # error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" 63 # endif 64 65 # ifdef __cpp_lib_erase_if 66 # error "__cpp_lib_erase_if should not be defined before c++20" 67 # endif 68 69 # ifdef __cpp_lib_nonmember_container_access 70 # error "__cpp_lib_nonmember_container_access should not be defined before c++17" 71 # endif 72 73 #elif TEST_STD_VER == 17 74 75 # ifndef __cpp_lib_allocator_traits_is_always_equal 76 # error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++17" 77 # endif 78 # if __cpp_lib_allocator_traits_is_always_equal != 201411L 79 # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++17" 80 # endif 81 82 # ifdef __cpp_lib_containers_ranges 83 # error "__cpp_lib_containers_ranges should not be defined before c++23" 84 # endif 85 86 # ifdef __cpp_lib_default_template_type_for_algorithm_values 87 # error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" 88 # endif 89 90 # ifdef __cpp_lib_erase_if 91 # error "__cpp_lib_erase_if should not be defined before c++20" 92 # endif 93 94 # ifndef __cpp_lib_nonmember_container_access 95 # error "__cpp_lib_nonmember_container_access should be defined in c++17" 96 # endif 97 # if __cpp_lib_nonmember_container_access != 201411L 98 # error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17" 99 # endif 100 101 #elif TEST_STD_VER == 20 102 103 # ifndef __cpp_lib_allocator_traits_is_always_equal 104 # error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++20" 105 # endif 106 # if __cpp_lib_allocator_traits_is_always_equal != 201411L 107 # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++20" 108 # endif 109 110 # ifdef __cpp_lib_containers_ranges 111 # error "__cpp_lib_containers_ranges should not be defined before c++23" 112 # endif 113 114 # ifdef __cpp_lib_default_template_type_for_algorithm_values 115 # error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" 116 # endif 117 118 # ifndef __cpp_lib_erase_if 119 # error "__cpp_lib_erase_if should be defined in c++20" 120 # endif 121 # if __cpp_lib_erase_if != 202002L 122 # error "__cpp_lib_erase_if should have the value 202002L in c++20" 123 # endif 124 125 # ifndef __cpp_lib_nonmember_container_access 126 # error "__cpp_lib_nonmember_container_access should be defined in c++20" 127 # endif 128 # if __cpp_lib_nonmember_container_access != 201411L 129 # error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20" 130 # endif 131 132 #elif TEST_STD_VER == 23 133 134 # ifndef __cpp_lib_allocator_traits_is_always_equal 135 # error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++23" 136 # endif 137 # if __cpp_lib_allocator_traits_is_always_equal != 201411L 138 # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++23" 139 # endif 140 141 # ifndef __cpp_lib_containers_ranges 142 # error "__cpp_lib_containers_ranges should be defined in c++23" 143 # endif 144 # if __cpp_lib_containers_ranges != 202202L 145 # error "__cpp_lib_containers_ranges should have the value 202202L in c++23" 146 # endif 147 148 # ifdef __cpp_lib_default_template_type_for_algorithm_values 149 # error "__cpp_lib_default_template_type_for_algorithm_values should not be defined before c++26" 150 # endif 151 152 # ifndef __cpp_lib_erase_if 153 # error "__cpp_lib_erase_if should be defined in c++23" 154 # endif 155 # if __cpp_lib_erase_if != 202002L 156 # error "__cpp_lib_erase_if should have the value 202002L in c++23" 157 # endif 158 159 # ifndef __cpp_lib_nonmember_container_access 160 # error "__cpp_lib_nonmember_container_access should be defined in c++23" 161 # endif 162 # if __cpp_lib_nonmember_container_access != 201411L 163 # error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23" 164 # endif 165 166 #elif TEST_STD_VER > 23 167 168 # ifndef __cpp_lib_allocator_traits_is_always_equal 169 # error "__cpp_lib_allocator_traits_is_always_equal should be defined in c++26" 170 # endif 171 # if __cpp_lib_allocator_traits_is_always_equal != 201411L 172 # error "__cpp_lib_allocator_traits_is_always_equal should have the value 201411L in c++26" 173 # endif 174 175 # ifndef __cpp_lib_containers_ranges 176 # error "__cpp_lib_containers_ranges should be defined in c++26" 177 # endif 178 # if __cpp_lib_containers_ranges != 202202L 179 # error "__cpp_lib_containers_ranges should have the value 202202L in c++26" 180 # endif 181 182 # if !defined(_LIBCPP_VERSION) 183 # ifndef __cpp_lib_default_template_type_for_algorithm_values 184 # error "__cpp_lib_default_template_type_for_algorithm_values should be defined in c++26" 185 # endif 186 # if __cpp_lib_default_template_type_for_algorithm_values != 202403L 187 # error "__cpp_lib_default_template_type_for_algorithm_values should have the value 202403L in c++26" 188 # endif 189 # else // _LIBCPP_VERSION 190 # ifdef __cpp_lib_default_template_type_for_algorithm_values 191 # error "__cpp_lib_default_template_type_for_algorithm_values should not be defined because it is unimplemented in libc++!" 192 # endif 193 # endif 194 195 # ifndef __cpp_lib_erase_if 196 # error "__cpp_lib_erase_if should be defined in c++26" 197 # endif 198 # if __cpp_lib_erase_if != 202002L 199 # error "__cpp_lib_erase_if should have the value 202002L in c++26" 200 # endif 201 202 # ifndef __cpp_lib_nonmember_container_access 203 # error "__cpp_lib_nonmember_container_access should be defined in c++26" 204 # endif 205 # if __cpp_lib_nonmember_container_access != 201411L 206 # error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26" 207 # endif 208 209 #endif // TEST_STD_VER > 23 210 211