libstdc++
version.h
Go to the documentation of this file.
1 // Copyright (C) 2023-2026 Free Software Foundation, Inc.
2 
3 // This file is part of the GNU ISO C++ Library. This library is free
4 // software; you can redistribute it and/or modify it under the
5 // terms of the GNU General Public License as published by the
6 // Free Software Foundation; either version 3, or (at your option)
7 // any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
13 
14 // Under Section 7 of GPL version 3, you are granted additional
15 // permissions described in the GCC Runtime Library Exception, version
16 // 3.1, as published by the Free Software Foundation.
17 
18 // You should have received a copy of the GNU General Public License and
19 // a copy of the GCC Runtime Library Exception along with this program;
20 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
21 // <http://www.gnu.org/licenses/>.
22 
23 // DO NOT EDIT THIS FILE (version.h)
24 //
25 // It has been AutoGen-ed
26 // From the definitions version.def
27 // and the template file version.tpl
28 
29 /** @file bits/version.h
30  * This is an internal header file, included by other library headers.
31  * Do not attempt to use it directly. @headername{version}
32  */
33 
34 // Usage guide:
35 //
36 // In your usual header, do something like:
37 //
38 // #define __glibcxx_want_ranges
39 // #define __glibcxx_want_concepts
40 // #include <bits/version.h>
41 //
42 // This will generate the FTMs you named, and let you use them in your code as
43 // if it was user code. All macros are also exposed under __glibcxx_NAME even
44 // if unwanted, to permit bits and other FTMs to depend on them for condtional
45 // computation without exposing extra FTMs to user code.
46 
47 #ifdef _GLIBCXX_SYSHDR
48 #pragma GCC system_header
49 #endif
50 
51 #include <bits/c++config.h>
52 
53 #if !defined(__cpp_lib_incomplete_container_elements)
54 # if _GLIBCXX_HOSTED
55 # define __glibcxx_incomplete_container_elements 201505L
56 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_incomplete_container_elements)
57 # define __cpp_lib_incomplete_container_elements 201505L
58 # endif
59 # endif
60 #endif /* !defined(__cpp_lib_incomplete_container_elements) */
61 #undef __glibcxx_want_incomplete_container_elements
62 
63 #if !defined(__cpp_lib_uncaught_exceptions)
64 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 199711L))
65 # define __glibcxx_uncaught_exceptions 201411L
66 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_uncaught_exceptions)
67 # define __cpp_lib_uncaught_exceptions 201411L
68 # endif
69 # endif
70 #endif /* !defined(__cpp_lib_uncaught_exceptions) */
71 #undef __glibcxx_want_uncaught_exceptions
72 
73 #if !defined(__cpp_lib_allocator_traits_is_always_equal)
74 # if (__cplusplus >= 201103L)
75 # define __glibcxx_allocator_traits_is_always_equal 201411L
76 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_allocator_traits_is_always_equal)
77 # define __cpp_lib_allocator_traits_is_always_equal 201411L
78 # endif
79 # endif
80 #endif /* !defined(__cpp_lib_allocator_traits_is_always_equal) */
81 #undef __glibcxx_want_allocator_traits_is_always_equal
82 
83 #if !defined(__cpp_lib_allocate_at_least)
84 # if (__cplusplus >= 202100L)
85 # define __glibcxx_allocate_at_least 202302L
86 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_allocate_at_least)
87 # define __cpp_lib_allocate_at_least 202302L
88 # endif
89 # endif
90 #endif /* !defined(__cpp_lib_allocate_at_least) */
91 #undef __glibcxx_want_allocate_at_least
92 
93 #if !defined(__cpp_lib_is_null_pointer)
94 # if (__cplusplus >= 201103L)
95 # define __glibcxx_is_null_pointer 201309L
96 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_null_pointer)
97 # define __cpp_lib_is_null_pointer 201309L
98 # endif
99 # endif
100 #endif /* !defined(__cpp_lib_is_null_pointer) */
101 #undef __glibcxx_want_is_null_pointer
102 
103 #if !defined(__cpp_lib_result_of_sfinae)
104 # if (__cplusplus >= 201103L)
105 # define __glibcxx_result_of_sfinae 201210L
106 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_result_of_sfinae)
107 # define __cpp_lib_result_of_sfinae 201210L
108 # endif
109 # endif
110 #endif /* !defined(__cpp_lib_result_of_sfinae) */
111 #undef __glibcxx_want_result_of_sfinae
112 
113 #if !defined(__cpp_lib_shared_ptr_arrays)
114 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
115 # define __glibcxx_shared_ptr_arrays 201707L
116 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays)
117 # define __cpp_lib_shared_ptr_arrays 201707L
118 # endif
119 # elif (__cplusplus >= 201103L) && _GLIBCXX_HOSTED
120 # define __glibcxx_shared_ptr_arrays 201611L
121 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays)
122 # define __cpp_lib_shared_ptr_arrays 201611L
123 # endif
124 # endif
125 #endif /* !defined(__cpp_lib_shared_ptr_arrays) */
126 #undef __glibcxx_want_shared_ptr_arrays
127 
128 #if !defined(__cpp_lib_is_swappable)
129 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L))
130 # define __glibcxx_is_swappable 201603L
131 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_swappable)
132 # define __cpp_lib_is_swappable 201603L
133 # endif
134 # endif
135 #endif /* !defined(__cpp_lib_is_swappable) */
136 #undef __glibcxx_want_is_swappable
137 
138 #if !defined(__cpp_lib_void_t)
139 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L))
140 # define __glibcxx_void_t 201411L
141 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_void_t)
142 # define __cpp_lib_void_t 201411L
143 # endif
144 # endif
145 #endif /* !defined(__cpp_lib_void_t) */
146 #undef __glibcxx_want_void_t
147 
148 #if !defined(__cpp_lib_enable_shared_from_this)
149 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) && _GLIBCXX_HOSTED
150 # define __glibcxx_enable_shared_from_this 201603L
151 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_enable_shared_from_this)
152 # define __cpp_lib_enable_shared_from_this 201603L
153 # endif
154 # endif
155 #endif /* !defined(__cpp_lib_enable_shared_from_this) */
156 #undef __glibcxx_want_enable_shared_from_this
157 
158 #if !defined(__cpp_lib_math_spec_funcs)
159 # if (__cplusplus >= 201103L)
160 # define __glibcxx_math_spec_funcs 201003L
161 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_spec_funcs)
162 # define __STDCPP_MATH_SPEC_FUNCS__ 201003L
163 # endif
164 # endif
165 #endif /* !defined(__cpp_lib_math_spec_funcs) */
166 #undef __glibcxx_want_math_spec_funcs
167 
168 #if !defined(__cpp_lib_coroutine)
169 # if (__cplusplus >= 201402L) && (__cpp_impl_coroutine)
170 # define __glibcxx_coroutine 201902L
171 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_coroutine)
172 # define __cpp_lib_coroutine 201902L
173 # endif
174 # endif
175 #endif /* !defined(__cpp_lib_coroutine) */
176 #undef __glibcxx_want_coroutine
177 
178 #if !defined(__cpp_lib_exchange_function)
179 # if (__cplusplus >= 201402L)
180 # define __glibcxx_exchange_function 201304L
181 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_exchange_function)
182 # define __cpp_lib_exchange_function 201304L
183 # endif
184 # endif
185 #endif /* !defined(__cpp_lib_exchange_function) */
186 #undef __glibcxx_want_exchange_function
187 
188 #if !defined(__cpp_lib_integer_sequence)
189 # if (__cplusplus > 202302L) && (__cpp_pack_indexing)
190 # define __glibcxx_integer_sequence 202511L
191 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
192 # define __cpp_lib_integer_sequence 202511L
193 # endif
194 # elif (__cplusplus >= 201402L)
195 # define __glibcxx_integer_sequence 201304L
196 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
197 # define __cpp_lib_integer_sequence 201304L
198 # endif
199 # endif
200 #endif /* !defined(__cpp_lib_integer_sequence) */
201 #undef __glibcxx_want_integer_sequence
202 
203 #if !defined(__cpp_lib_integral_constant_callable)
204 # if (__cplusplus >= 201402L)
205 # define __glibcxx_integral_constant_callable 201304L
206 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integral_constant_callable)
207 # define __cpp_lib_integral_constant_callable 201304L
208 # endif
209 # endif
210 #endif /* !defined(__cpp_lib_integral_constant_callable) */
211 #undef __glibcxx_want_integral_constant_callable
212 
213 #if !defined(__cpp_lib_is_final)
214 # if (__cplusplus >= 201402L)
215 # define __glibcxx_is_final 201402L
216 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_final)
217 # define __cpp_lib_is_final 201402L
218 # endif
219 # endif
220 #endif /* !defined(__cpp_lib_is_final) */
221 #undef __glibcxx_want_is_final
222 
223 #if !defined(__cpp_lib_make_reverse_iterator)
224 # if (__cplusplus >= 201402L)
225 # define __glibcxx_make_reverse_iterator 201402L
226 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_reverse_iterator)
227 # define __cpp_lib_make_reverse_iterator 201402L
228 # endif
229 # endif
230 #endif /* !defined(__cpp_lib_make_reverse_iterator) */
231 #undef __glibcxx_want_make_reverse_iterator
232 
233 #if !defined(__cpp_lib_null_iterators)
234 # if (__cplusplus >= 201402L)
235 # define __glibcxx_null_iterators 201304L
236 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_null_iterators)
237 # define __cpp_lib_null_iterators 201304L
238 # endif
239 # endif
240 #endif /* !defined(__cpp_lib_null_iterators) */
241 #undef __glibcxx_want_null_iterators
242 
243 #if !defined(__cpp_lib_transformation_trait_aliases)
244 # if (__cplusplus >= 201402L)
245 # define __glibcxx_transformation_trait_aliases 201304L
246 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_transformation_trait_aliases)
247 # define __cpp_lib_transformation_trait_aliases 201304L
248 # endif
249 # endif
250 #endif /* !defined(__cpp_lib_transformation_trait_aliases) */
251 #undef __glibcxx_want_transformation_trait_aliases
252 
253 #if !defined(__cpp_lib_transparent_operators)
254 # if (__cplusplus >= 201402L)
255 # define __glibcxx_transparent_operators 201510L
256 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_transparent_operators)
257 # define __cpp_lib_transparent_operators 201510L
258 # endif
259 # endif
260 #endif /* !defined(__cpp_lib_transparent_operators) */
261 #undef __glibcxx_want_transparent_operators
262 
263 #if !defined(__cpp_lib_tuple_element_t)
264 # if (__cplusplus >= 201402L)
265 # define __glibcxx_tuple_element_t 201402L
266 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_element_t)
267 # define __cpp_lib_tuple_element_t 201402L
268 # endif
269 # endif
270 #endif /* !defined(__cpp_lib_tuple_element_t) */
271 #undef __glibcxx_want_tuple_element_t
272 
273 #if !defined(__cpp_lib_tuples_by_type)
274 # if (__cplusplus >= 201402L)
275 # define __glibcxx_tuples_by_type 201304L
276 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuples_by_type)
277 # define __cpp_lib_tuples_by_type 201304L
278 # endif
279 # endif
280 #endif /* !defined(__cpp_lib_tuples_by_type) */
281 #undef __glibcxx_want_tuples_by_type
282 
283 #if !defined(__cpp_lib_robust_nonmodifying_seq_ops)
284 # if (__cplusplus >= 201402L)
285 # define __glibcxx_robust_nonmodifying_seq_ops 201304L
286 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_robust_nonmodifying_seq_ops)
287 # define __cpp_lib_robust_nonmodifying_seq_ops 201304L
288 # endif
289 # endif
290 #endif /* !defined(__cpp_lib_robust_nonmodifying_seq_ops) */
291 #undef __glibcxx_want_robust_nonmodifying_seq_ops
292 
293 #if !defined(__cpp_lib_to_chars)
294 # if (__cplusplus > 202302L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
295 # define __glibcxx_to_chars 202306L
296 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
297 # define __cpp_lib_to_chars 202306L
298 # endif
299 # elif (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
300 # define __glibcxx_to_chars 201611L
301 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
302 # define __cpp_lib_to_chars 201611L
303 # endif
304 # endif
305 #endif /* !defined(__cpp_lib_to_chars) */
306 #undef __glibcxx_want_to_chars
307 
308 #if !defined(__cpp_lib_chrono_udls)
309 # if (__cplusplus >= 201402L)
310 # define __glibcxx_chrono_udls 201304L
311 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_udls)
312 # define __cpp_lib_chrono_udls 201304L
313 # endif
314 # endif
315 #endif /* !defined(__cpp_lib_chrono_udls) */
316 #undef __glibcxx_want_chrono_udls
317 
318 #if !defined(__cpp_lib_complex_udls)
319 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
320 # define __glibcxx_complex_udls 201309L
321 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_complex_udls)
322 # define __cpp_lib_complex_udls 201309L
323 # endif
324 # endif
325 #endif /* !defined(__cpp_lib_complex_udls) */
326 #undef __glibcxx_want_complex_udls
327 
328 #if !defined(__cpp_lib_generic_associative_lookup)
329 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
330 # define __glibcxx_generic_associative_lookup 201304L
331 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_associative_lookup)
332 # define __cpp_lib_generic_associative_lookup 201304L
333 # endif
334 # endif
335 #endif /* !defined(__cpp_lib_generic_associative_lookup) */
336 #undef __glibcxx_want_generic_associative_lookup
337 
338 #if !defined(__cpp_lib_make_unique)
339 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
340 # define __glibcxx_make_unique 201304L
341 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_unique)
342 # define __cpp_lib_make_unique 201304L
343 # endif
344 # endif
345 #endif /* !defined(__cpp_lib_make_unique) */
346 #undef __glibcxx_want_make_unique
347 
348 #if !defined(__cpp_lib_quoted_string_io)
349 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
350 # define __glibcxx_quoted_string_io 201304L
351 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_quoted_string_io)
352 # define __cpp_lib_quoted_string_io 201304L
353 # endif
354 # endif
355 #endif /* !defined(__cpp_lib_quoted_string_io) */
356 #undef __glibcxx_want_quoted_string_io
357 
358 #if !defined(__cpp_lib_shared_timed_mutex)
359 # if (__cplusplus >= 201402L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
360 # define __glibcxx_shared_timed_mutex 201402L
361 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_timed_mutex)
362 # define __cpp_lib_shared_timed_mutex 201402L
363 # endif
364 # endif
365 #endif /* !defined(__cpp_lib_shared_timed_mutex) */
366 #undef __glibcxx_want_shared_timed_mutex
367 
368 #if !defined(__cpp_lib_string_udls)
369 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
370 # define __glibcxx_string_udls 201304L
371 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_udls)
372 # define __cpp_lib_string_udls 201304L
373 # endif
374 # endif
375 #endif /* !defined(__cpp_lib_string_udls) */
376 #undef __glibcxx_want_string_udls
377 
378 #if !defined(__cpp_lib_addressof_constexpr)
379 # if (__cplusplus >= 201703L)
380 # define __glibcxx_addressof_constexpr 201603L
381 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_addressof_constexpr)
382 # define __cpp_lib_addressof_constexpr 201603L
383 # endif
384 # endif
385 #endif /* !defined(__cpp_lib_addressof_constexpr) */
386 #undef __glibcxx_want_addressof_constexpr
387 
388 #if !defined(__cpp_lib_any)
389 # if (__cplusplus >= 201703L)
390 # define __glibcxx_any 201606L
391 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_any)
392 # define __cpp_lib_any 201606L
393 # endif
394 # endif
395 #endif /* !defined(__cpp_lib_any) */
396 #undef __glibcxx_want_any
397 
398 #if !defined(__cpp_lib_apply)
399 # if (__cplusplus >= 201703L)
400 # define __glibcxx_apply 201603L
401 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_apply)
402 # define __cpp_lib_apply 201603L
403 # endif
404 # endif
405 #endif /* !defined(__cpp_lib_apply) */
406 #undef __glibcxx_want_apply
407 
408 #if !defined(__cpp_lib_as_const)
409 # if (__cplusplus >= 201703L)
410 # define __glibcxx_as_const 201510L
411 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_as_const)
412 # define __cpp_lib_as_const 201510L
413 # endif
414 # endif
415 #endif /* !defined(__cpp_lib_as_const) */
416 #undef __glibcxx_want_as_const
417 
418 #if !defined(__cpp_lib_atomic_is_always_lock_free)
419 # if (__cplusplus >= 201703L)
420 # define __glibcxx_atomic_is_always_lock_free 201603L
421 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_is_always_lock_free)
422 # define __cpp_lib_atomic_is_always_lock_free 201603L
423 # endif
424 # endif
425 #endif /* !defined(__cpp_lib_atomic_is_always_lock_free) */
426 #undef __glibcxx_want_atomic_is_always_lock_free
427 
428 #if !defined(__cpp_lib_bool_constant)
429 # if (__cplusplus >= 201703L)
430 # define __glibcxx_bool_constant 201505L
431 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bool_constant)
432 # define __cpp_lib_bool_constant 201505L
433 # endif
434 # endif
435 #endif /* !defined(__cpp_lib_bool_constant) */
436 #undef __glibcxx_want_bool_constant
437 
438 #if !defined(__cpp_lib_byte)
439 # if (__cplusplus >= 201703L)
440 # define __glibcxx_byte 201603L
441 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_byte)
442 # define __cpp_lib_byte 201603L
443 # endif
444 # endif
445 #endif /* !defined(__cpp_lib_byte) */
446 #undef __glibcxx_want_byte
447 
448 #if !defined(__cpp_lib_constant_wrapper)
449 # if (__cplusplus > 202302L)
450 # define __glibcxx_constant_wrapper 202606L
451 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constant_wrapper)
452 # define __cpp_lib_constant_wrapper 202606L
453 # endif
454 # endif
455 #endif /* !defined(__cpp_lib_constant_wrapper) */
456 #undef __glibcxx_want_constant_wrapper
457 
458 #if !defined(__cpp_lib_has_unique_object_representations)
459 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP))
460 # define __glibcxx_has_unique_object_representations 201606L
461 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_has_unique_object_representations)
462 # define __cpp_lib_has_unique_object_representations 201606L
463 # endif
464 # endif
465 #endif /* !defined(__cpp_lib_has_unique_object_representations) */
466 #undef __glibcxx_want_has_unique_object_representations
467 
468 #if !defined(__cpp_lib_hardware_interference_size)
469 # if (__cplusplus >= 201703L) && (defined(__GCC_DESTRUCTIVE_SIZE))
470 # define __glibcxx_hardware_interference_size 201703L
471 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardware_interference_size)
472 # define __cpp_lib_hardware_interference_size 201703L
473 # endif
474 # endif
475 #endif /* !defined(__cpp_lib_hardware_interference_size) */
476 #undef __glibcxx_want_hardware_interference_size
477 
478 #if !defined(__cpp_lib_invoke)
479 # if (__cplusplus >= 201703L)
480 # define __glibcxx_invoke 201411L
481 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke)
482 # define __cpp_lib_invoke 201411L
483 # endif
484 # endif
485 #endif /* !defined(__cpp_lib_invoke) */
486 #undef __glibcxx_want_invoke
487 
488 #if !defined(__cpp_lib_is_aggregate)
489 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE))
490 # define __glibcxx_is_aggregate 201703L
491 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_aggregate)
492 # define __cpp_lib_is_aggregate 201703L
493 # endif
494 # endif
495 #endif /* !defined(__cpp_lib_is_aggregate) */
496 #undef __glibcxx_want_is_aggregate
497 
498 #if !defined(__cpp_lib_is_invocable)
499 # if (__cplusplus >= 201703L)
500 # define __glibcxx_is_invocable 201703L
501 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_invocable)
502 # define __cpp_lib_is_invocable 201703L
503 # endif
504 # endif
505 #endif /* !defined(__cpp_lib_is_invocable) */
506 #undef __glibcxx_want_is_invocable
507 
508 #if !defined(__cpp_lib_launder)
509 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_LAUNDER))
510 # define __glibcxx_launder 201606L
511 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_launder)
512 # define __cpp_lib_launder 201606L
513 # endif
514 # endif
515 #endif /* !defined(__cpp_lib_launder) */
516 #undef __glibcxx_want_launder
517 
518 #if !defined(__cpp_lib_logical_traits)
519 # if (__cplusplus >= 201703L)
520 # define __glibcxx_logical_traits 201510L
521 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_logical_traits)
522 # define __cpp_lib_logical_traits 201510L
523 # endif
524 # endif
525 #endif /* !defined(__cpp_lib_logical_traits) */
526 #undef __glibcxx_want_logical_traits
527 
528 #if !defined(__cpp_lib_make_from_tuple)
529 # if (__cplusplus >= 201703L)
530 # define __glibcxx_make_from_tuple 201606L
531 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_from_tuple)
532 # define __cpp_lib_make_from_tuple 201606L
533 # endif
534 # endif
535 #endif /* !defined(__cpp_lib_make_from_tuple) */
536 #undef __glibcxx_want_make_from_tuple
537 
538 #if !defined(__cpp_lib_not_fn)
539 # if (__cplusplus > 202302L)
540 # define __glibcxx_not_fn 202306L
541 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn)
542 # define __cpp_lib_not_fn 202306L
543 # endif
544 # elif (__cplusplus >= 201703L)
545 # define __glibcxx_not_fn 201603L
546 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn)
547 # define __cpp_lib_not_fn 201603L
548 # endif
549 # endif
550 #endif /* !defined(__cpp_lib_not_fn) */
551 #undef __glibcxx_want_not_fn
552 
553 #if !defined(__cpp_lib_type_trait_variable_templates)
554 # if (__cplusplus >= 201703L)
555 # define __glibcxx_type_trait_variable_templates 201510L
556 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_trait_variable_templates)
557 # define __cpp_lib_type_trait_variable_templates 201510L
558 # endif
559 # endif
560 #endif /* !defined(__cpp_lib_type_trait_variable_templates) */
561 #undef __glibcxx_want_type_trait_variable_templates
562 
563 #if !defined(__cpp_lib_variant)
564 # if (__cplusplus > 202302L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L && __cpp_explicit_this_parameter)
565 # define __glibcxx_variant 202306L
566 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
567 # define __cpp_lib_variant 202306L
568 # endif
569 # elif (__cplusplus >= 202002L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L)
570 # define __glibcxx_variant 202106L
571 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
572 # define __cpp_lib_variant 202106L
573 # endif
574 # elif (__cplusplus >= 201703L)
575 # define __glibcxx_variant 202102L
576 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
577 # define __cpp_lib_variant 202102L
578 # endif
579 # endif
580 #endif /* !defined(__cpp_lib_variant) */
581 #undef __glibcxx_want_variant
582 
583 #if !defined(__cpp_lib_lcm)
584 # if (__cplusplus >= 201703L)
585 # define __glibcxx_lcm 201606L
586 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_lcm)
587 # define __cpp_lib_lcm 201606L
588 # endif
589 # endif
590 #endif /* !defined(__cpp_lib_lcm) */
591 #undef __glibcxx_want_lcm
592 
593 #if !defined(__cpp_lib_gcd)
594 # if (__cplusplus >= 201703L)
595 # define __glibcxx_gcd 201606L
596 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd)
597 # define __cpp_lib_gcd 201606L
598 # endif
599 # endif
600 #endif /* !defined(__cpp_lib_gcd) */
601 #undef __glibcxx_want_gcd
602 
603 #if !defined(__cpp_lib_gcd_lcm)
604 # if (__cplusplus >= 201703L)
605 # define __glibcxx_gcd_lcm 201606L
606 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd_lcm)
607 # define __cpp_lib_gcd_lcm 201606L
608 # endif
609 # endif
610 #endif /* !defined(__cpp_lib_gcd_lcm) */
611 #undef __glibcxx_want_gcd_lcm
612 
613 #if !defined(__cpp_lib_raw_memory_algorithms)
614 # if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L)
615 # define __glibcxx_raw_memory_algorithms 202411L
616 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms)
617 # define __cpp_lib_raw_memory_algorithms 202411L
618 # endif
619 # elif (__cplusplus >= 201703L)
620 # define __glibcxx_raw_memory_algorithms 201606L
621 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms)
622 # define __cpp_lib_raw_memory_algorithms 201606L
623 # endif
624 # endif
625 #endif /* !defined(__cpp_lib_raw_memory_algorithms) */
626 #undef __glibcxx_want_raw_memory_algorithms
627 
628 #if !defined(__cpp_lib_array_constexpr)
629 # if (__cplusplus >= 202002L)
630 # define __glibcxx_array_constexpr 201811L
631 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr)
632 # define __cpp_lib_array_constexpr 201811L
633 # endif
634 # elif (__cplusplus >= 201703L)
635 # define __glibcxx_array_constexpr 201803L
636 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr)
637 # define __cpp_lib_array_constexpr 201803L
638 # endif
639 # endif
640 #endif /* !defined(__cpp_lib_array_constexpr) */
641 #undef __glibcxx_want_array_constexpr
642 
643 #if !defined(__cpp_lib_nonmember_container_access)
644 # if (__cplusplus >= 201703L)
645 # define __glibcxx_nonmember_container_access 201411L
646 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_nonmember_container_access)
647 # define __cpp_lib_nonmember_container_access 201411L
648 # endif
649 # endif
650 #endif /* !defined(__cpp_lib_nonmember_container_access) */
651 #undef __glibcxx_want_nonmember_container_access
652 
653 #if !defined(__cpp_lib_clamp)
654 # if (__cplusplus >= 201703L)
655 # define __glibcxx_clamp 201603L
656 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_clamp)
657 # define __cpp_lib_clamp 201603L
658 # endif
659 # endif
660 #endif /* !defined(__cpp_lib_clamp) */
661 #undef __glibcxx_want_clamp
662 
663 #if !defined(__cpp_lib_sample)
664 # if (__cplusplus >= 201703L)
665 # define __glibcxx_sample 201603L
666 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_sample)
667 # define __cpp_lib_sample 201603L
668 # endif
669 # endif
670 #endif /* !defined(__cpp_lib_sample) */
671 #undef __glibcxx_want_sample
672 
673 #if !defined(__cpp_lib_boyer_moore_searcher)
674 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
675 # define __glibcxx_boyer_moore_searcher 201603L
676 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_boyer_moore_searcher)
677 # define __cpp_lib_boyer_moore_searcher 201603L
678 # endif
679 # endif
680 #endif /* !defined(__cpp_lib_boyer_moore_searcher) */
681 #undef __glibcxx_want_boyer_moore_searcher
682 
683 #if !defined(__cpp_lib_chrono)
684 # if (__cplusplus > 202302L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
685 # define __glibcxx_chrono 202306L
686 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
687 # define __cpp_lib_chrono 202306L
688 # endif
689 # elif (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
690 # define __glibcxx_chrono 201907L
691 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
692 # define __cpp_lib_chrono 201907L
693 # endif
694 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
695 # define __glibcxx_chrono 201611L
696 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
697 # define __cpp_lib_chrono 201611L
698 # endif
699 # endif
700 #endif /* !defined(__cpp_lib_chrono) */
701 #undef __glibcxx_want_chrono
702 
703 #if !defined(__cpp_lib_chrono_cxx20)
704 # if (__cplusplus > 202302L)
705 # define __glibcxx_chrono_cxx20 202306L
706 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_cxx20)
707 # endif
708 # elif (__cplusplus >= 202002L)
709 # define __glibcxx_chrono_cxx20 201800L
710 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_cxx20)
711 # endif
712 # endif
713 #endif /* !defined(__cpp_lib_chrono_cxx20) */
714 #undef __glibcxx_want_chrono_cxx20
715 
716 #if !defined(__cpp_lib_execution)
717 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
718 # define __glibcxx_execution 201902L
719 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_execution)
720 # define __cpp_lib_execution 201902L
721 # endif
722 # endif
723 #endif /* !defined(__cpp_lib_execution) */
724 #undef __glibcxx_want_execution
725 
726 #if !defined(__cpp_lib_filesystem)
727 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
728 # define __glibcxx_filesystem 201703L
729 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_filesystem)
730 # define __cpp_lib_filesystem 201703L
731 # endif
732 # endif
733 #endif /* !defined(__cpp_lib_filesystem) */
734 #undef __glibcxx_want_filesystem
735 
736 #if !defined(__cpp_lib_hypot)
737 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
738 # define __glibcxx_hypot 201603L
739 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_hypot)
740 # define __cpp_lib_hypot 201603L
741 # endif
742 # endif
743 #endif /* !defined(__cpp_lib_hypot) */
744 #undef __glibcxx_want_hypot
745 
746 #if !defined(__cpp_lib_map_try_emplace)
747 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
748 # define __glibcxx_map_try_emplace 201411L
749 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_map_try_emplace)
750 # define __cpp_lib_map_try_emplace 201411L
751 # endif
752 # endif
753 #endif /* !defined(__cpp_lib_map_try_emplace) */
754 #undef __glibcxx_want_map_try_emplace
755 
756 #if !defined(__cpp_lib_math_special_functions)
757 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
758 # define __glibcxx_math_special_functions 201603L
759 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_special_functions)
760 # define __cpp_lib_math_special_functions 201603L
761 # endif
762 # endif
763 #endif /* !defined(__cpp_lib_math_special_functions) */
764 #undef __glibcxx_want_math_special_functions
765 
766 #if !defined(__cpp_lib_memory_resource)
767 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
768 # define __glibcxx_memory_resource 201603L
769 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource)
770 # define __cpp_lib_memory_resource 201603L
771 # endif
772 # elif (__cplusplus >= 201703L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
773 # define __glibcxx_memory_resource 1L
774 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource)
775 # define __cpp_lib_memory_resource 1L
776 # endif
777 # endif
778 #endif /* !defined(__cpp_lib_memory_resource) */
779 #undef __glibcxx_want_memory_resource
780 
781 #if !defined(__cpp_lib_node_extract)
782 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
783 # define __glibcxx_node_extract 201606L
784 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_node_extract)
785 # define __cpp_lib_node_extract 201606L
786 # endif
787 # endif
788 #endif /* !defined(__cpp_lib_node_extract) */
789 #undef __glibcxx_want_node_extract
790 
791 #if !defined(__cpp_lib_parallel_algorithm)
792 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
793 # define __glibcxx_parallel_algorithm 201603L
794 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_parallel_algorithm)
795 # define __cpp_lib_parallel_algorithm 201603L
796 # endif
797 # endif
798 #endif /* !defined(__cpp_lib_parallel_algorithm) */
799 #undef __glibcxx_want_parallel_algorithm
800 
801 #if !defined(__cpp_lib_scoped_lock)
802 # if (__cplusplus >= 201703L)
803 # define __glibcxx_scoped_lock 201703L
804 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_scoped_lock)
805 # define __cpp_lib_scoped_lock 201703L
806 # endif
807 # endif
808 #endif /* !defined(__cpp_lib_scoped_lock) */
809 #undef __glibcxx_want_scoped_lock
810 
811 #if !defined(__cpp_lib_shared_mutex)
812 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
813 # define __glibcxx_shared_mutex 201505L
814 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_mutex)
815 # define __cpp_lib_shared_mutex 201505L
816 # endif
817 # endif
818 #endif /* !defined(__cpp_lib_shared_mutex) */
819 #undef __glibcxx_want_shared_mutex
820 
821 #if !defined(__cpp_lib_shared_ptr_weak_type)
822 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
823 # define __glibcxx_shared_ptr_weak_type 201606L
824 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_weak_type)
825 # define __cpp_lib_shared_ptr_weak_type 201606L
826 # endif
827 # endif
828 #endif /* !defined(__cpp_lib_shared_ptr_weak_type) */
829 #undef __glibcxx_want_shared_ptr_weak_type
830 
831 #if !defined(__cpp_lib_string_view)
832 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
833 # define __glibcxx_string_view 202403L
834 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view)
835 # define __cpp_lib_string_view 202403L
836 # endif
837 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
838 # define __glibcxx_string_view 201803L
839 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view)
840 # define __cpp_lib_string_view 201803L
841 # endif
842 # endif
843 #endif /* !defined(__cpp_lib_string_view) */
844 #undef __glibcxx_want_string_view
845 
846 #if !defined(__cpp_lib_unordered_map_try_emplace)
847 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
848 # define __glibcxx_unordered_map_try_emplace 201411L
849 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unordered_map_try_emplace)
850 # define __cpp_lib_unordered_map_try_emplace 201411L
851 # endif
852 # endif
853 #endif /* !defined(__cpp_lib_unordered_map_try_emplace) */
854 #undef __glibcxx_want_unordered_map_try_emplace
855 
856 #if !defined(__cpp_lib_assume_aligned)
857 # if (__cplusplus >= 202002L)
858 # define __glibcxx_assume_aligned 201811L
859 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_assume_aligned)
860 # define __cpp_lib_assume_aligned 201811L
861 # endif
862 # endif
863 #endif /* !defined(__cpp_lib_assume_aligned) */
864 #undef __glibcxx_want_assume_aligned
865 
866 #if !defined(__cpp_lib_is_sufficiently_aligned)
867 # if (__cplusplus > 202302L)
868 # define __glibcxx_is_sufficiently_aligned 202411L
869 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_sufficiently_aligned)
870 # define __cpp_lib_is_sufficiently_aligned 202411L
871 # endif
872 # endif
873 #endif /* !defined(__cpp_lib_is_sufficiently_aligned) */
874 #undef __glibcxx_want_is_sufficiently_aligned
875 
876 #if !defined(__cpp_lib_atomic_flag_test)
877 # if (__cplusplus >= 202002L)
878 # define __glibcxx_atomic_flag_test 201907L
879 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_flag_test)
880 # define __cpp_lib_atomic_flag_test 201907L
881 # endif
882 # endif
883 #endif /* !defined(__cpp_lib_atomic_flag_test) */
884 #undef __glibcxx_want_atomic_flag_test
885 
886 #if !defined(__cpp_lib_atomic_float)
887 # if (__cplusplus >= 202002L)
888 # define __glibcxx_atomic_float 201711L
889 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_float)
890 # define __cpp_lib_atomic_float 201711L
891 # endif
892 # endif
893 #endif /* !defined(__cpp_lib_atomic_float) */
894 #undef __glibcxx_want_atomic_float
895 
896 #if !defined(__cpp_lib_atomic_min_max)
897 # if (__cplusplus > 202302L)
898 # define __glibcxx_atomic_min_max 202403L
899 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_min_max)
900 # define __cpp_lib_atomic_min_max 202403L
901 # endif
902 # endif
903 #endif /* !defined(__cpp_lib_atomic_min_max) */
904 #undef __glibcxx_want_atomic_min_max
905 
906 #if !defined(__cpp_lib_atomic_lock_free_type_aliases)
907 # if (__cplusplus >= 202002L) && ((__GCC_ATOMIC_INT_LOCK_FREE | __GCC_ATOMIC_LONG_LOCK_FREE | __GCC_ATOMIC_CHAR_LOCK_FREE) & 2)
908 # define __glibcxx_atomic_lock_free_type_aliases 201907L
909 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_lock_free_type_aliases)
910 # define __cpp_lib_atomic_lock_free_type_aliases 201907L
911 # endif
912 # endif
913 #endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) */
914 #undef __glibcxx_want_atomic_lock_free_type_aliases
915 
916 #if !defined(__cpp_lib_atomic_ref)
917 # if (__cplusplus > 202302L)
918 # define __glibcxx_atomic_ref 202603L
919 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref)
920 # define __cpp_lib_atomic_ref 202603L
921 # endif
922 # elif (__cplusplus >= 202002L)
923 # define __glibcxx_atomic_ref 201806L
924 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref)
925 # define __cpp_lib_atomic_ref 201806L
926 # endif
927 # endif
928 #endif /* !defined(__cpp_lib_atomic_ref) */
929 #undef __glibcxx_want_atomic_ref
930 
931 #if !defined(__cpp_lib_atomic_value_initialization)
932 # if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
933 # define __glibcxx_atomic_value_initialization 201911L
934 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_value_initialization)
935 # define __cpp_lib_atomic_value_initialization 201911L
936 # endif
937 # endif
938 #endif /* !defined(__cpp_lib_atomic_value_initialization) */
939 #undef __glibcxx_want_atomic_value_initialization
940 
941 #if !defined(__cpp_lib_bind_front)
942 # if (__cplusplus > 202302L)
943 # define __glibcxx_bind_front 202306L
944 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front)
945 # define __cpp_lib_bind_front 202306L
946 # endif
947 # elif (__cplusplus >= 202002L)
948 # define __glibcxx_bind_front 201907L
949 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front)
950 # define __cpp_lib_bind_front 201907L
951 # endif
952 # endif
953 #endif /* !defined(__cpp_lib_bind_front) */
954 #undef __glibcxx_want_bind_front
955 
956 #if !defined(__cpp_lib_bind_back)
957 # if (__cplusplus > 202302L)
958 # define __glibcxx_bind_back 202306L
959 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back)
960 # define __cpp_lib_bind_back 202306L
961 # endif
962 # elif (__cplusplus >= 202100L) && (__cpp_explicit_this_parameter)
963 # define __glibcxx_bind_back 202202L
964 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back)
965 # define __cpp_lib_bind_back 202202L
966 # endif
967 # endif
968 #endif /* !defined(__cpp_lib_bind_back) */
969 #undef __glibcxx_want_bind_back
970 
971 #if !defined(__cpp_lib_starts_ends_with)
972 # if (__cplusplus >= 202002L)
973 # define __glibcxx_starts_ends_with 201711L
974 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_starts_ends_with)
975 # define __cpp_lib_starts_ends_with 201711L
976 # endif
977 # endif
978 #endif /* !defined(__cpp_lib_starts_ends_with) */
979 #undef __glibcxx_want_starts_ends_with
980 
981 #if !defined(__cpp_lib_bit_cast)
982 # if (__cplusplus >= 202002L) && (__has_builtin(__builtin_bit_cast))
983 # define __glibcxx_bit_cast 201806L
984 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bit_cast)
985 # define __cpp_lib_bit_cast 201806L
986 # endif
987 # endif
988 #endif /* !defined(__cpp_lib_bit_cast) */
989 #undef __glibcxx_want_bit_cast
990 
991 #if !defined(__cpp_lib_bitops)
992 # if (__cplusplus >= 202002L)
993 # define __glibcxx_bitops 201907L
994 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitops)
995 # define __cpp_lib_bitops 201907L
996 # endif
997 # endif
998 #endif /* !defined(__cpp_lib_bitops) */
999 #undef __glibcxx_want_bitops
1000 
1001 #if !defined(__cpp_lib_bounded_array_traits)
1002 # if (__cplusplus >= 202002L)
1003 # define __glibcxx_bounded_array_traits 201902L
1004 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bounded_array_traits)
1005 # define __cpp_lib_bounded_array_traits 201902L
1006 # endif
1007 # endif
1008 #endif /* !defined(__cpp_lib_bounded_array_traits) */
1009 #undef __glibcxx_want_bounded_array_traits
1010 
1011 #if !defined(__cpp_lib_concepts)
1012 # if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
1013 # define __glibcxx_concepts 202207L
1014 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_concepts)
1015 # define __cpp_lib_concepts 202207L
1016 # endif
1017 # endif
1018 #endif /* !defined(__cpp_lib_concepts) */
1019 #undef __glibcxx_want_concepts
1020 
1021 #if !defined(__cpp_lib_optional)
1022 # if (__cplusplus > 202302L) && (__glibcxx_concepts)
1023 # define __glibcxx_optional 202506L
1024 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
1025 # define __cpp_lib_optional 202506L
1026 # endif
1027 # elif (__cplusplus >= 202100L) && (__glibcxx_concepts)
1028 # define __glibcxx_optional 202110L
1029 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
1030 # define __cpp_lib_optional 202110L
1031 # endif
1032 # elif (__cplusplus >= 202002L)
1033 # define __glibcxx_optional 202106L
1034 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
1035 # define __cpp_lib_optional 202106L
1036 # endif
1037 # elif (__cplusplus >= 201703L)
1038 # define __glibcxx_optional 201606L
1039 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
1040 # define __cpp_lib_optional 201606L
1041 # endif
1042 # endif
1043 #endif /* !defined(__cpp_lib_optional) */
1044 #undef __glibcxx_want_optional
1045 
1046 #if !defined(__cpp_lib_optional_range_support)
1047 # if (__cplusplus > 202302L)
1048 # define __glibcxx_optional_range_support 202406L
1049 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional_range_support)
1050 # define __cpp_lib_optional_range_support 202406L
1051 # endif
1052 # endif
1053 #endif /* !defined(__cpp_lib_optional_range_support) */
1054 #undef __glibcxx_want_optional_range_support
1055 
1056 #if !defined(__cpp_lib_destroying_delete)
1057 # if (__cplusplus >= 202002L) && (__cpp_impl_destroying_delete)
1058 # define __glibcxx_destroying_delete 201806L
1059 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_destroying_delete)
1060 # define __cpp_lib_destroying_delete 201806L
1061 # endif
1062 # endif
1063 #endif /* !defined(__cpp_lib_destroying_delete) */
1064 #undef __glibcxx_want_destroying_delete
1065 
1066 #if !defined(__cpp_lib_constexpr_string_view)
1067 # if (__cplusplus >= 202002L)
1068 # define __glibcxx_constexpr_string_view 201811L
1069 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string_view)
1070 # define __cpp_lib_constexpr_string_view 201811L
1071 # endif
1072 # endif
1073 #endif /* !defined(__cpp_lib_constexpr_string_view) */
1074 #undef __glibcxx_want_constexpr_string_view
1075 
1076 #if !defined(__cpp_lib_endian)
1077 # if (__cplusplus >= 202002L)
1078 # define __glibcxx_endian 201907L
1079 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_endian)
1080 # define __cpp_lib_endian 201907L
1081 # endif
1082 # endif
1083 #endif /* !defined(__cpp_lib_endian) */
1084 #undef __glibcxx_want_endian
1085 
1086 #if !defined(__cpp_lib_int_pow2)
1087 # if (__cplusplus >= 202002L)
1088 # define __glibcxx_int_pow2 202002L
1089 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_int_pow2)
1090 # define __cpp_lib_int_pow2 202002L
1091 # endif
1092 # endif
1093 #endif /* !defined(__cpp_lib_int_pow2) */
1094 #undef __glibcxx_want_int_pow2
1095 
1096 #if !defined(__cpp_lib_integer_comparison_functions)
1097 # if (__cplusplus >= 202002L)
1098 # define __glibcxx_integer_comparison_functions 202002L
1099 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_comparison_functions)
1100 # define __cpp_lib_integer_comparison_functions 202002L
1101 # endif
1102 # endif
1103 #endif /* !defined(__cpp_lib_integer_comparison_functions) */
1104 #undef __glibcxx_want_integer_comparison_functions
1105 
1106 #if !defined(__cpp_lib_is_constant_evaluated)
1107 # if (__cplusplus >= 202002L) && (defined(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED))
1108 # define __glibcxx_is_constant_evaluated 201811L
1109 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_constant_evaluated)
1110 # define __cpp_lib_is_constant_evaluated 201811L
1111 # endif
1112 # endif
1113 #endif /* !defined(__cpp_lib_is_constant_evaluated) */
1114 #undef __glibcxx_want_is_constant_evaluated
1115 
1116 #if !defined(__cpp_lib_constexpr_char_traits)
1117 # if (__cplusplus >= 202002L) && (defined(__glibcxx_is_constant_evaluated))
1118 # define __glibcxx_constexpr_char_traits 201811L
1119 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits)
1120 # define __cpp_lib_constexpr_char_traits 201811L
1121 # endif
1122 # elif (__cplusplus >= 201703L) && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)
1123 # define __glibcxx_constexpr_char_traits 201611L
1124 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits)
1125 # define __cpp_lib_constexpr_char_traits 201611L
1126 # endif
1127 # endif
1128 #endif /* !defined(__cpp_lib_constexpr_char_traits) */
1129 #undef __glibcxx_want_constexpr_char_traits
1130 
1131 #if !defined(__cpp_lib_is_layout_compatible)
1132 # if (__cplusplus >= 202002L) && (__has_builtin(__is_layout_compatible) && __has_builtin(__builtin_is_corresponding_member))
1133 # define __glibcxx_is_layout_compatible 201907L
1134 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_layout_compatible)
1135 # define __cpp_lib_is_layout_compatible 201907L
1136 # endif
1137 # endif
1138 #endif /* !defined(__cpp_lib_is_layout_compatible) */
1139 #undef __glibcxx_want_is_layout_compatible
1140 
1141 #if !defined(__cpp_lib_is_nothrow_convertible)
1142 # if (__cplusplus >= 202002L)
1143 # define __glibcxx_is_nothrow_convertible 201806L
1144 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_nothrow_convertible)
1145 # define __cpp_lib_is_nothrow_convertible 201806L
1146 # endif
1147 # endif
1148 #endif /* !defined(__cpp_lib_is_nothrow_convertible) */
1149 #undef __glibcxx_want_is_nothrow_convertible
1150 
1151 #if !defined(__cpp_lib_is_pointer_interconvertible)
1152 # if (__cplusplus >= 202002L) && (__has_builtin(__is_pointer_interconvertible_base_of) && __has_builtin(__builtin_is_pointer_interconvertible_with_class))
1153 # define __glibcxx_is_pointer_interconvertible 201907L
1154 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_pointer_interconvertible)
1155 # define __cpp_lib_is_pointer_interconvertible 201907L
1156 # endif
1157 # endif
1158 #endif /* !defined(__cpp_lib_is_pointer_interconvertible) */
1159 #undef __glibcxx_want_is_pointer_interconvertible
1160 
1161 #if !defined(__cpp_lib_math_constants)
1162 # if (__cplusplus >= 202002L)
1163 # define __glibcxx_math_constants 201907L
1164 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_constants)
1165 # define __cpp_lib_math_constants 201907L
1166 # endif
1167 # endif
1168 #endif /* !defined(__cpp_lib_math_constants) */
1169 #undef __glibcxx_want_math_constants
1170 
1171 #if !defined(__cpp_lib_make_obj_using_allocator)
1172 # if (__cplusplus >= 202002L) && (__cpp_concepts)
1173 # define __glibcxx_make_obj_using_allocator 201811L
1174 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_obj_using_allocator)
1175 # endif
1176 # endif
1177 #endif /* !defined(__cpp_lib_make_obj_using_allocator) */
1178 #undef __glibcxx_want_make_obj_using_allocator
1179 
1180 #if !defined(__cpp_lib_remove_cvref)
1181 # if (__cplusplus >= 202002L)
1182 # define __glibcxx_remove_cvref 201711L
1183 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_remove_cvref)
1184 # define __cpp_lib_remove_cvref 201711L
1185 # endif
1186 # endif
1187 #endif /* !defined(__cpp_lib_remove_cvref) */
1188 #undef __glibcxx_want_remove_cvref
1189 
1190 #if !defined(__cpp_lib_source_location)
1191 # if (__cplusplus >= 202002L) && (__has_builtin(__builtin_source_location))
1192 # define __glibcxx_source_location 201907L
1193 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_source_location)
1194 # define __cpp_lib_source_location 201907L
1195 # endif
1196 # endif
1197 #endif /* !defined(__cpp_lib_source_location) */
1198 #undef __glibcxx_want_source_location
1199 
1200 #if !defined(__cpp_lib_span)
1201 # if (__cplusplus > 202302L) && (__glibcxx_concepts)
1202 # define __glibcxx_span 202311L
1203 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span)
1204 # define __cpp_lib_span 202311L
1205 # endif
1206 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
1207 # define __glibcxx_span 202002L
1208 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span)
1209 # define __cpp_lib_span 202002L
1210 # endif
1211 # endif
1212 #endif /* !defined(__cpp_lib_span) */
1213 #undef __glibcxx_want_span
1214 
1215 #if !defined(__cpp_lib_mdspan)
1216 # if (__cplusplus > 202302L)
1217 # define __glibcxx_mdspan 202406L
1218 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_mdspan)
1219 # define __cpp_lib_mdspan 202406L
1220 # endif
1221 # elif (__cplusplus >= 202100L)
1222 # define __glibcxx_mdspan 202207L
1223 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_mdspan)
1224 # define __cpp_lib_mdspan 202207L
1225 # endif
1226 # endif
1227 #endif /* !defined(__cpp_lib_mdspan) */
1228 #undef __glibcxx_want_mdspan
1229 
1230 #if !defined(__cpp_lib_aligned_accessor)
1231 # if (__cplusplus > 202302L) && (__glibcxx_assume_aligned && __glibcxx_is_sufficiently_aligned)
1232 # define __glibcxx_aligned_accessor 202411L
1233 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_aligned_accessor)
1234 # define __cpp_lib_aligned_accessor 202411L
1235 # endif
1236 # endif
1237 #endif /* !defined(__cpp_lib_aligned_accessor) */
1238 #undef __glibcxx_want_aligned_accessor
1239 
1240 #if !defined(__cpp_lib_padded_layouts)
1241 # if (__cplusplus > 202302L)
1242 # define __glibcxx_padded_layouts 202403L
1243 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_padded_layouts)
1244 # endif
1245 # endif
1246 #endif /* !defined(__cpp_lib_padded_layouts) */
1247 #undef __glibcxx_want_padded_layouts
1248 
1249 #if !defined(__cpp_lib_submdspan)
1250 # if (__cplusplus > 202302L) && (__glibcxx_constant_wrapper >= 202506L)
1251 # define __glibcxx_submdspan 202603L
1252 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_submdspan)
1253 # define __cpp_lib_submdspan 202603L
1254 # endif
1255 # endif
1256 #endif /* !defined(__cpp_lib_submdspan) */
1257 #undef __glibcxx_want_submdspan
1258 
1259 #if !defined(__cpp_lib_ssize)
1260 # if (__cplusplus >= 202002L)
1261 # define __glibcxx_ssize 201902L
1262 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ssize)
1263 # define __cpp_lib_ssize 201902L
1264 # endif
1265 # endif
1266 #endif /* !defined(__cpp_lib_ssize) */
1267 #undef __glibcxx_want_ssize
1268 
1269 #if !defined(__cpp_lib_three_way_comparison)
1270 # if (__cplusplus >= 202002L) && (__cpp_impl_three_way_comparison >= 201907L && __glibcxx_concepts)
1271 # define __glibcxx_three_way_comparison 201907L
1272 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_three_way_comparison)
1273 # define __cpp_lib_three_way_comparison 201907L
1274 # endif
1275 # endif
1276 #endif /* !defined(__cpp_lib_three_way_comparison) */
1277 #undef __glibcxx_want_three_way_comparison
1278 
1279 #if !defined(__cpp_lib_to_address)
1280 # if (__cplusplus >= 202002L)
1281 # define __glibcxx_to_address 201711L
1282 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_address)
1283 # define __cpp_lib_to_address 201711L
1284 # endif
1285 # endif
1286 #endif /* !defined(__cpp_lib_to_address) */
1287 #undef __glibcxx_want_to_address
1288 
1289 #if !defined(__cpp_lib_to_array)
1290 # if (__cplusplus >= 202002L) && (__cpp_generic_lambdas >= 201707L)
1291 # define __glibcxx_to_array 201907L
1292 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_array)
1293 # define __cpp_lib_to_array 201907L
1294 # endif
1295 # endif
1296 #endif /* !defined(__cpp_lib_to_array) */
1297 #undef __glibcxx_want_to_array
1298 
1299 #if !defined(__cpp_lib_type_identity)
1300 # if (__cplusplus >= 202002L)
1301 # define __glibcxx_type_identity 201806L
1302 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_identity)
1303 # define __cpp_lib_type_identity 201806L
1304 # endif
1305 # endif
1306 #endif /* !defined(__cpp_lib_type_identity) */
1307 #undef __glibcxx_want_type_identity
1308 
1309 #if !defined(__cpp_lib_unwrap_ref)
1310 # if (__cplusplus >= 202002L)
1311 # define __glibcxx_unwrap_ref 201811L
1312 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unwrap_ref)
1313 # define __cpp_lib_unwrap_ref 201811L
1314 # endif
1315 # endif
1316 #endif /* !defined(__cpp_lib_unwrap_ref) */
1317 #undef __glibcxx_want_unwrap_ref
1318 
1319 #if !defined(__cpp_lib_constexpr_iterator)
1320 # if (__cplusplus >= 202002L)
1321 # define __glibcxx_constexpr_iterator 201811L
1322 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_iterator)
1323 # define __cpp_lib_constexpr_iterator 201811L
1324 # endif
1325 # endif
1326 #endif /* !defined(__cpp_lib_constexpr_iterator) */
1327 #undef __glibcxx_want_constexpr_iterator
1328 
1329 #if !defined(__cpp_lib_interpolate)
1330 # if (__cplusplus >= 202002L)
1331 # define __glibcxx_interpolate 201902L
1332 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_interpolate)
1333 # define __cpp_lib_interpolate 201902L
1334 # endif
1335 # endif
1336 #endif /* !defined(__cpp_lib_interpolate) */
1337 #undef __glibcxx_want_interpolate
1338 
1339 #if !defined(__cpp_lib_constexpr_utility)
1340 # if (__cplusplus >= 202002L)
1341 # define __glibcxx_constexpr_utility 201811L
1342 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_utility)
1343 # define __cpp_lib_constexpr_utility 201811L
1344 # endif
1345 # endif
1346 #endif /* !defined(__cpp_lib_constexpr_utility) */
1347 #undef __glibcxx_want_constexpr_utility
1348 
1349 #if !defined(__cpp_lib_shift)
1350 # if (__cplusplus >= 202100L)
1351 # define __glibcxx_shift 202202L
1352 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift)
1353 # define __cpp_lib_shift 202202L
1354 # endif
1355 # elif (__cplusplus >= 202002L)
1356 # define __glibcxx_shift 201806L
1357 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift)
1358 # define __cpp_lib_shift 201806L
1359 # endif
1360 # endif
1361 #endif /* !defined(__cpp_lib_shift) */
1362 #undef __glibcxx_want_shift
1363 
1364 #if !defined(__cpp_lib_ranges)
1365 # if (__cplusplus > 202302L) && (__glibcxx_concepts)
1366 # define __glibcxx_ranges 202406L
1367 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
1368 # define __cpp_lib_ranges 202406L
1369 # endif
1370 # elif (__cplusplus >= 202100L) && (__glibcxx_concepts)
1371 # define __glibcxx_ranges 202302L
1372 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
1373 # define __cpp_lib_ranges 202302L
1374 # endif
1375 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
1376 # define __glibcxx_ranges 202110L
1377 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
1378 # define __cpp_lib_ranges 202110L
1379 # endif
1380 # endif
1381 #endif /* !defined(__cpp_lib_ranges) */
1382 #undef __glibcxx_want_ranges
1383 
1384 #if !defined(__cpp_lib_constexpr_numeric)
1385 # if (__cplusplus >= 202002L)
1386 # define __glibcxx_constexpr_numeric 201911L
1387 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_numeric)
1388 # define __cpp_lib_constexpr_numeric 201911L
1389 # endif
1390 # endif
1391 #endif /* !defined(__cpp_lib_constexpr_numeric) */
1392 #undef __glibcxx_want_constexpr_numeric
1393 
1394 #if !defined(__cpp_lib_constexpr_functional)
1395 # if (__cplusplus >= 202002L)
1396 # define __glibcxx_constexpr_functional 201907L
1397 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_functional)
1398 # define __cpp_lib_constexpr_functional 201907L
1399 # endif
1400 # endif
1401 #endif /* !defined(__cpp_lib_constexpr_functional) */
1402 #undef __glibcxx_want_constexpr_functional
1403 
1404 #if !defined(__cpp_lib_constexpr_algorithms)
1405 # if (__cplusplus > 202302L)
1406 # define __glibcxx_constexpr_algorithms 202306L
1407 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms)
1408 # define __cpp_lib_constexpr_algorithms 202306L
1409 # endif
1410 # elif (__cplusplus >= 202002L)
1411 # define __glibcxx_constexpr_algorithms 201806L
1412 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms)
1413 # define __cpp_lib_constexpr_algorithms 201806L
1414 # endif
1415 # endif
1416 #endif /* !defined(__cpp_lib_constexpr_algorithms) */
1417 #undef __glibcxx_want_constexpr_algorithms
1418 
1419 #if !defined(__cpp_lib_constexpr_tuple)
1420 # if (__cplusplus >= 202002L)
1421 # define __glibcxx_constexpr_tuple 201811L
1422 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_tuple)
1423 # define __cpp_lib_constexpr_tuple 201811L
1424 # endif
1425 # endif
1426 #endif /* !defined(__cpp_lib_constexpr_tuple) */
1427 #undef __glibcxx_want_constexpr_tuple
1428 
1429 #if !defined(__cpp_lib_constexpr_memory)
1430 # if (__cplusplus >= 202100L) && (__cpp_constexpr_dynamic_alloc)
1431 # define __glibcxx_constexpr_memory 202202L
1432 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory)
1433 # define __cpp_lib_constexpr_memory 202202L
1434 # endif
1435 # elif (__cplusplus >= 202002L)
1436 # define __glibcxx_constexpr_memory 201811L
1437 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory)
1438 # define __cpp_lib_constexpr_memory 201811L
1439 # endif
1440 # endif
1441 #endif /* !defined(__cpp_lib_constexpr_memory) */
1442 #undef __glibcxx_want_constexpr_memory
1443 
1444 #if !defined(__cpp_lib_atomic_shared_ptr)
1445 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1446 # define __glibcxx_atomic_shared_ptr 201711L
1447 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_shared_ptr)
1448 # define __cpp_lib_atomic_shared_ptr 201711L
1449 # endif
1450 # endif
1451 #endif /* !defined(__cpp_lib_atomic_shared_ptr) */
1452 #undef __glibcxx_want_atomic_shared_ptr
1453 
1454 #if !defined(__cpp_lib_atomic_wait)
1455 # if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
1456 # define __glibcxx_atomic_wait 201907L
1457 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait)
1458 # define __cpp_lib_atomic_wait 201907L
1459 # endif
1460 # elif (__cplusplus >= 202002L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED && (defined(_GLIBCXX_HAVE_LINUX_FUTEX))
1461 # define __glibcxx_atomic_wait 201907L
1462 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait)
1463 # define __cpp_lib_atomic_wait 201907L
1464 # endif
1465 # endif
1466 #endif /* !defined(__cpp_lib_atomic_wait) */
1467 #undef __glibcxx_want_atomic_wait
1468 
1469 #if !defined(__cpp_lib_barrier)
1470 # if (__cplusplus >= 202002L) && (__cpp_aligned_new && __glibcxx_atomic_wait)
1471 # define __glibcxx_barrier 201907L
1472 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_barrier)
1473 # define __cpp_lib_barrier 201907L
1474 # endif
1475 # endif
1476 #endif /* !defined(__cpp_lib_barrier) */
1477 #undef __glibcxx_want_barrier
1478 
1479 #if !defined(__cpp_lib_format)
1480 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
1481 # define __glibcxx_format 202603L
1482 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format)
1483 # define __cpp_lib_format 202603L
1484 # endif
1485 # elif (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1486 # define __glibcxx_format 202304L
1487 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format)
1488 # define __cpp_lib_format 202304L
1489 # endif
1490 # endif
1491 #endif /* !defined(__cpp_lib_format) */
1492 #undef __glibcxx_want_format
1493 
1494 #if !defined(__cpp_lib_format_uchar)
1495 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1496 # define __glibcxx_format_uchar 202311L
1497 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_uchar)
1498 # define __cpp_lib_format_uchar 202311L
1499 # endif
1500 # endif
1501 #endif /* !defined(__cpp_lib_format_uchar) */
1502 #undef __glibcxx_want_format_uchar
1503 
1504 #if !defined(__cpp_lib_constexpr_complex)
1505 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1506 # define __glibcxx_constexpr_complex 201711L
1507 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_complex)
1508 # define __cpp_lib_constexpr_complex 201711L
1509 # endif
1510 # endif
1511 #endif /* !defined(__cpp_lib_constexpr_complex) */
1512 #undef __glibcxx_want_constexpr_complex
1513 
1514 #if !defined(__cpp_lib_constexpr_dynamic_alloc)
1515 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1516 # define __glibcxx_constexpr_dynamic_alloc 201907L
1517 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_dynamic_alloc)
1518 # define __cpp_lib_constexpr_dynamic_alloc 201907L
1519 # endif
1520 # endif
1521 #endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) */
1522 #undef __glibcxx_want_constexpr_dynamic_alloc
1523 
1524 #if !defined(__cpp_lib_constexpr_flat_map)
1525 # if (__cplusplus > 202302L)
1526 # define __glibcxx_constexpr_flat_map 202502L
1527 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_flat_map)
1528 # define __cpp_lib_constexpr_flat_map 202502L
1529 # endif
1530 # endif
1531 #endif /* !defined(__cpp_lib_constexpr_flat_map) */
1532 #undef __glibcxx_want_constexpr_flat_map
1533 
1534 #if !defined(__cpp_lib_constexpr_flat_set)
1535 # if (__cplusplus > 202302L)
1536 # define __glibcxx_constexpr_flat_set 202502L
1537 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_flat_set)
1538 # define __cpp_lib_constexpr_flat_set 202502L
1539 # endif
1540 # endif
1541 #endif /* !defined(__cpp_lib_constexpr_flat_set) */
1542 #undef __glibcxx_want_constexpr_flat_set
1543 
1544 #if !defined(__cpp_lib_constexpr_string)
1545 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
1546 # define __glibcxx_constexpr_string 201907L
1547 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
1548 # define __cpp_lib_constexpr_string 201907L
1549 # endif
1550 # elif (__cplusplus >= 202002L) && !_GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
1551 # define __glibcxx_constexpr_string 201811L
1552 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
1553 # define __cpp_lib_constexpr_string 201811L
1554 # endif
1555 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)
1556 # define __glibcxx_constexpr_string 201611L
1557 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
1558 # define __cpp_lib_constexpr_string 201611L
1559 # endif
1560 # endif
1561 #endif /* !defined(__cpp_lib_constexpr_string) */
1562 #undef __glibcxx_want_constexpr_string
1563 
1564 #if !defined(__cpp_lib_constexpr_vector)
1565 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1566 # define __glibcxx_constexpr_vector 201907L
1567 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_vector)
1568 # define __cpp_lib_constexpr_vector 201907L
1569 # endif
1570 # endif
1571 #endif /* !defined(__cpp_lib_constexpr_vector) */
1572 #undef __glibcxx_want_constexpr_vector
1573 
1574 #if !defined(__cpp_lib_constrained_equality)
1575 # if (__cplusplus >= 202100L) && (__glibcxx_three_way_comparison)
1576 # define __glibcxx_constrained_equality 202411L
1577 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constrained_equality)
1578 # define __cpp_lib_constrained_equality 202411L
1579 # endif
1580 # elif (__cplusplus >= 202002L) && (__glibcxx_three_way_comparison)
1581 # define __glibcxx_constrained_equality 202403L
1582 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constrained_equality)
1583 # define __cpp_lib_constrained_equality 202403L
1584 # endif
1585 # endif
1586 #endif /* !defined(__cpp_lib_constrained_equality) */
1587 #undef __glibcxx_want_constrained_equality
1588 
1589 #if !defined(__cpp_lib_erase_if)
1590 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1591 # define __glibcxx_erase_if 202002L
1592 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_erase_if)
1593 # define __cpp_lib_erase_if 202002L
1594 # endif
1595 # endif
1596 #endif /* !defined(__cpp_lib_erase_if) */
1597 #undef __glibcxx_want_erase_if
1598 
1599 #if !defined(__cpp_lib_generic_unordered_lookup)
1600 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1601 # define __glibcxx_generic_unordered_lookup 201811L
1602 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_unordered_lookup)
1603 # define __cpp_lib_generic_unordered_lookup 201811L
1604 # endif
1605 # endif
1606 #endif /* !defined(__cpp_lib_generic_unordered_lookup) */
1607 #undef __glibcxx_want_generic_unordered_lookup
1608 
1609 #if !defined(__cpp_lib_jthread)
1610 # if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
1611 # define __glibcxx_jthread 201911L
1612 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_jthread)
1613 # define __cpp_lib_jthread 201911L
1614 # endif
1615 # endif
1616 #endif /* !defined(__cpp_lib_jthread) */
1617 #undef __glibcxx_want_jthread
1618 
1619 #if !defined(__cpp_lib_latch)
1620 # if (__cplusplus >= 202002L) && (__glibcxx_atomic_wait)
1621 # define __glibcxx_latch 201907L
1622 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_latch)
1623 # define __cpp_lib_latch 201907L
1624 # endif
1625 # endif
1626 #endif /* !defined(__cpp_lib_latch) */
1627 #undef __glibcxx_want_latch
1628 
1629 #if !defined(__cpp_lib_list_remove_return_type)
1630 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1631 # define __glibcxx_list_remove_return_type 201806L
1632 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_list_remove_return_type)
1633 # define __cpp_lib_list_remove_return_type 201806L
1634 # endif
1635 # endif
1636 #endif /* !defined(__cpp_lib_list_remove_return_type) */
1637 #undef __glibcxx_want_list_remove_return_type
1638 
1639 #if !defined(__cpp_lib_polymorphic_allocator)
1640 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1641 # define __glibcxx_polymorphic_allocator 201902L
1642 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic_allocator)
1643 # define __cpp_lib_polymorphic_allocator 201902L
1644 # endif
1645 # endif
1646 #endif /* !defined(__cpp_lib_polymorphic_allocator) */
1647 #undef __glibcxx_want_polymorphic_allocator
1648 
1649 #if !defined(__cpp_lib_move_iterator_concept)
1650 # if (__cplusplus >= 202002L) && (__glibcxx_concepts)
1651 # define __glibcxx_move_iterator_concept 202207L
1652 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_iterator_concept)
1653 # define __cpp_lib_move_iterator_concept 202207L
1654 # endif
1655 # endif
1656 #endif /* !defined(__cpp_lib_move_iterator_concept) */
1657 #undef __glibcxx_want_move_iterator_concept
1658 
1659 #if !defined(__cpp_lib_semaphore)
1660 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED && (__glibcxx_atomic_wait)
1661 # define __glibcxx_semaphore 201907L
1662 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_semaphore)
1663 # define __cpp_lib_semaphore 201907L
1664 # endif
1665 # endif
1666 #endif /* !defined(__cpp_lib_semaphore) */
1667 #undef __glibcxx_want_semaphore
1668 
1669 #if !defined(__cpp_lib_smart_ptr_for_overwrite)
1670 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1671 # define __glibcxx_smart_ptr_for_overwrite 202002L
1672 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_smart_ptr_for_overwrite)
1673 # define __cpp_lib_smart_ptr_for_overwrite 202002L
1674 # endif
1675 # endif
1676 #endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) */
1677 #undef __glibcxx_want_smart_ptr_for_overwrite
1678 
1679 #if !defined(__cpp_lib_syncbuf)
1680 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
1681 # define __glibcxx_syncbuf 201803L
1682 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_syncbuf)
1683 # define __cpp_lib_syncbuf 201803L
1684 # endif
1685 # endif
1686 #endif /* !defined(__cpp_lib_syncbuf) */
1687 #undef __glibcxx_want_syncbuf
1688 
1689 #if !defined(__cpp_lib_byteswap)
1690 # if (__cplusplus >= 202100L)
1691 # define __glibcxx_byteswap 202110L
1692 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_byteswap)
1693 # define __cpp_lib_byteswap 202110L
1694 # endif
1695 # endif
1696 #endif /* !defined(__cpp_lib_byteswap) */
1697 #undef __glibcxx_want_byteswap
1698 
1699 #if !defined(__cpp_lib_constexpr_charconv)
1700 # if (__cplusplus >= 202100L)
1701 # define __glibcxx_constexpr_charconv 202207L
1702 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_charconv)
1703 # define __cpp_lib_constexpr_charconv 202207L
1704 # endif
1705 # endif
1706 #endif /* !defined(__cpp_lib_constexpr_charconv) */
1707 #undef __glibcxx_want_constexpr_charconv
1708 
1709 #if !defined(__cpp_lib_constexpr_typeinfo)
1710 # if (__cplusplus >= 202100L)
1711 # define __glibcxx_constexpr_typeinfo 202106L
1712 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_typeinfo)
1713 # define __cpp_lib_constexpr_typeinfo 202106L
1714 # endif
1715 # endif
1716 #endif /* !defined(__cpp_lib_constexpr_typeinfo) */
1717 #undef __glibcxx_want_constexpr_typeinfo
1718 
1719 #if !defined(__cpp_lib_expected)
1720 # if (__cplusplus >= 202100L) && (__cpp_concepts >= 202002L)
1721 # define __glibcxx_expected 202211L
1722 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_expected)
1723 # define __cpp_lib_expected 202211L
1724 # endif
1725 # endif
1726 #endif /* !defined(__cpp_lib_expected) */
1727 #undef __glibcxx_want_expected
1728 
1729 #if !defined(__cpp_lib_format_ranges)
1730 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1731 # define __glibcxx_format_ranges 202207L
1732 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_ranges)
1733 # define __cpp_lib_format_ranges 202207L
1734 # endif
1735 # endif
1736 #endif /* !defined(__cpp_lib_format_ranges) */
1737 #undef __glibcxx_want_format_ranges
1738 
1739 #if !defined(__cpp_lib_format_path)
1740 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
1741 # define __glibcxx_format_path 202403L
1742 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_path)
1743 # define __cpp_lib_format_path 202403L
1744 # endif
1745 # endif
1746 #endif /* !defined(__cpp_lib_format_path) */
1747 #undef __glibcxx_want_format_path
1748 
1749 #if !defined(__cpp_lib_freestanding_algorithm)
1750 # if (__cplusplus >= 202100L)
1751 # define __glibcxx_freestanding_algorithm 202311L
1752 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_algorithm)
1753 # define __cpp_lib_freestanding_algorithm 202311L
1754 # endif
1755 # endif
1756 #endif /* !defined(__cpp_lib_freestanding_algorithm) */
1757 #undef __glibcxx_want_freestanding_algorithm
1758 
1759 #if !defined(__cpp_lib_freestanding_array)
1760 # if (__cplusplus >= 202100L)
1761 # define __glibcxx_freestanding_array 202311L
1762 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_array)
1763 # define __cpp_lib_freestanding_array 202311L
1764 # endif
1765 # endif
1766 #endif /* !defined(__cpp_lib_freestanding_array) */
1767 #undef __glibcxx_want_freestanding_array
1768 
1769 #if !defined(__cpp_lib_freestanding_cstring)
1770 # if (__cplusplus >= 202100L)
1771 # define __glibcxx_freestanding_cstring 202311L
1772 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_cstring)
1773 # define __cpp_lib_freestanding_cstring 202311L
1774 # endif
1775 # endif
1776 #endif /* !defined(__cpp_lib_freestanding_cstring) */
1777 #undef __glibcxx_want_freestanding_cstring
1778 
1779 #if !defined(__cpp_lib_freestanding_expected)
1780 # if (__cplusplus >= 202100L) && (__cpp_lib_expected)
1781 # define __glibcxx_freestanding_expected 202311L
1782 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_expected)
1783 # define __cpp_lib_freestanding_expected 202311L
1784 # endif
1785 # endif
1786 #endif /* !defined(__cpp_lib_freestanding_expected) */
1787 #undef __glibcxx_want_freestanding_expected
1788 
1789 #if !defined(__cpp_lib_freestanding_optional)
1790 # if (__cplusplus >= 202100L)
1791 # define __glibcxx_freestanding_optional 202311L
1792 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_optional)
1793 # define __cpp_lib_freestanding_optional 202311L
1794 # endif
1795 # endif
1796 #endif /* !defined(__cpp_lib_freestanding_optional) */
1797 #undef __glibcxx_want_freestanding_optional
1798 
1799 #if !defined(__cpp_lib_freestanding_string_view)
1800 # if (__cplusplus >= 202100L)
1801 # define __glibcxx_freestanding_string_view 202311L
1802 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_string_view)
1803 # define __cpp_lib_freestanding_string_view 202311L
1804 # endif
1805 # endif
1806 #endif /* !defined(__cpp_lib_freestanding_string_view) */
1807 #undef __glibcxx_want_freestanding_string_view
1808 
1809 #if !defined(__cpp_lib_freestanding_variant)
1810 # if (__cplusplus >= 202100L)
1811 # define __glibcxx_freestanding_variant 202311L
1812 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_variant)
1813 # define __cpp_lib_freestanding_variant 202311L
1814 # endif
1815 # endif
1816 #endif /* !defined(__cpp_lib_freestanding_variant) */
1817 #undef __glibcxx_want_freestanding_variant
1818 
1819 #if !defined(__cpp_lib_invoke_r)
1820 # if (__cplusplus >= 202100L)
1821 # define __glibcxx_invoke_r 202106L
1822 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke_r)
1823 # define __cpp_lib_invoke_r 202106L
1824 # endif
1825 # endif
1826 #endif /* !defined(__cpp_lib_invoke_r) */
1827 #undef __glibcxx_want_invoke_r
1828 
1829 #if !defined(__cpp_lib_associative_heterogeneous_erasure)
1830 # if (__cplusplus >= 202100L)
1831 # define __glibcxx_associative_heterogeneous_erasure 202110L
1832 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_associative_heterogeneous_erasure)
1833 # define __cpp_lib_associative_heterogeneous_erasure 202110L
1834 # endif
1835 # endif
1836 #endif /* !defined(__cpp_lib_associative_heterogeneous_erasure) */
1837 #undef __glibcxx_want_associative_heterogeneous_erasure
1838 
1839 #if !defined(__cpp_lib_associative_heterogeneous_insertion)
1840 # if (__cplusplus > 202302L)
1841 # define __glibcxx_associative_heterogeneous_insertion 202306L
1842 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_associative_heterogeneous_insertion)
1843 # define __cpp_lib_associative_heterogeneous_insertion 202306L
1844 # endif
1845 # endif
1846 #endif /* !defined(__cpp_lib_associative_heterogeneous_insertion) */
1847 #undef __glibcxx_want_associative_heterogeneous_insertion
1848 
1849 #if !defined(__cpp_lib_is_scoped_enum)
1850 # if (__cplusplus >= 202100L)
1851 # define __glibcxx_is_scoped_enum 202011L
1852 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_scoped_enum)
1853 # define __cpp_lib_is_scoped_enum 202011L
1854 # endif
1855 # endif
1856 #endif /* !defined(__cpp_lib_is_scoped_enum) */
1857 #undef __glibcxx_want_is_scoped_enum
1858 
1859 #if !defined(__cpp_lib_reference_from_temporary)
1860 # if (__cplusplus >= 202100L) && (__has_builtin(__reference_constructs_from_temporary) && __has_builtin(__reference_converts_from_temporary))
1861 # define __glibcxx_reference_from_temporary 202202L
1862 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_from_temporary)
1863 # define __cpp_lib_reference_from_temporary 202202L
1864 # endif
1865 # endif
1866 #endif /* !defined(__cpp_lib_reference_from_temporary) */
1867 #undef __glibcxx_want_reference_from_temporary
1868 
1869 #if !defined(__cpp_lib_containers_ranges)
1870 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1871 # define __glibcxx_containers_ranges 202202L
1872 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_containers_ranges)
1873 # define __cpp_lib_containers_ranges 202202L
1874 # endif
1875 # endif
1876 #endif /* !defined(__cpp_lib_containers_ranges) */
1877 #undef __glibcxx_want_containers_ranges
1878 
1879 #if !defined(__cpp_lib_ranges_to_container)
1880 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1881 # define __glibcxx_ranges_to_container 202202L
1882 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_container)
1883 # define __cpp_lib_ranges_to_container 202202L
1884 # endif
1885 # endif
1886 #endif /* !defined(__cpp_lib_ranges_to_container) */
1887 #undef __glibcxx_want_ranges_to_container
1888 
1889 #if !defined(__cpp_lib_ranges_zip)
1890 # if (__cplusplus >= 202100L)
1891 # define __glibcxx_ranges_zip 202110L
1892 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_zip)
1893 # define __cpp_lib_ranges_zip 202110L
1894 # endif
1895 # endif
1896 #endif /* !defined(__cpp_lib_ranges_zip) */
1897 #undef __glibcxx_want_ranges_zip
1898 
1899 #if !defined(__cpp_lib_ranges_chunk)
1900 # if (__cplusplus >= 202100L)
1901 # define __glibcxx_ranges_chunk 202202L
1902 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk)
1903 # define __cpp_lib_ranges_chunk 202202L
1904 # endif
1905 # endif
1906 #endif /* !defined(__cpp_lib_ranges_chunk) */
1907 #undef __glibcxx_want_ranges_chunk
1908 
1909 #if !defined(__cpp_lib_ranges_slide)
1910 # if (__cplusplus >= 202100L)
1911 # define __glibcxx_ranges_slide 202202L
1912 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_slide)
1913 # define __cpp_lib_ranges_slide 202202L
1914 # endif
1915 # endif
1916 #endif /* !defined(__cpp_lib_ranges_slide) */
1917 #undef __glibcxx_want_ranges_slide
1918 
1919 #if !defined(__cpp_lib_ranges_chunk_by)
1920 # if (__cplusplus >= 202100L)
1921 # define __glibcxx_ranges_chunk_by 202202L
1922 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk_by)
1923 # define __cpp_lib_ranges_chunk_by 202202L
1924 # endif
1925 # endif
1926 #endif /* !defined(__cpp_lib_ranges_chunk_by) */
1927 #undef __glibcxx_want_ranges_chunk_by
1928 
1929 #if !defined(__cpp_lib_ranges_join_with)
1930 # if (__cplusplus >= 202100L)
1931 # define __glibcxx_ranges_join_with 202202L
1932 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_join_with)
1933 # define __cpp_lib_ranges_join_with 202202L
1934 # endif
1935 # endif
1936 #endif /* !defined(__cpp_lib_ranges_join_with) */
1937 #undef __glibcxx_want_ranges_join_with
1938 
1939 #if !defined(__cpp_lib_ranges_repeat)
1940 # if (__cplusplus >= 202100L)
1941 # define __glibcxx_ranges_repeat 202207L
1942 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_repeat)
1943 # define __cpp_lib_ranges_repeat 202207L
1944 # endif
1945 # endif
1946 #endif /* !defined(__cpp_lib_ranges_repeat) */
1947 #undef __glibcxx_want_ranges_repeat
1948 
1949 #if !defined(__cpp_lib_ranges_stride)
1950 # if (__cplusplus >= 202100L)
1951 # define __glibcxx_ranges_stride 202207L
1952 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_stride)
1953 # define __cpp_lib_ranges_stride 202207L
1954 # endif
1955 # endif
1956 #endif /* !defined(__cpp_lib_ranges_stride) */
1957 #undef __glibcxx_want_ranges_stride
1958 
1959 #if !defined(__cpp_lib_ranges_cartesian_product)
1960 # if (__cplusplus >= 202100L)
1961 # define __glibcxx_ranges_cartesian_product 202207L
1962 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cartesian_product)
1963 # define __cpp_lib_ranges_cartesian_product 202207L
1964 # endif
1965 # endif
1966 #endif /* !defined(__cpp_lib_ranges_cartesian_product) */
1967 #undef __glibcxx_want_ranges_cartesian_product
1968 
1969 #if !defined(__cpp_lib_ranges_as_rvalue)
1970 # if (__cplusplus >= 202100L)
1971 # define __glibcxx_ranges_as_rvalue 202207L
1972 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_rvalue)
1973 # define __cpp_lib_ranges_as_rvalue 202207L
1974 # endif
1975 # endif
1976 #endif /* !defined(__cpp_lib_ranges_as_rvalue) */
1977 #undef __glibcxx_want_ranges_as_rvalue
1978 
1979 #if !defined(__cpp_lib_ranges_as_const)
1980 # if (__cplusplus >= 202100L)
1981 # define __glibcxx_ranges_as_const 202311L
1982 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_const)
1983 # define __cpp_lib_ranges_as_const 202311L
1984 # endif
1985 # endif
1986 #endif /* !defined(__cpp_lib_ranges_as_const) */
1987 #undef __glibcxx_want_ranges_as_const
1988 
1989 #if !defined(__cpp_lib_ranges_enumerate)
1990 # if (__cplusplus >= 202100L)
1991 # define __glibcxx_ranges_enumerate 202302L
1992 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_enumerate)
1993 # define __cpp_lib_ranges_enumerate 202302L
1994 # endif
1995 # endif
1996 #endif /* !defined(__cpp_lib_ranges_enumerate) */
1997 #undef __glibcxx_want_ranges_enumerate
1998 
1999 #if !defined(__cpp_lib_ranges_fold)
2000 # if (__cplusplus >= 202100L)
2001 # define __glibcxx_ranges_fold 202207L
2002 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_fold)
2003 # define __cpp_lib_ranges_fold 202207L
2004 # endif
2005 # endif
2006 #endif /* !defined(__cpp_lib_ranges_fold) */
2007 #undef __glibcxx_want_ranges_fold
2008 
2009 #if !defined(__cpp_lib_ranges_contains)
2010 # if (__cplusplus >= 202100L)
2011 # define __glibcxx_ranges_contains 202207L
2012 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_contains)
2013 # define __cpp_lib_ranges_contains 202207L
2014 # endif
2015 # endif
2016 #endif /* !defined(__cpp_lib_ranges_contains) */
2017 #undef __glibcxx_want_ranges_contains
2018 
2019 #if !defined(__cpp_lib_ranges_iota)
2020 # if (__cplusplus >= 202100L)
2021 # define __glibcxx_ranges_iota 202202L
2022 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_iota)
2023 # define __cpp_lib_ranges_iota 202202L
2024 # endif
2025 # endif
2026 #endif /* !defined(__cpp_lib_ranges_iota) */
2027 #undef __glibcxx_want_ranges_iota
2028 
2029 #if !defined(__cpp_lib_ranges_find_last)
2030 # if (__cplusplus >= 202100L)
2031 # define __glibcxx_ranges_find_last 202207L
2032 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_find_last)
2033 # define __cpp_lib_ranges_find_last 202207L
2034 # endif
2035 # endif
2036 #endif /* !defined(__cpp_lib_ranges_find_last) */
2037 #undef __glibcxx_want_ranges_find_last
2038 
2039 #if !defined(__cpp_lib_ranges_starts_ends_with)
2040 # if (__cplusplus >= 202100L)
2041 # define __glibcxx_ranges_starts_ends_with 202106L
2042 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_starts_ends_with)
2043 # define __cpp_lib_ranges_starts_ends_with 202106L
2044 # endif
2045 # endif
2046 #endif /* !defined(__cpp_lib_ranges_starts_ends_with) */
2047 #undef __glibcxx_want_ranges_starts_ends_with
2048 
2049 #if !defined(__cpp_lib_ranges_indices)
2050 # if (__cplusplus > 202302L)
2051 # define __glibcxx_ranges_indices 202506L
2052 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_indices)
2053 # define __cpp_lib_ranges_indices 202506L
2054 # endif
2055 # endif
2056 #endif /* !defined(__cpp_lib_ranges_indices) */
2057 #undef __glibcxx_want_ranges_indices
2058 
2059 #if !defined(__cpp_lib_constexpr_bitset)
2060 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc)
2061 # define __glibcxx_constexpr_bitset 202202L
2062 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_bitset)
2063 # define __cpp_lib_constexpr_bitset 202202L
2064 # endif
2065 # endif
2066 #endif /* !defined(__cpp_lib_constexpr_bitset) */
2067 #undef __glibcxx_want_constexpr_bitset
2068 
2069 #if !defined(__cpp_lib_stdatomic_h)
2070 # if (__cplusplus >= 202100L)
2071 # define __glibcxx_stdatomic_h 202011L
2072 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdatomic_h)
2073 # define __cpp_lib_stdatomic_h 202011L
2074 # endif
2075 # endif
2076 #endif /* !defined(__cpp_lib_stdatomic_h) */
2077 #undef __glibcxx_want_stdatomic_h
2078 
2079 #if !defined(__cpp_lib_stdbit_h)
2080 # if (__cplusplus > 202302L)
2081 # define __glibcxx_stdbit_h 202603L
2082 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdbit_h)
2083 # define __cpp_lib_stdbit_h 202603L
2084 # endif
2085 # endif
2086 #endif /* !defined(__cpp_lib_stdbit_h) */
2087 #undef __glibcxx_want_stdbit_h
2088 
2089 #if !defined(__cpp_lib_stdckdint_h)
2090 # if (__cplusplus > 202302L)
2091 # define __glibcxx_stdckdint_h 202603L
2092 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdckdint_h)
2093 # define __cpp_lib_stdckdint_h 202603L
2094 # endif
2095 # endif
2096 #endif /* !defined(__cpp_lib_stdckdint_h) */
2097 #undef __glibcxx_want_stdckdint_h
2098 
2099 #if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
2100 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
2101 # define __glibcxx_adaptor_iterator_pair_constructor 202106L
2102 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_adaptor_iterator_pair_constructor)
2103 # define __cpp_lib_adaptor_iterator_pair_constructor 202106L
2104 # endif
2105 # endif
2106 #endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) */
2107 #undef __glibcxx_want_adaptor_iterator_pair_constructor
2108 
2109 #if !defined(__cpp_lib_flat_map)
2110 # if (__cplusplus >= 202100L)
2111 # define __glibcxx_flat_map 202511L
2112 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_map)
2113 # define __cpp_lib_flat_map 202511L
2114 # endif
2115 # endif
2116 #endif /* !defined(__cpp_lib_flat_map) */
2117 #undef __glibcxx_want_flat_map
2118 
2119 #if !defined(__cpp_lib_flat_set)
2120 # if (__cplusplus >= 202100L)
2121 # define __glibcxx_flat_set 202511L
2122 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_set)
2123 # define __cpp_lib_flat_set 202511L
2124 # endif
2125 # endif
2126 #endif /* !defined(__cpp_lib_flat_set) */
2127 #undef __glibcxx_want_flat_set
2128 
2129 #if !defined(__cpp_lib_common_reference)
2130 # if (__cplusplus >= 202002L)
2131 # define __glibcxx_common_reference 202302L
2132 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_common_reference)
2133 # define __cpp_lib_common_reference 202302L
2134 # endif
2135 # endif
2136 #endif /* !defined(__cpp_lib_common_reference) */
2137 #undef __glibcxx_want_common_reference
2138 
2139 #if !defined(__cpp_lib_common_reference_wrapper)
2140 # if (__cplusplus >= 202002L)
2141 # define __glibcxx_common_reference_wrapper 202302L
2142 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_common_reference_wrapper)
2143 # define __cpp_lib_common_reference_wrapper 202302L
2144 # endif
2145 # endif
2146 #endif /* !defined(__cpp_lib_common_reference_wrapper) */
2147 #undef __glibcxx_want_common_reference_wrapper
2148 
2149 #if !defined(__cpp_lib_formatters)
2150 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
2151 # define __glibcxx_formatters 202302L
2152 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_formatters)
2153 # define __cpp_lib_formatters 202302L
2154 # endif
2155 # endif
2156 #endif /* !defined(__cpp_lib_formatters) */
2157 #undef __glibcxx_want_formatters
2158 
2159 #if !defined(__cpp_lib_forward_like)
2160 # if (__cplusplus >= 202100L)
2161 # define __glibcxx_forward_like 202207L
2162 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_forward_like)
2163 # define __cpp_lib_forward_like 202207L
2164 # endif
2165 # endif
2166 #endif /* !defined(__cpp_lib_forward_like) */
2167 #undef __glibcxx_want_forward_like
2168 
2169 #if !defined(__cpp_lib_generator)
2170 # if (__cplusplus >= 202100L) && (__glibcxx_coroutine && __cpp_sized_deallocation)
2171 # define __glibcxx_generator 202207L
2172 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generator)
2173 # define __cpp_lib_generator 202207L
2174 # endif
2175 # endif
2176 #endif /* !defined(__cpp_lib_generator) */
2177 #undef __glibcxx_want_generator
2178 
2179 #if !defined(__cpp_lib_ios_noreplace)
2180 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
2181 # define __glibcxx_ios_noreplace 202207L
2182 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ios_noreplace)
2183 # define __cpp_lib_ios_noreplace 202207L
2184 # endif
2185 # endif
2186 #endif /* !defined(__cpp_lib_ios_noreplace) */
2187 #undef __glibcxx_want_ios_noreplace
2188 
2189 #if !defined(__cpp_lib_move_only_function)
2190 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
2191 # define __glibcxx_move_only_function 202110L
2192 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_only_function)
2193 # define __cpp_lib_move_only_function 202110L
2194 # endif
2195 # endif
2196 #endif /* !defined(__cpp_lib_move_only_function) */
2197 #undef __glibcxx_want_move_only_function
2198 
2199 #if !defined(__cpp_lib_copyable_function)
2200 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
2201 # define __glibcxx_copyable_function 202306L
2202 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_copyable_function)
2203 # define __cpp_lib_copyable_function 202306L
2204 # endif
2205 # endif
2206 #endif /* !defined(__cpp_lib_copyable_function) */
2207 #undef __glibcxx_want_copyable_function
2208 
2209 #if !defined(__cpp_lib_function_ref)
2210 # if (__cplusplus > 202302L)
2211 # define __glibcxx_function_ref 202603L
2212 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_function_ref)
2213 # define __cpp_lib_function_ref 202603L
2214 # endif
2215 # endif
2216 #endif /* !defined(__cpp_lib_function_ref) */
2217 #undef __glibcxx_want_function_ref
2218 
2219 #if !defined(__cpp_lib_out_ptr)
2220 # if (__cplusplus >= 202100L)
2221 # define __glibcxx_out_ptr 202311L
2222 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_out_ptr)
2223 # define __cpp_lib_out_ptr 202311L
2224 # endif
2225 # endif
2226 #endif /* !defined(__cpp_lib_out_ptr) */
2227 #undef __glibcxx_want_out_ptr
2228 
2229 #if !defined(__cpp_lib_print)
2230 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
2231 # define __glibcxx_print 202406L
2232 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_print)
2233 # define __cpp_lib_print 202406L
2234 # endif
2235 # endif
2236 #endif /* !defined(__cpp_lib_print) */
2237 #undef __glibcxx_want_print
2238 
2239 #if !defined(__cpp_lib_spanstream)
2240 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__glibcxx_span)
2241 # define __glibcxx_spanstream 202106L
2242 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_spanstream)
2243 # define __cpp_lib_spanstream 202106L
2244 # endif
2245 # endif
2246 #endif /* !defined(__cpp_lib_spanstream) */
2247 #undef __glibcxx_want_spanstream
2248 
2249 #if !defined(__cpp_lib_stacktrace)
2250 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE)
2251 # define __glibcxx_stacktrace 202011L
2252 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stacktrace)
2253 # define __cpp_lib_stacktrace 202011L
2254 # endif
2255 # endif
2256 #endif /* !defined(__cpp_lib_stacktrace) */
2257 #undef __glibcxx_want_stacktrace
2258 
2259 #if !defined(__cpp_lib_start_lifetime_as)
2260 # if (__cplusplus >= 202100L)
2261 # define __glibcxx_start_lifetime_as 202207L
2262 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_start_lifetime_as)
2263 # define __cpp_lib_start_lifetime_as 202207L
2264 # endif
2265 # endif
2266 #endif /* !defined(__cpp_lib_start_lifetime_as) */
2267 #undef __glibcxx_want_start_lifetime_as
2268 
2269 #if !defined(__cpp_lib_string_contains)
2270 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
2271 # define __glibcxx_string_contains 202011L
2272 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_contains)
2273 # define __cpp_lib_string_contains 202011L
2274 # endif
2275 # endif
2276 #endif /* !defined(__cpp_lib_string_contains) */
2277 #undef __glibcxx_want_string_contains
2278 
2279 #if !defined(__cpp_lib_string_resize_and_overwrite)
2280 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
2281 # define __glibcxx_string_resize_and_overwrite 202110L
2282 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_resize_and_overwrite)
2283 # define __cpp_lib_string_resize_and_overwrite 202110L
2284 # endif
2285 # endif
2286 #endif /* !defined(__cpp_lib_string_resize_and_overwrite) */
2287 #undef __glibcxx_want_string_resize_and_overwrite
2288 
2289 #if !defined(__cpp_lib_string_subview)
2290 # if (__cplusplus > 202302L)
2291 # define __glibcxx_string_subview 202506L
2292 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_subview)
2293 # define __cpp_lib_string_subview 202506L
2294 # endif
2295 # endif
2296 #endif /* !defined(__cpp_lib_string_subview) */
2297 #undef __glibcxx_want_string_subview
2298 
2299 #if !defined(__cpp_lib_to_underlying)
2300 # if (__cplusplus >= 202100L)
2301 # define __glibcxx_to_underlying 202102L
2302 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_underlying)
2303 # define __cpp_lib_to_underlying 202102L
2304 # endif
2305 # endif
2306 #endif /* !defined(__cpp_lib_to_underlying) */
2307 #undef __glibcxx_want_to_underlying
2308 
2309 #if !defined(__cpp_lib_tuple_like)
2310 # if (__cplusplus > 202302L) && (__cpp_explicit_this_parameter >= 202110L)
2311 # define __glibcxx_tuple_like 202311L
2312 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like)
2313 # define __cpp_lib_tuple_like 202311L
2314 # endif
2315 # elif (__cplusplus >= 202100L)
2316 # define __glibcxx_tuple_like 202207L
2317 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like)
2318 # define __cpp_lib_tuple_like 202207L
2319 # endif
2320 # endif
2321 #endif /* !defined(__cpp_lib_tuple_like) */
2322 #undef __glibcxx_want_tuple_like
2323 
2324 #if !defined(__cpp_lib_unreachable)
2325 # if (__cplusplus >= 202100L)
2326 # define __glibcxx_unreachable 202202L
2327 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unreachable)
2328 # define __cpp_lib_unreachable 202202L
2329 # endif
2330 # endif
2331 #endif /* !defined(__cpp_lib_unreachable) */
2332 #undef __glibcxx_want_unreachable
2333 
2334 #if !defined(__cpp_lib_observable_checkpoint)
2335 # if (__cplusplus > 202302L) && (__has_builtin(__builtin_observable_checkpoint))
2336 # define __glibcxx_observable_checkpoint 202506L
2337 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_observable_checkpoint)
2338 # define __cpp_lib_observable_checkpoint 202506L
2339 # endif
2340 # endif
2341 #endif /* !defined(__cpp_lib_observable_checkpoint) */
2342 #undef __glibcxx_want_observable_checkpoint
2343 
2344 #if !defined(__cpp_lib_algorithm_iterator_requirements)
2345 # if (__cplusplus >= 202002L)
2346 # define __glibcxx_algorithm_iterator_requirements 202207L
2347 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_iterator_requirements)
2348 # define __cpp_lib_algorithm_iterator_requirements 202207L
2349 # endif
2350 # endif
2351 #endif /* !defined(__cpp_lib_algorithm_iterator_requirements) */
2352 #undef __glibcxx_want_algorithm_iterator_requirements
2353 
2354 #if !defined(__cpp_lib_algorithm_default_value_type)
2355 # if (__cplusplus > 202302L)
2356 # define __glibcxx_algorithm_default_value_type 202603L
2357 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_default_value_type)
2358 # define __cpp_lib_algorithm_default_value_type 202603L
2359 # endif
2360 # endif
2361 #endif /* !defined(__cpp_lib_algorithm_default_value_type) */
2362 #undef __glibcxx_want_algorithm_default_value_type
2363 
2364 #if !defined(__cpp_lib_constexpr_new)
2365 # if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L)
2366 # define __glibcxx_constexpr_new 202406L
2367 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_new)
2368 # define __cpp_lib_constexpr_new 202406L
2369 # endif
2370 # endif
2371 #endif /* !defined(__cpp_lib_constexpr_new) */
2372 #undef __glibcxx_want_constexpr_new
2373 
2374 #if !defined(__cpp_lib_debugging)
2375 # if (__cplusplus > 202302L)
2376 # define __glibcxx_debugging 202403L
2377 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_debugging)
2378 # define __cpp_lib_debugging 202403L
2379 # endif
2380 # endif
2381 #endif /* !defined(__cpp_lib_debugging) */
2382 #undef __glibcxx_want_debugging
2383 
2384 #if !defined(__cpp_lib_fstream_native_handle)
2385 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
2386 # define __glibcxx_fstream_native_handle 202306L
2387 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_fstream_native_handle)
2388 # define __cpp_lib_fstream_native_handle 202306L
2389 # endif
2390 # endif
2391 #endif /* !defined(__cpp_lib_fstream_native_handle) */
2392 #undef __glibcxx_want_fstream_native_handle
2393 
2394 #if !defined(__cpp_lib_is_virtual_base_of)
2395 # if (__cplusplus > 202302L) && (__has_builtin(__builtin_is_virtual_base_of))
2396 # define __glibcxx_is_virtual_base_of 202406L
2397 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_virtual_base_of)
2398 # define __cpp_lib_is_virtual_base_of 202406L
2399 # endif
2400 # endif
2401 #endif /* !defined(__cpp_lib_is_virtual_base_of) */
2402 #undef __glibcxx_want_is_virtual_base_of
2403 
2404 #if !defined(__cpp_lib_ranges_cache_latest)
2405 # if (__cplusplus > 202302L)
2406 # define __glibcxx_ranges_cache_latest 202411L
2407 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cache_latest)
2408 # define __cpp_lib_ranges_cache_latest 202411L
2409 # endif
2410 # endif
2411 #endif /* !defined(__cpp_lib_ranges_cache_latest) */
2412 #undef __glibcxx_want_ranges_cache_latest
2413 
2414 #if !defined(__cpp_lib_ranges_concat)
2415 # if (__cplusplus > 202302L) && (__cpp_pack_indexing)
2416 # define __glibcxx_ranges_concat 202403L
2417 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_concat)
2418 # define __cpp_lib_ranges_concat 202403L
2419 # endif
2420 # endif
2421 #endif /* !defined(__cpp_lib_ranges_concat) */
2422 #undef __glibcxx_want_ranges_concat
2423 
2424 #if !defined(__cpp_lib_ratio)
2425 # if (__cplusplus > 202302L)
2426 # define __glibcxx_ratio 202306L
2427 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ratio)
2428 # define __cpp_lib_ratio 202306L
2429 # endif
2430 # endif
2431 #endif /* !defined(__cpp_lib_ratio) */
2432 #undef __glibcxx_want_ratio
2433 
2434 #if !defined(__cpp_lib_reference_wrapper)
2435 # if (__cplusplus > 202302L)
2436 # define __glibcxx_reference_wrapper 202403L
2437 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_wrapper)
2438 # define __cpp_lib_reference_wrapper 202403L
2439 # endif
2440 # endif
2441 #endif /* !defined(__cpp_lib_reference_wrapper) */
2442 #undef __glibcxx_want_reference_wrapper
2443 
2444 #if !defined(__cpp_lib_saturation_arithmetic)
2445 # if (__cplusplus > 202302L)
2446 # define __glibcxx_saturation_arithmetic 202603L
2447 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_saturation_arithmetic)
2448 # define __cpp_lib_saturation_arithmetic 202603L
2449 # endif
2450 # endif
2451 #endif /* !defined(__cpp_lib_saturation_arithmetic) */
2452 #undef __glibcxx_want_saturation_arithmetic
2453 
2454 #if !defined(__cpp_lib_text_encoding)
2455 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_USE_NL_LANGINFO_L)
2456 # define __glibcxx_text_encoding 202306L
2457 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_text_encoding)
2458 # define __cpp_lib_text_encoding 202306L
2459 # endif
2460 # endif
2461 #endif /* !defined(__cpp_lib_text_encoding) */
2462 #undef __glibcxx_want_text_encoding
2463 
2464 #if !defined(__cpp_lib_ranges_filter)
2465 # if (__cplusplus >= 202002L)
2466 # define __glibcxx_ranges_filter 202603L
2467 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_filter)
2468 # define __cpp_lib_ranges_filter 202603L
2469 # endif
2470 # endif
2471 #endif /* !defined(__cpp_lib_ranges_filter) */
2472 #undef __glibcxx_want_ranges_filter
2473 
2474 #if !defined(__cpp_lib_ranges_as_input)
2475 # if (__cplusplus > 202302L)
2476 # define __glibcxx_ranges_as_input 202502L
2477 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_input)
2478 # define __cpp_lib_ranges_as_input 202502L
2479 # endif
2480 # endif
2481 #endif /* !defined(__cpp_lib_ranges_as_input) */
2482 #undef __glibcxx_want_ranges_as_input
2483 
2484 #if !defined(__cpp_lib_to_string)
2485 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
2486 # define __glibcxx_to_string 202306L
2487 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_string)
2488 # define __cpp_lib_to_string 202306L
2489 # endif
2490 # endif
2491 #endif /* !defined(__cpp_lib_to_string) */
2492 #undef __glibcxx_want_to_string
2493 
2494 #if !defined(__cpp_lib_modules)
2495 # if (__cplusplus >= 202002L) && (__cpp_modules)
2496 # define __glibcxx_modules 202207L
2497 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_modules)
2498 # define __cpp_lib_modules 202207L
2499 # endif
2500 # endif
2501 #endif /* !defined(__cpp_lib_modules) */
2502 #undef __glibcxx_want_modules
2503 
2504 #if !defined(__cpp_lib_inplace_vector)
2505 # if (__cplusplus > 202302L)
2506 # define __glibcxx_inplace_vector 202603L
2507 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_inplace_vector)
2508 # define __cpp_lib_inplace_vector 202603L
2509 # endif
2510 # endif
2511 #endif /* !defined(__cpp_lib_inplace_vector) */
2512 #undef __glibcxx_want_inplace_vector
2513 
2514 #if !defined(__cpp_lib_indirect)
2515 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
2516 # define __glibcxx_indirect 202502L
2517 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_indirect)
2518 # define __cpp_lib_indirect 202502L
2519 # endif
2520 # endif
2521 #endif /* !defined(__cpp_lib_indirect) */
2522 #undef __glibcxx_want_indirect
2523 
2524 #if !defined(__cpp_lib_polymorphic)
2525 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
2526 # define __glibcxx_polymorphic 202502L
2527 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic)
2528 # define __cpp_lib_polymorphic 202502L
2529 # endif
2530 # endif
2531 #endif /* !defined(__cpp_lib_polymorphic) */
2532 #undef __glibcxx_want_polymorphic
2533 
2534 #if !defined(__cpp_lib_smart_ptr_owner_equality)
2535 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
2536 # define __glibcxx_smart_ptr_owner_equality 202306L
2537 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_smart_ptr_owner_equality)
2538 # define __cpp_lib_smart_ptr_owner_equality 202306L
2539 # endif
2540 # endif
2541 #endif /* !defined(__cpp_lib_smart_ptr_owner_equality) */
2542 #undef __glibcxx_want_smart_ptr_owner_equality
2543 
2544 #if !defined(__cpp_lib_sstream_from_string_view)
2545 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
2546 # define __glibcxx_sstream_from_string_view 202306L
2547 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_sstream_from_string_view)
2548 # define __cpp_lib_sstream_from_string_view 202306L
2549 # endif
2550 # endif
2551 #endif /* !defined(__cpp_lib_sstream_from_string_view) */
2552 #undef __glibcxx_want_sstream_from_string_view
2553 
2554 #if !defined(__cpp_lib_type_order)
2555 # if (__cplusplus > 202302L) && (__has_builtin(__builtin_type_order) && __cpp_lib_three_way_comparison >= 201907L)
2556 # define __glibcxx_type_order 202506L
2557 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_order)
2558 # define __cpp_lib_type_order 202506L
2559 # endif
2560 # endif
2561 #endif /* !defined(__cpp_lib_type_order) */
2562 #undef __glibcxx_want_type_order
2563 
2564 #if !defined(__cpp_lib_exception_ptr_cast)
2565 # if (__cplusplus > 202302L)
2566 # define __glibcxx_exception_ptr_cast 202506L
2567 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_exception_ptr_cast)
2568 # define __cpp_lib_exception_ptr_cast 202506L
2569 # endif
2570 # endif
2571 #endif /* !defined(__cpp_lib_exception_ptr_cast) */
2572 #undef __glibcxx_want_exception_ptr_cast
2573 
2574 #if !defined(__cpp_lib_bitset)
2575 # if (__cplusplus > 202302L)
2576 # define __glibcxx_bitset 202306L
2577 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitset)
2578 # define __cpp_lib_bitset 202306L
2579 # endif
2580 # endif
2581 #endif /* !defined(__cpp_lib_bitset) */
2582 #undef __glibcxx_want_bitset
2583 
2584 #if !defined(__cpp_lib_constexpr_exceptions)
2585 # if (__cplusplus > 202302L) && _GLIBCXX_USE_CXX11_ABI && (__cpp_constexpr_exceptions >= 202411L)
2586 # define __glibcxx_constexpr_exceptions 202502L
2587 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_exceptions)
2588 # define __cpp_lib_constexpr_exceptions 202502L
2589 # endif
2590 # endif
2591 #endif /* !defined(__cpp_lib_constexpr_exceptions) */
2592 #undef __glibcxx_want_constexpr_exceptions
2593 
2594 #if !defined(__cpp_lib_philox_engine)
2595 # if (__cplusplus > 202302L)
2596 # define __glibcxx_philox_engine 202406L
2597 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_philox_engine)
2598 # define __cpp_lib_philox_engine 202406L
2599 # endif
2600 # endif
2601 #endif /* !defined(__cpp_lib_philox_engine) */
2602 #undef __glibcxx_want_philox_engine
2603 
2604 #if !defined(__cpp_lib_reflection)
2605 # if (__cplusplus > 202302L) && _GLIBCXX_USE_CXX11_ABI && (__cpp_impl_reflection >= 202603L)
2606 # define __glibcxx_reflection 202603L
2607 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reflection)
2608 # define __cpp_lib_reflection 202603L
2609 # endif
2610 # endif
2611 #endif /* !defined(__cpp_lib_reflection) */
2612 #undef __glibcxx_want_reflection
2613 
2614 #if !defined(__cpp_lib_define_static)
2615 # if (__cplusplus > 202302L) && _GLIBCXX_USE_CXX11_ABI && (__cpp_impl_reflection >= 202506L)
2616 # define __glibcxx_define_static 202506L
2617 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_define_static)
2618 # define __cpp_lib_define_static 202506L
2619 # endif
2620 # endif
2621 #endif /* !defined(__cpp_lib_define_static) */
2622 #undef __glibcxx_want_define_static
2623 
2624 #if !defined(__cpp_lib_is_implicit_lifetime)
2625 # if (__cplusplus >= 202100L) && (__has_builtin(__builtin_is_implicit_lifetime))
2626 # define __glibcxx_is_implicit_lifetime 202302L
2627 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_implicit_lifetime)
2628 # define __cpp_lib_is_implicit_lifetime 202302L
2629 # endif
2630 # endif
2631 #endif /* !defined(__cpp_lib_is_implicit_lifetime) */
2632 #undef __glibcxx_want_is_implicit_lifetime
2633 
2634 #if !defined(__cpp_lib_contracts)
2635 # if (__cplusplus > 202302L) && (__cpp_contracts >= 202502L)
2636 # define __glibcxx_contracts 202502L
2637 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_contracts)
2638 # define __cpp_lib_contracts 202502L
2639 # endif
2640 # endif
2641 #endif /* !defined(__cpp_lib_contracts) */
2642 #undef __glibcxx_want_contracts
2643 
2644 #if !defined(__cpp_lib_replaceable_contract_violation_handler)
2645 # if (__cplusplus > 202302L) && (__cpp_contracts >= 202502L && __ELF__)
2646 # define __glibcxx_replaceable_contract_violation_handler 202603L
2647 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_replaceable_contract_violation_handler)
2648 # define __cpp_lib_replaceable_contract_violation_handler 202603L
2649 # endif
2650 # elif (__cplusplus > 202302L) && (__cpp_contracts >= 202502L)
2651 # define __glibcxx_replaceable_contract_violation_handler 0L
2652 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_replaceable_contract_violation_handler)
2653 # define __cpp_lib_replaceable_contract_violation_handler 0L
2654 # endif
2655 # endif
2656 #endif /* !defined(__cpp_lib_replaceable_contract_violation_handler) */
2657 #undef __glibcxx_want_replaceable_contract_violation_handler
2658 
2659 #if !defined(__cpp_lib_simd)
2660 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__cpp_structured_bindings >= 202411L && __cpp_expansion_statements >= 202411L && __SSE2__)
2661 # define __glibcxx_simd 202506L
2662 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_simd)
2663 # endif
2664 # endif
2665 #endif /* !defined(__cpp_lib_simd) */
2666 #undef __glibcxx_want_simd
2667 
2668 #if !defined(__cpp_lib_is_structural)
2669 # if (__cplusplus > 202302L) && (__has_builtin(__builtin_is_structural))
2670 # define __glibcxx_is_structural 202603L
2671 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_structural)
2672 # define __cpp_lib_is_structural 202603L
2673 # endif
2674 # endif
2675 #endif /* !defined(__cpp_lib_is_structural) */
2676 #undef __glibcxx_want_is_structural
2677 
2678 #undef __glibcxx_want_all