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 // <iterator>
15 
16 // Test the feature test macros defined by <iterator>
17 
18 /*  Constant                                Value
19     __cpp_lib_array_constexpr               201603L [C++17]
20                                             201811L [C++20]
21     __cpp_lib_constexpr_iterator            201811L [C++20]
22     __cpp_lib_make_reverse_iterator         201402L [C++14]
23     __cpp_lib_move_iterator_concept         202207L [C++20]
24     __cpp_lib_nonmember_container_access    201411L [C++17]
25     __cpp_lib_null_iterators                201304L [C++14]
26     __cpp_lib_ranges                        202110L [C++20]
27                                             202406L [C++23]
28     __cpp_lib_ssize                         201902L [C++20]
29 */
30 
31 #include <iterator>
32 #include "test_macros.h"
33 
34 #if TEST_STD_VER < 14
35 
36 # ifdef __cpp_lib_array_constexpr
37 #   error "__cpp_lib_array_constexpr should not be defined before c++17"
38 # endif
39 
40 # ifdef __cpp_lib_constexpr_iterator
41 #   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
42 # endif
43 
44 # ifdef __cpp_lib_make_reverse_iterator
45 #   error "__cpp_lib_make_reverse_iterator should not be defined before c++14"
46 # endif
47 
48 # ifdef __cpp_lib_move_iterator_concept
49 #   error "__cpp_lib_move_iterator_concept should not be defined before c++20"
50 # endif
51 
52 # ifdef __cpp_lib_nonmember_container_access
53 #   error "__cpp_lib_nonmember_container_access should not be defined before c++17"
54 # endif
55 
56 # ifdef __cpp_lib_null_iterators
57 #   error "__cpp_lib_null_iterators should not be defined before c++14"
58 # endif
59 
60 # ifdef __cpp_lib_ranges
61 #   error "__cpp_lib_ranges should not be defined before c++20"
62 # endif
63 
64 # ifdef __cpp_lib_ssize
65 #   error "__cpp_lib_ssize should not be defined before c++20"
66 # endif
67 
68 #elif TEST_STD_VER == 14
69 
70 # ifdef __cpp_lib_array_constexpr
71 #   error "__cpp_lib_array_constexpr should not be defined before c++17"
72 # endif
73 
74 # ifdef __cpp_lib_constexpr_iterator
75 #   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
76 # endif
77 
78 # ifndef __cpp_lib_make_reverse_iterator
79 #   error "__cpp_lib_make_reverse_iterator should be defined in c++14"
80 # endif
81 # if __cpp_lib_make_reverse_iterator != 201402L
82 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++14"
83 # endif
84 
85 # ifdef __cpp_lib_move_iterator_concept
86 #   error "__cpp_lib_move_iterator_concept should not be defined before c++20"
87 # endif
88 
89 # ifdef __cpp_lib_nonmember_container_access
90 #   error "__cpp_lib_nonmember_container_access should not be defined before c++17"
91 # endif
92 
93 # ifndef __cpp_lib_null_iterators
94 #   error "__cpp_lib_null_iterators should be defined in c++14"
95 # endif
96 # if __cpp_lib_null_iterators != 201304L
97 #   error "__cpp_lib_null_iterators should have the value 201304L in c++14"
98 # endif
99 
100 # ifdef __cpp_lib_ranges
101 #   error "__cpp_lib_ranges should not be defined before c++20"
102 # endif
103 
104 # ifdef __cpp_lib_ssize
105 #   error "__cpp_lib_ssize should not be defined before c++20"
106 # endif
107 
108 #elif TEST_STD_VER == 17
109 
110 # ifndef __cpp_lib_array_constexpr
111 #   error "__cpp_lib_array_constexpr should be defined in c++17"
112 # endif
113 # if __cpp_lib_array_constexpr != 201603L
114 #   error "__cpp_lib_array_constexpr should have the value 201603L in c++17"
115 # endif
116 
117 # ifdef __cpp_lib_constexpr_iterator
118 #   error "__cpp_lib_constexpr_iterator should not be defined before c++20"
119 # endif
120 
121 # ifndef __cpp_lib_make_reverse_iterator
122 #   error "__cpp_lib_make_reverse_iterator should be defined in c++17"
123 # endif
124 # if __cpp_lib_make_reverse_iterator != 201402L
125 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++17"
126 # endif
127 
128 # ifdef __cpp_lib_move_iterator_concept
129 #   error "__cpp_lib_move_iterator_concept should not be defined before c++20"
130 # endif
131 
132 # ifndef __cpp_lib_nonmember_container_access
133 #   error "__cpp_lib_nonmember_container_access should be defined in c++17"
134 # endif
135 # if __cpp_lib_nonmember_container_access != 201411L
136 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++17"
137 # endif
138 
139 # ifndef __cpp_lib_null_iterators
140 #   error "__cpp_lib_null_iterators should be defined in c++17"
141 # endif
142 # if __cpp_lib_null_iterators != 201304L
143 #   error "__cpp_lib_null_iterators should have the value 201304L in c++17"
144 # endif
145 
146 # ifdef __cpp_lib_ranges
147 #   error "__cpp_lib_ranges should not be defined before c++20"
148 # endif
149 
150 # ifdef __cpp_lib_ssize
151 #   error "__cpp_lib_ssize should not be defined before c++20"
152 # endif
153 
154 #elif TEST_STD_VER == 20
155 
156 # ifndef __cpp_lib_array_constexpr
157 #   error "__cpp_lib_array_constexpr should be defined in c++20"
158 # endif
159 # if __cpp_lib_array_constexpr != 201811L
160 #   error "__cpp_lib_array_constexpr should have the value 201811L in c++20"
161 # endif
162 
163 # ifndef __cpp_lib_constexpr_iterator
164 #   error "__cpp_lib_constexpr_iterator should be defined in c++20"
165 # endif
166 # if __cpp_lib_constexpr_iterator != 201811L
167 #   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++20"
168 # endif
169 
170 # ifndef __cpp_lib_make_reverse_iterator
171 #   error "__cpp_lib_make_reverse_iterator should be defined in c++20"
172 # endif
173 # if __cpp_lib_make_reverse_iterator != 201402L
174 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++20"
175 # endif
176 
177 # ifndef __cpp_lib_move_iterator_concept
178 #   error "__cpp_lib_move_iterator_concept should be defined in c++20"
179 # endif
180 # if __cpp_lib_move_iterator_concept != 202207L
181 #   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++20"
182 # endif
183 
184 # ifndef __cpp_lib_nonmember_container_access
185 #   error "__cpp_lib_nonmember_container_access should be defined in c++20"
186 # endif
187 # if __cpp_lib_nonmember_container_access != 201411L
188 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++20"
189 # endif
190 
191 # ifndef __cpp_lib_null_iterators
192 #   error "__cpp_lib_null_iterators should be defined in c++20"
193 # endif
194 # if __cpp_lib_null_iterators != 201304L
195 #   error "__cpp_lib_null_iterators should have the value 201304L in c++20"
196 # endif
197 
198 # ifndef __cpp_lib_ranges
199 #   error "__cpp_lib_ranges should be defined in c++20"
200 # endif
201 # if __cpp_lib_ranges != 202110L
202 #   error "__cpp_lib_ranges should have the value 202110L in c++20"
203 # endif
204 
205 # ifndef __cpp_lib_ssize
206 #   error "__cpp_lib_ssize should be defined in c++20"
207 # endif
208 # if __cpp_lib_ssize != 201902L
209 #   error "__cpp_lib_ssize should have the value 201902L in c++20"
210 # endif
211 
212 #elif TEST_STD_VER == 23
213 
214 # ifndef __cpp_lib_array_constexpr
215 #   error "__cpp_lib_array_constexpr should be defined in c++23"
216 # endif
217 # if __cpp_lib_array_constexpr != 201811L
218 #   error "__cpp_lib_array_constexpr should have the value 201811L in c++23"
219 # endif
220 
221 # ifndef __cpp_lib_constexpr_iterator
222 #   error "__cpp_lib_constexpr_iterator should be defined in c++23"
223 # endif
224 # if __cpp_lib_constexpr_iterator != 201811L
225 #   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++23"
226 # endif
227 
228 # ifndef __cpp_lib_make_reverse_iterator
229 #   error "__cpp_lib_make_reverse_iterator should be defined in c++23"
230 # endif
231 # if __cpp_lib_make_reverse_iterator != 201402L
232 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++23"
233 # endif
234 
235 # ifndef __cpp_lib_move_iterator_concept
236 #   error "__cpp_lib_move_iterator_concept should be defined in c++23"
237 # endif
238 # if __cpp_lib_move_iterator_concept != 202207L
239 #   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++23"
240 # endif
241 
242 # ifndef __cpp_lib_nonmember_container_access
243 #   error "__cpp_lib_nonmember_container_access should be defined in c++23"
244 # endif
245 # if __cpp_lib_nonmember_container_access != 201411L
246 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++23"
247 # endif
248 
249 # ifndef __cpp_lib_null_iterators
250 #   error "__cpp_lib_null_iterators should be defined in c++23"
251 # endif
252 # if __cpp_lib_null_iterators != 201304L
253 #   error "__cpp_lib_null_iterators should have the value 201304L in c++23"
254 # endif
255 
256 # ifndef __cpp_lib_ranges
257 #   error "__cpp_lib_ranges should be defined in c++23"
258 # endif
259 # if __cpp_lib_ranges != 202406L
260 #   error "__cpp_lib_ranges should have the value 202406L in c++23"
261 # endif
262 
263 # ifndef __cpp_lib_ssize
264 #   error "__cpp_lib_ssize should be defined in c++23"
265 # endif
266 # if __cpp_lib_ssize != 201902L
267 #   error "__cpp_lib_ssize should have the value 201902L in c++23"
268 # endif
269 
270 #elif TEST_STD_VER > 23
271 
272 # ifndef __cpp_lib_array_constexpr
273 #   error "__cpp_lib_array_constexpr should be defined in c++26"
274 # endif
275 # if __cpp_lib_array_constexpr != 201811L
276 #   error "__cpp_lib_array_constexpr should have the value 201811L in c++26"
277 # endif
278 
279 # ifndef __cpp_lib_constexpr_iterator
280 #   error "__cpp_lib_constexpr_iterator should be defined in c++26"
281 # endif
282 # if __cpp_lib_constexpr_iterator != 201811L
283 #   error "__cpp_lib_constexpr_iterator should have the value 201811L in c++26"
284 # endif
285 
286 # ifndef __cpp_lib_make_reverse_iterator
287 #   error "__cpp_lib_make_reverse_iterator should be defined in c++26"
288 # endif
289 # if __cpp_lib_make_reverse_iterator != 201402L
290 #   error "__cpp_lib_make_reverse_iterator should have the value 201402L in c++26"
291 # endif
292 
293 # ifndef __cpp_lib_move_iterator_concept
294 #   error "__cpp_lib_move_iterator_concept should be defined in c++26"
295 # endif
296 # if __cpp_lib_move_iterator_concept != 202207L
297 #   error "__cpp_lib_move_iterator_concept should have the value 202207L in c++26"
298 # endif
299 
300 # ifndef __cpp_lib_nonmember_container_access
301 #   error "__cpp_lib_nonmember_container_access should be defined in c++26"
302 # endif
303 # if __cpp_lib_nonmember_container_access != 201411L
304 #   error "__cpp_lib_nonmember_container_access should have the value 201411L in c++26"
305 # endif
306 
307 # ifndef __cpp_lib_null_iterators
308 #   error "__cpp_lib_null_iterators should be defined in c++26"
309 # endif
310 # if __cpp_lib_null_iterators != 201304L
311 #   error "__cpp_lib_null_iterators should have the value 201304L in c++26"
312 # endif
313 
314 # ifndef __cpp_lib_ranges
315 #   error "__cpp_lib_ranges should be defined in c++26"
316 # endif
317 # if __cpp_lib_ranges != 202406L
318 #   error "__cpp_lib_ranges should have the value 202406L in c++26"
319 # endif
320 
321 # ifndef __cpp_lib_ssize
322 #   error "__cpp_lib_ssize should be defined in c++26"
323 # endif
324 # if __cpp_lib_ssize != 201902L
325 #   error "__cpp_lib_ssize should have the value 201902L in c++26"
326 # endif
327 
328 #endif // TEST_STD_VER > 23
329 
330