Go to the documentation of this file.
47 #ifdef _GLIBCXX_SYSHDR
48 #pragma GCC system_header
53 #if !defined(__cpp_lib_incomplete_container_elements)
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
61 #undef __glibcxx_want_incomplete_container_elements
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
71 #undef __glibcxx_want_uncaught_exceptions
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
81 #undef __glibcxx_want_allocator_traits_is_always_equal
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
91 #undef __glibcxx_want_allocate_at_least
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
101 #undef __glibcxx_want_is_null_pointer
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
111 #undef __glibcxx_want_result_of_sfinae
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
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
126 #undef __glibcxx_want_shared_ptr_arrays
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
136 #undef __glibcxx_want_is_swappable
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
146 #undef __glibcxx_want_void_t
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
156 #undef __glibcxx_want_enable_shared_from_this
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
166 #undef __glibcxx_want_math_spec_funcs
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
176 #undef __glibcxx_want_coroutine
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
186 #undef __glibcxx_want_exchange_function
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
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
201 #undef __glibcxx_want_integer_sequence
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
211 #undef __glibcxx_want_integral_constant_callable
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
221 #undef __glibcxx_want_is_final
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
231 #undef __glibcxx_want_make_reverse_iterator
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
241 #undef __glibcxx_want_null_iterators
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
251 #undef __glibcxx_want_transformation_trait_aliases
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
261 #undef __glibcxx_want_transparent_operators
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
271 #undef __glibcxx_want_tuple_element_t
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
281 #undef __glibcxx_want_tuples_by_type
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
291 #undef __glibcxx_want_robust_nonmodifying_seq_ops
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
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
306 #undef __glibcxx_want_to_chars
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
316 #undef __glibcxx_want_chrono_udls
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
326 #undef __glibcxx_want_complex_udls
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
336 #undef __glibcxx_want_generic_associative_lookup
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
346 #undef __glibcxx_want_make_unique
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
356 #undef __glibcxx_want_quoted_string_io
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
366 #undef __glibcxx_want_shared_timed_mutex
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
376 #undef __glibcxx_want_string_udls
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
386 #undef __glibcxx_want_addressof_constexpr
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
396 #undef __glibcxx_want_any
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
406 #undef __glibcxx_want_apply
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
416 #undef __glibcxx_want_as_const
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
426 #undef __glibcxx_want_atomic_is_always_lock_free
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
436 #undef __glibcxx_want_bool_constant
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
446 #undef __glibcxx_want_byte
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
456 #undef __glibcxx_want_constant_wrapper
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
466 #undef __glibcxx_want_has_unique_object_representations
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
476 #undef __glibcxx_want_hardware_interference_size
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
486 #undef __glibcxx_want_invoke
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
496 #undef __glibcxx_want_is_aggregate
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
506 #undef __glibcxx_want_is_invocable
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
516 #undef __glibcxx_want_launder
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
526 #undef __glibcxx_want_logical_traits
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
536 #undef __glibcxx_want_make_from_tuple
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
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
551 #undef __glibcxx_want_not_fn
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
561 #undef __glibcxx_want_type_trait_variable_templates
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
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
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
581 #undef __glibcxx_want_variant
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
591 #undef __glibcxx_want_lcm
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
601 #undef __glibcxx_want_gcd
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
611 #undef __glibcxx_want_gcd_lcm
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
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
626 #undef __glibcxx_want_raw_memory_algorithms
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
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
641 #undef __glibcxx_want_array_constexpr
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
651 #undef __glibcxx_want_nonmember_container_access
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
661 #undef __glibcxx_want_clamp
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
671 #undef __glibcxx_want_sample
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
681 #undef __glibcxx_want_boyer_moore_searcher
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
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
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
701 #undef __glibcxx_want_chrono
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)
708 # elif (__cplusplus >= 202002L)
709 # define __glibcxx_chrono_cxx20 201800L
710 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_cxx20)
714 #undef __glibcxx_want_chrono_cxx20
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
724 #undef __glibcxx_want_execution
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
734 #undef __glibcxx_want_filesystem
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
744 #undef __glibcxx_want_hypot
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
754 #undef __glibcxx_want_map_try_emplace
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
764 #undef __glibcxx_want_math_special_functions
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
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
779 #undef __glibcxx_want_memory_resource
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
789 #undef __glibcxx_want_node_extract
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
799 #undef __glibcxx_want_parallel_algorithm
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
809 #undef __glibcxx_want_scoped_lock
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
819 #undef __glibcxx_want_shared_mutex
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
829 #undef __glibcxx_want_shared_ptr_weak_type
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
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
844 #undef __glibcxx_want_string_view
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
854 #undef __glibcxx_want_unordered_map_try_emplace
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
864 #undef __glibcxx_want_assume_aligned
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
874 #undef __glibcxx_want_is_sufficiently_aligned
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
884 #undef __glibcxx_want_atomic_flag_test
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
894 #undef __glibcxx_want_atomic_float
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
904 #undef __glibcxx_want_atomic_min_max
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
914 #undef __glibcxx_want_atomic_lock_free_type_aliases
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
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
929 #undef __glibcxx_want_atomic_ref
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
939 #undef __glibcxx_want_atomic_value_initialization
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
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
954 #undef __glibcxx_want_bind_front
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
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
969 #undef __glibcxx_want_bind_back
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
979 #undef __glibcxx_want_starts_ends_with
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
989 #undef __glibcxx_want_bit_cast
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
999 #undef __glibcxx_want_bitops
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
1009 #undef __glibcxx_want_bounded_array_traits
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
1019 #undef __glibcxx_want_concepts
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
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
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
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
1044 #undef __glibcxx_want_optional
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
1054 #undef __glibcxx_want_optional_range_support
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
1064 #undef __glibcxx_want_destroying_delete
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
1074 #undef __glibcxx_want_constexpr_string_view
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
1084 #undef __glibcxx_want_endian
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
1094 #undef __glibcxx_want_int_pow2
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
1104 #undef __glibcxx_want_integer_comparison_functions
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
1114 #undef __glibcxx_want_is_constant_evaluated
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
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
1129 #undef __glibcxx_want_constexpr_char_traits
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
1139 #undef __glibcxx_want_is_layout_compatible
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
1149 #undef __glibcxx_want_is_nothrow_convertible
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
1159 #undef __glibcxx_want_is_pointer_interconvertible
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
1169 #undef __glibcxx_want_math_constants
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)
1178 #undef __glibcxx_want_make_obj_using_allocator
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
1188 #undef __glibcxx_want_remove_cvref
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
1198 #undef __glibcxx_want_source_location
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
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
1213 #undef __glibcxx_want_span
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
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
1228 #undef __glibcxx_want_mdspan
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
1238 #undef __glibcxx_want_aligned_accessor
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)
1247 #undef __glibcxx_want_padded_layouts
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
1257 #undef __glibcxx_want_submdspan
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
1267 #undef __glibcxx_want_ssize
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
1277 #undef __glibcxx_want_three_way_comparison
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
1287 #undef __glibcxx_want_to_address
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
1297 #undef __glibcxx_want_to_array
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
1307 #undef __glibcxx_want_type_identity
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
1317 #undef __glibcxx_want_unwrap_ref
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
1327 #undef __glibcxx_want_constexpr_iterator
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
1337 #undef __glibcxx_want_interpolate
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
1347 #undef __glibcxx_want_constexpr_utility
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
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
1362 #undef __glibcxx_want_shift
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
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
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
1382 #undef __glibcxx_want_ranges
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
1392 #undef __glibcxx_want_constexpr_numeric
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
1402 #undef __glibcxx_want_constexpr_functional
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
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
1417 #undef __glibcxx_want_constexpr_algorithms
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
1427 #undef __glibcxx_want_constexpr_tuple
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
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
1442 #undef __glibcxx_want_constexpr_memory
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
1452 #undef __glibcxx_want_atomic_shared_ptr
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
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
1467 #undef __glibcxx_want_atomic_wait
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
1477 #undef __glibcxx_want_barrier
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
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
1492 #undef __glibcxx_want_format
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
1502 #undef __glibcxx_want_format_uchar
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
1512 #undef __glibcxx_want_constexpr_complex
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
1522 #undef __glibcxx_want_constexpr_dynamic_alloc
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
1532 #undef __glibcxx_want_constexpr_flat_map
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
1542 #undef __glibcxx_want_constexpr_flat_set
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
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
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
1562 #undef __glibcxx_want_constexpr_string
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
1572 #undef __glibcxx_want_constexpr_vector
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
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
1587 #undef __glibcxx_want_constrained_equality
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
1597 #undef __glibcxx_want_erase_if
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
1607 #undef __glibcxx_want_generic_unordered_lookup
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
1617 #undef __glibcxx_want_jthread
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
1627 #undef __glibcxx_want_latch
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
1637 #undef __glibcxx_want_list_remove_return_type
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
1647 #undef __glibcxx_want_polymorphic_allocator
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
1657 #undef __glibcxx_want_move_iterator_concept
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
1667 #undef __glibcxx_want_semaphore
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
1677 #undef __glibcxx_want_smart_ptr_for_overwrite
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
1687 #undef __glibcxx_want_syncbuf
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
1697 #undef __glibcxx_want_byteswap
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
1707 #undef __glibcxx_want_constexpr_charconv
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
1717 #undef __glibcxx_want_constexpr_typeinfo
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
1727 #undef __glibcxx_want_expected
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
1737 #undef __glibcxx_want_format_ranges
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
1747 #undef __glibcxx_want_format_path
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
1757 #undef __glibcxx_want_freestanding_algorithm
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
1767 #undef __glibcxx_want_freestanding_array
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
1777 #undef __glibcxx_want_freestanding_cstring
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
1787 #undef __glibcxx_want_freestanding_expected
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
1797 #undef __glibcxx_want_freestanding_optional
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
1807 #undef __glibcxx_want_freestanding_string_view
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
1817 #undef __glibcxx_want_freestanding_variant
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
1827 #undef __glibcxx_want_invoke_r
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
1837 #undef __glibcxx_want_associative_heterogeneous_erasure
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
1847 #undef __glibcxx_want_associative_heterogeneous_insertion
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
1857 #undef __glibcxx_want_is_scoped_enum
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
1867 #undef __glibcxx_want_reference_from_temporary
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
1877 #undef __glibcxx_want_containers_ranges
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
1887 #undef __glibcxx_want_ranges_to_container
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
1897 #undef __glibcxx_want_ranges_zip
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
1907 #undef __glibcxx_want_ranges_chunk
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
1917 #undef __glibcxx_want_ranges_slide
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
1927 #undef __glibcxx_want_ranges_chunk_by
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
1937 #undef __glibcxx_want_ranges_join_with
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
1947 #undef __glibcxx_want_ranges_repeat
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
1957 #undef __glibcxx_want_ranges_stride
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
1967 #undef __glibcxx_want_ranges_cartesian_product
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
1977 #undef __glibcxx_want_ranges_as_rvalue
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
1987 #undef __glibcxx_want_ranges_as_const
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
1997 #undef __glibcxx_want_ranges_enumerate
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
2007 #undef __glibcxx_want_ranges_fold
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
2017 #undef __glibcxx_want_ranges_contains
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
2027 #undef __glibcxx_want_ranges_iota
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
2037 #undef __glibcxx_want_ranges_find_last
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
2047 #undef __glibcxx_want_ranges_starts_ends_with
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
2057 #undef __glibcxx_want_ranges_indices
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
2067 #undef __glibcxx_want_constexpr_bitset
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
2077 #undef __glibcxx_want_stdatomic_h
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
2087 #undef __glibcxx_want_stdbit_h
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
2097 #undef __glibcxx_want_stdckdint_h
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
2107 #undef __glibcxx_want_adaptor_iterator_pair_constructor
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
2117 #undef __glibcxx_want_flat_map
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
2127 #undef __glibcxx_want_flat_set
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
2137 #undef __glibcxx_want_common_reference
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
2147 #undef __glibcxx_want_common_reference_wrapper
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
2157 #undef __glibcxx_want_formatters
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
2167 #undef __glibcxx_want_forward_like
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
2177 #undef __glibcxx_want_generator
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
2187 #undef __glibcxx_want_ios_noreplace
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
2197 #undef __glibcxx_want_move_only_function
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
2207 #undef __glibcxx_want_copyable_function
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
2217 #undef __glibcxx_want_function_ref
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
2227 #undef __glibcxx_want_out_ptr
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
2237 #undef __glibcxx_want_print
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
2247 #undef __glibcxx_want_spanstream
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
2257 #undef __glibcxx_want_stacktrace
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
2267 #undef __glibcxx_want_start_lifetime_as
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
2277 #undef __glibcxx_want_string_contains
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
2287 #undef __glibcxx_want_string_resize_and_overwrite
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
2297 #undef __glibcxx_want_string_subview
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
2307 #undef __glibcxx_want_to_underlying
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
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
2322 #undef __glibcxx_want_tuple_like
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
2332 #undef __glibcxx_want_unreachable
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
2342 #undef __glibcxx_want_observable_checkpoint
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
2352 #undef __glibcxx_want_algorithm_iterator_requirements
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
2362 #undef __glibcxx_want_algorithm_default_value_type
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
2372 #undef __glibcxx_want_constexpr_new
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
2382 #undef __glibcxx_want_debugging
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
2392 #undef __glibcxx_want_fstream_native_handle
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
2402 #undef __glibcxx_want_is_virtual_base_of
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
2412 #undef __glibcxx_want_ranges_cache_latest
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
2422 #undef __glibcxx_want_ranges_concat
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
2432 #undef __glibcxx_want_ratio
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
2442 #undef __glibcxx_want_reference_wrapper
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
2452 #undef __glibcxx_want_saturation_arithmetic
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
2462 #undef __glibcxx_want_text_encoding
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
2472 #undef __glibcxx_want_ranges_filter
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
2482 #undef __glibcxx_want_ranges_as_input
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
2492 #undef __glibcxx_want_to_string
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
2502 #undef __glibcxx_want_modules
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
2512 #undef __glibcxx_want_inplace_vector
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
2522 #undef __glibcxx_want_indirect
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
2532 #undef __glibcxx_want_polymorphic
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
2542 #undef __glibcxx_want_smart_ptr_owner_equality
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
2552 #undef __glibcxx_want_sstream_from_string_view
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
2562 #undef __glibcxx_want_type_order
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
2572 #undef __glibcxx_want_exception_ptr_cast
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
2582 #undef __glibcxx_want_bitset
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
2592 #undef __glibcxx_want_constexpr_exceptions
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
2602 #undef __glibcxx_want_philox_engine
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
2612 #undef __glibcxx_want_reflection
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
2622 #undef __glibcxx_want_define_static
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
2632 #undef __glibcxx_want_is_implicit_lifetime
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
2642 #undef __glibcxx_want_contracts
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
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
2657 #undef __glibcxx_want_replaceable_contract_violation_handler
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)
2666 #undef __glibcxx_want_simd
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
2676 #undef __glibcxx_want_is_structural
2678 #undef __glibcxx_want_all