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_is_null_pointer)
84 # if (__cplusplus >= 201103L)
85 # define __glibcxx_is_null_pointer 201309L
86 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_null_pointer)
87 # define __cpp_lib_is_null_pointer 201309L
91 #undef __glibcxx_want_is_null_pointer
93 #if !defined(__cpp_lib_result_of_sfinae)
94 # if (__cplusplus >= 201103L)
95 # define __glibcxx_result_of_sfinae 201210L
96 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_result_of_sfinae)
97 # define __cpp_lib_result_of_sfinae 201210L
101 #undef __glibcxx_want_result_of_sfinae
103 #if !defined(__cpp_lib_shared_ptr_arrays)
104 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
105 # define __glibcxx_shared_ptr_arrays 201707L
106 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays)
107 # define __cpp_lib_shared_ptr_arrays 201707L
109 # elif (__cplusplus >= 201103L) && _GLIBCXX_HOSTED
110 # define __glibcxx_shared_ptr_arrays 201611L
111 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays)
112 # define __cpp_lib_shared_ptr_arrays 201611L
116 #undef __glibcxx_want_shared_ptr_arrays
118 #if !defined(__cpp_lib_is_swappable)
119 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L))
120 # define __glibcxx_is_swappable 201603L
121 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_swappable)
122 # define __cpp_lib_is_swappable 201603L
126 #undef __glibcxx_want_is_swappable
128 #if !defined(__cpp_lib_void_t)
129 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L))
130 # define __glibcxx_void_t 201411L
131 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_void_t)
132 # define __cpp_lib_void_t 201411L
136 #undef __glibcxx_want_void_t
138 #if !defined(__cpp_lib_enable_shared_from_this)
139 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) && _GLIBCXX_HOSTED
140 # define __glibcxx_enable_shared_from_this 201603L
141 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_enable_shared_from_this)
142 # define __cpp_lib_enable_shared_from_this 201603L
146 #undef __glibcxx_want_enable_shared_from_this
148 #if !defined(__cpp_lib_math_spec_funcs)
149 # if (__cplusplus >= 201103L)
150 # define __glibcxx_math_spec_funcs 201003L
151 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_spec_funcs)
152 # define __STDCPP_MATH_SPEC_FUNCS__ 201003L
156 #undef __glibcxx_want_math_spec_funcs
158 #if !defined(__cpp_lib_coroutine)
159 # if (__cplusplus >= 201402L) && (__cpp_impl_coroutine)
160 # define __glibcxx_coroutine 201902L
161 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_coroutine)
162 # define __cpp_lib_coroutine 201902L
166 #undef __glibcxx_want_coroutine
168 #if !defined(__cpp_lib_exchange_function)
169 # if (__cplusplus >= 201402L)
170 # define __glibcxx_exchange_function 201304L
171 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_exchange_function)
172 # define __cpp_lib_exchange_function 201304L
176 #undef __glibcxx_want_exchange_function
178 #if !defined(__cpp_lib_integer_sequence)
179 # if (__cplusplus >= 201402L)
180 # define __glibcxx_integer_sequence 201304L
181 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
182 # define __cpp_lib_integer_sequence 201304L
186 #undef __glibcxx_want_integer_sequence
188 #if !defined(__cpp_lib_integral_constant_callable)
189 # if (__cplusplus >= 201402L)
190 # define __glibcxx_integral_constant_callable 201304L
191 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integral_constant_callable)
192 # define __cpp_lib_integral_constant_callable 201304L
196 #undef __glibcxx_want_integral_constant_callable
198 #if !defined(__cpp_lib_is_final)
199 # if (__cplusplus >= 201402L)
200 # define __glibcxx_is_final 201402L
201 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_final)
202 # define __cpp_lib_is_final 201402L
206 #undef __glibcxx_want_is_final
208 #if !defined(__cpp_lib_make_reverse_iterator)
209 # if (__cplusplus >= 201402L)
210 # define __glibcxx_make_reverse_iterator 201402L
211 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_reverse_iterator)
212 # define __cpp_lib_make_reverse_iterator 201402L
216 #undef __glibcxx_want_make_reverse_iterator
218 #if !defined(__cpp_lib_null_iterators)
219 # if (__cplusplus >= 201402L)
220 # define __glibcxx_null_iterators 201304L
221 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_null_iterators)
222 # define __cpp_lib_null_iterators 201304L
226 #undef __glibcxx_want_null_iterators
228 #if !defined(__cpp_lib_transformation_trait_aliases)
229 # if (__cplusplus >= 201402L)
230 # define __glibcxx_transformation_trait_aliases 201304L
231 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_transformation_trait_aliases)
232 # define __cpp_lib_transformation_trait_aliases 201304L
236 #undef __glibcxx_want_transformation_trait_aliases
238 #if !defined(__cpp_lib_transparent_operators)
239 # if (__cplusplus >= 201402L)
240 # define __glibcxx_transparent_operators 201510L
241 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_transparent_operators)
242 # define __cpp_lib_transparent_operators 201510L
246 #undef __glibcxx_want_transparent_operators
248 #if !defined(__cpp_lib_tuple_element_t)
249 # if (__cplusplus >= 201402L)
250 # define __glibcxx_tuple_element_t 201402L
251 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_element_t)
252 # define __cpp_lib_tuple_element_t 201402L
256 #undef __glibcxx_want_tuple_element_t
258 #if !defined(__cpp_lib_tuples_by_type)
259 # if (__cplusplus >= 201402L)
260 # define __glibcxx_tuples_by_type 201304L
261 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuples_by_type)
262 # define __cpp_lib_tuples_by_type 201304L
266 #undef __glibcxx_want_tuples_by_type
268 #if !defined(__cpp_lib_robust_nonmodifying_seq_ops)
269 # if (__cplusplus >= 201402L)
270 # define __glibcxx_robust_nonmodifying_seq_ops 201304L
271 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_robust_nonmodifying_seq_ops)
272 # define __cpp_lib_robust_nonmodifying_seq_ops 201304L
276 #undef __glibcxx_want_robust_nonmodifying_seq_ops
278 #if !defined(__cpp_lib_to_chars)
279 # if (__cplusplus > 202302L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
280 # define __glibcxx_to_chars 202306L
281 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
282 # define __cpp_lib_to_chars 202306L
284 # elif (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
285 # define __glibcxx_to_chars 201611L
286 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
287 # define __cpp_lib_to_chars 201611L
291 #undef __glibcxx_want_to_chars
293 #if !defined(__cpp_lib_chrono_udls)
294 # if (__cplusplus >= 201402L)
295 # define __glibcxx_chrono_udls 201304L
296 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_udls)
297 # define __cpp_lib_chrono_udls 201304L
301 #undef __glibcxx_want_chrono_udls
303 #if !defined(__cpp_lib_complex_udls)
304 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
305 # define __glibcxx_complex_udls 201309L
306 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_complex_udls)
307 # define __cpp_lib_complex_udls 201309L
311 #undef __glibcxx_want_complex_udls
313 #if !defined(__cpp_lib_generic_associative_lookup)
314 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
315 # define __glibcxx_generic_associative_lookup 201304L
316 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_associative_lookup)
317 # define __cpp_lib_generic_associative_lookup 201304L
321 #undef __glibcxx_want_generic_associative_lookup
323 #if !defined(__cpp_lib_make_unique)
324 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
325 # define __glibcxx_make_unique 201304L
326 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_unique)
327 # define __cpp_lib_make_unique 201304L
331 #undef __glibcxx_want_make_unique
333 #if !defined(__cpp_lib_quoted_string_io)
334 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
335 # define __glibcxx_quoted_string_io 201304L
336 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_quoted_string_io)
337 # define __cpp_lib_quoted_string_io 201304L
341 #undef __glibcxx_want_quoted_string_io
343 #if !defined(__cpp_lib_shared_timed_mutex)
344 # if (__cplusplus >= 201402L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
345 # define __glibcxx_shared_timed_mutex 201402L
346 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_timed_mutex)
347 # define __cpp_lib_shared_timed_mutex 201402L
351 #undef __glibcxx_want_shared_timed_mutex
353 #if !defined(__cpp_lib_string_udls)
354 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
355 # define __glibcxx_string_udls 201304L
356 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_udls)
357 # define __cpp_lib_string_udls 201304L
361 #undef __glibcxx_want_string_udls
363 #if !defined(__cpp_lib_addressof_constexpr)
364 # if (__cplusplus >= 201703L)
365 # define __glibcxx_addressof_constexpr 201603L
366 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_addressof_constexpr)
367 # define __cpp_lib_addressof_constexpr 201603L
371 #undef __glibcxx_want_addressof_constexpr
373 #if !defined(__cpp_lib_any)
374 # if (__cplusplus >= 201703L)
375 # define __glibcxx_any 201606L
376 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_any)
377 # define __cpp_lib_any 201606L
381 #undef __glibcxx_want_any
383 #if !defined(__cpp_lib_apply)
384 # if (__cplusplus >= 201703L)
385 # define __glibcxx_apply 201603L
386 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_apply)
387 # define __cpp_lib_apply 201603L
391 #undef __glibcxx_want_apply
393 #if !defined(__cpp_lib_as_const)
394 # if (__cplusplus >= 201703L)
395 # define __glibcxx_as_const 201510L
396 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_as_const)
397 # define __cpp_lib_as_const 201510L
401 #undef __glibcxx_want_as_const
403 #if !defined(__cpp_lib_atomic_is_always_lock_free)
404 # if (__cplusplus >= 201703L)
405 # define __glibcxx_atomic_is_always_lock_free 201603L
406 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_is_always_lock_free)
407 # define __cpp_lib_atomic_is_always_lock_free 201603L
411 #undef __glibcxx_want_atomic_is_always_lock_free
413 #if !defined(__cpp_lib_bool_constant)
414 # if (__cplusplus >= 201703L)
415 # define __glibcxx_bool_constant 201505L
416 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bool_constant)
417 # define __cpp_lib_bool_constant 201505L
421 #undef __glibcxx_want_bool_constant
423 #if !defined(__cpp_lib_byte)
424 # if (__cplusplus >= 201703L)
425 # define __glibcxx_byte 201603L
426 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_byte)
427 # define __cpp_lib_byte 201603L
431 #undef __glibcxx_want_byte
433 #if !defined(__cpp_lib_has_unique_object_representations)
434 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP))
435 # define __glibcxx_has_unique_object_representations 201606L
436 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_has_unique_object_representations)
437 # define __cpp_lib_has_unique_object_representations 201606L
441 #undef __glibcxx_want_has_unique_object_representations
443 #if !defined(__cpp_lib_hardware_interference_size)
444 # if (__cplusplus >= 201703L) && (defined(__GCC_DESTRUCTIVE_SIZE))
445 # define __glibcxx_hardware_interference_size 201703L
446 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardware_interference_size)
447 # define __cpp_lib_hardware_interference_size 201703L
451 #undef __glibcxx_want_hardware_interference_size
453 #if !defined(__cpp_lib_invoke)
454 # if (__cplusplus >= 201703L)
455 # define __glibcxx_invoke 201411L
456 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke)
457 # define __cpp_lib_invoke 201411L
461 #undef __glibcxx_want_invoke
463 #if !defined(__cpp_lib_is_aggregate)
464 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE))
465 # define __glibcxx_is_aggregate 201703L
466 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_aggregate)
467 # define __cpp_lib_is_aggregate 201703L
471 #undef __glibcxx_want_is_aggregate
473 #if !defined(__cpp_lib_is_invocable)
474 # if (__cplusplus >= 201703L)
475 # define __glibcxx_is_invocable 201703L
476 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_invocable)
477 # define __cpp_lib_is_invocable 201703L
481 #undef __glibcxx_want_is_invocable
483 #if !defined(__cpp_lib_launder)
484 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_LAUNDER))
485 # define __glibcxx_launder 201606L
486 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_launder)
487 # define __cpp_lib_launder 201606L
491 #undef __glibcxx_want_launder
493 #if !defined(__cpp_lib_logical_traits)
494 # if (__cplusplus >= 201703L)
495 # define __glibcxx_logical_traits 201510L
496 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_logical_traits)
497 # define __cpp_lib_logical_traits 201510L
501 #undef __glibcxx_want_logical_traits
503 #if !defined(__cpp_lib_make_from_tuple)
504 # if (__cplusplus >= 201703L)
505 # define __glibcxx_make_from_tuple 201606L
506 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_from_tuple)
507 # define __cpp_lib_make_from_tuple 201606L
511 #undef __glibcxx_want_make_from_tuple
513 #if !defined(__cpp_lib_not_fn)
514 # if (__cplusplus >= 201703L)
515 # define __glibcxx_not_fn 201603L
516 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn)
517 # define __cpp_lib_not_fn 201603L
521 #undef __glibcxx_want_not_fn
523 #if !defined(__cpp_lib_type_trait_variable_templates)
524 # if (__cplusplus >= 201703L)
525 # define __glibcxx_type_trait_variable_templates 201510L
526 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_trait_variable_templates)
527 # define __cpp_lib_type_trait_variable_templates 201510L
531 #undef __glibcxx_want_type_trait_variable_templates
533 #if !defined(__cpp_lib_variant)
534 # if (__cplusplus > 202302L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L && __cpp_explicit_this_parameter)
535 # define __glibcxx_variant 202306L
536 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
537 # define __cpp_lib_variant 202306L
539 # elif (__cplusplus >= 202002L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L)
540 # define __glibcxx_variant 202106L
541 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
542 # define __cpp_lib_variant 202106L
544 # elif (__cplusplus >= 201703L)
545 # define __glibcxx_variant 202102L
546 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
547 # define __cpp_lib_variant 202102L
551 #undef __glibcxx_want_variant
553 #if !defined(__cpp_lib_lcm)
554 # if (__cplusplus >= 201703L)
555 # define __glibcxx_lcm 201606L
556 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_lcm)
557 # define __cpp_lib_lcm 201606L
561 #undef __glibcxx_want_lcm
563 #if !defined(__cpp_lib_gcd)
564 # if (__cplusplus >= 201703L)
565 # define __glibcxx_gcd 201606L
566 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd)
567 # define __cpp_lib_gcd 201606L
571 #undef __glibcxx_want_gcd
573 #if !defined(__cpp_lib_gcd_lcm)
574 # if (__cplusplus >= 201703L)
575 # define __glibcxx_gcd_lcm 201606L
576 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd_lcm)
577 # define __cpp_lib_gcd_lcm 201606L
581 #undef __glibcxx_want_gcd_lcm
583 #if !defined(__cpp_lib_raw_memory_algorithms)
584 # if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L)
585 # define __glibcxx_raw_memory_algorithms 202411L
586 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms)
587 # define __cpp_lib_raw_memory_algorithms 202411L
589 # elif (__cplusplus >= 201703L)
590 # define __glibcxx_raw_memory_algorithms 201606L
591 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms)
592 # define __cpp_lib_raw_memory_algorithms 201606L
596 #undef __glibcxx_want_raw_memory_algorithms
598 #if !defined(__cpp_lib_array_constexpr)
599 # if (__cplusplus >= 202002L)
600 # define __glibcxx_array_constexpr 201811L
601 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr)
602 # define __cpp_lib_array_constexpr 201811L
604 # elif (__cplusplus >= 201703L)
605 # define __glibcxx_array_constexpr 201803L
606 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr)
607 # define __cpp_lib_array_constexpr 201803L
611 #undef __glibcxx_want_array_constexpr
613 #if !defined(__cpp_lib_nonmember_container_access)
614 # if (__cplusplus >= 201703L)
615 # define __glibcxx_nonmember_container_access 201411L
616 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_nonmember_container_access)
617 # define __cpp_lib_nonmember_container_access 201411L
621 #undef __glibcxx_want_nonmember_container_access
623 #if !defined(__cpp_lib_clamp)
624 # if (__cplusplus >= 201703L)
625 # define __glibcxx_clamp 201603L
626 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_clamp)
627 # define __cpp_lib_clamp 201603L
631 #undef __glibcxx_want_clamp
633 #if !defined(__cpp_lib_sample)
634 # if (__cplusplus >= 201703L)
635 # define __glibcxx_sample 201603L
636 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_sample)
637 # define __cpp_lib_sample 201603L
641 #undef __glibcxx_want_sample
643 #if !defined(__cpp_lib_boyer_moore_searcher)
644 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
645 # define __glibcxx_boyer_moore_searcher 201603L
646 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_boyer_moore_searcher)
647 # define __cpp_lib_boyer_moore_searcher 201603L
651 #undef __glibcxx_want_boyer_moore_searcher
653 #if !defined(__cpp_lib_chrono)
654 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
655 # define __glibcxx_chrono 201907L
656 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
657 # define __cpp_lib_chrono 201907L
659 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
660 # define __glibcxx_chrono 201611L
661 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
662 # define __cpp_lib_chrono 201611L
666 #undef __glibcxx_want_chrono
668 #if !defined(__cpp_lib_execution)
669 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
670 # define __glibcxx_execution 201902L
671 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_execution)
672 # define __cpp_lib_execution 201902L
676 #undef __glibcxx_want_execution
678 #if !defined(__cpp_lib_filesystem)
679 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
680 # define __glibcxx_filesystem 201703L
681 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_filesystem)
682 # define __cpp_lib_filesystem 201703L
686 #undef __glibcxx_want_filesystem
688 #if !defined(__cpp_lib_hypot)
689 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
690 # define __glibcxx_hypot 201603L
691 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_hypot)
692 # define __cpp_lib_hypot 201603L
696 #undef __glibcxx_want_hypot
698 #if !defined(__cpp_lib_map_try_emplace)
699 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
700 # define __glibcxx_map_try_emplace 201411L
701 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_map_try_emplace)
702 # define __cpp_lib_map_try_emplace 201411L
706 #undef __glibcxx_want_map_try_emplace
708 #if !defined(__cpp_lib_math_special_functions)
709 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
710 # define __glibcxx_math_special_functions 201603L
711 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_special_functions)
712 # define __cpp_lib_math_special_functions 201603L
716 #undef __glibcxx_want_math_special_functions
718 #if !defined(__cpp_lib_memory_resource)
719 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
720 # define __glibcxx_memory_resource 201603L
721 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource)
722 # define __cpp_lib_memory_resource 201603L
724 # elif (__cplusplus >= 201703L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
725 # define __glibcxx_memory_resource 1L
726 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource)
727 # define __cpp_lib_memory_resource 1L
731 #undef __glibcxx_want_memory_resource
733 #if !defined(__cpp_lib_node_extract)
734 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
735 # define __glibcxx_node_extract 201606L
736 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_node_extract)
737 # define __cpp_lib_node_extract 201606L
741 #undef __glibcxx_want_node_extract
743 #if !defined(__cpp_lib_parallel_algorithm)
744 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
745 # define __glibcxx_parallel_algorithm 201603L
746 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_parallel_algorithm)
747 # define __cpp_lib_parallel_algorithm 201603L
751 #undef __glibcxx_want_parallel_algorithm
753 #if !defined(__cpp_lib_scoped_lock)
754 # if (__cplusplus >= 201703L)
755 # define __glibcxx_scoped_lock 201703L
756 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_scoped_lock)
757 # define __cpp_lib_scoped_lock 201703L
761 #undef __glibcxx_want_scoped_lock
763 #if !defined(__cpp_lib_shared_mutex)
764 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
765 # define __glibcxx_shared_mutex 201505L
766 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_mutex)
767 # define __cpp_lib_shared_mutex 201505L
771 #undef __glibcxx_want_shared_mutex
773 #if !defined(__cpp_lib_shared_ptr_weak_type)
774 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
775 # define __glibcxx_shared_ptr_weak_type 201606L
776 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_weak_type)
777 # define __cpp_lib_shared_ptr_weak_type 201606L
781 #undef __glibcxx_want_shared_ptr_weak_type
783 #if !defined(__cpp_lib_string_view)
784 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
785 # define __glibcxx_string_view 202403L
786 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view)
787 # define __cpp_lib_string_view 202403L
789 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
790 # define __glibcxx_string_view 201803L
791 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view)
792 # define __cpp_lib_string_view 201803L
796 #undef __glibcxx_want_string_view
798 #if !defined(__cpp_lib_unordered_map_try_emplace)
799 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
800 # define __glibcxx_unordered_map_try_emplace 201411L
801 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unordered_map_try_emplace)
802 # define __cpp_lib_unordered_map_try_emplace 201411L
806 #undef __glibcxx_want_unordered_map_try_emplace
808 #if !defined(__cpp_lib_assume_aligned)
809 # if (__cplusplus >= 202002L)
810 # define __glibcxx_assume_aligned 201811L
811 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_assume_aligned)
812 # define __cpp_lib_assume_aligned 201811L
816 #undef __glibcxx_want_assume_aligned
818 #if !defined(__cpp_lib_atomic_flag_test)
819 # if (__cplusplus >= 202002L)
820 # define __glibcxx_atomic_flag_test 201907L
821 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_flag_test)
822 # define __cpp_lib_atomic_flag_test 201907L
826 #undef __glibcxx_want_atomic_flag_test
828 #if !defined(__cpp_lib_atomic_float)
829 # if (__cplusplus >= 202002L)
830 # define __glibcxx_atomic_float 201711L
831 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_float)
832 # define __cpp_lib_atomic_float 201711L
836 #undef __glibcxx_want_atomic_float
838 #if !defined(__cpp_lib_atomic_lock_free_type_aliases)
839 # if (__cplusplus >= 202002L) && ((__GCC_ATOMIC_INT_LOCK_FREE | __GCC_ATOMIC_LONG_LOCK_FREE | __GCC_ATOMIC_CHAR_LOCK_FREE) & 2)
840 # define __glibcxx_atomic_lock_free_type_aliases 201907L
841 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_lock_free_type_aliases)
842 # define __cpp_lib_atomic_lock_free_type_aliases 201907L
846 #undef __glibcxx_want_atomic_lock_free_type_aliases
848 #if !defined(__cpp_lib_atomic_ref)
849 # if (__cplusplus >= 202002L)
850 # define __glibcxx_atomic_ref 201806L
851 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref)
852 # define __cpp_lib_atomic_ref 201806L
856 #undef __glibcxx_want_atomic_ref
858 #if !defined(__cpp_lib_atomic_value_initialization)
859 # if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
860 # define __glibcxx_atomic_value_initialization 201911L
861 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_value_initialization)
862 # define __cpp_lib_atomic_value_initialization 201911L
866 #undef __glibcxx_want_atomic_value_initialization
868 #if !defined(__cpp_lib_bind_front)
869 # if (__cplusplus >= 202002L)
870 # define __glibcxx_bind_front 201907L
871 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front)
872 # define __cpp_lib_bind_front 201907L
876 #undef __glibcxx_want_bind_front
878 #if !defined(__cpp_lib_bind_back)
879 # if (__cplusplus >= 202100L) && (__cpp_explicit_this_parameter)
880 # define __glibcxx_bind_back 202202L
881 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back)
882 # define __cpp_lib_bind_back 202202L
886 #undef __glibcxx_want_bind_back
888 #if !defined(__cpp_lib_starts_ends_with)
889 # if (__cplusplus >= 202002L)
890 # define __glibcxx_starts_ends_with 201711L
891 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_starts_ends_with)
892 # define __cpp_lib_starts_ends_with 201711L
896 #undef __glibcxx_want_starts_ends_with
898 #if !defined(__cpp_lib_bit_cast)
899 # if (__cplusplus >= 202002L) && (__has_builtin(__builtin_bit_cast))
900 # define __glibcxx_bit_cast 201806L
901 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bit_cast)
902 # define __cpp_lib_bit_cast 201806L
906 #undef __glibcxx_want_bit_cast
908 #if !defined(__cpp_lib_bitops)
909 # if (__cplusplus >= 202002L)
910 # define __glibcxx_bitops 201907L
911 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitops)
912 # define __cpp_lib_bitops 201907L
916 #undef __glibcxx_want_bitops
918 #if !defined(__cpp_lib_bounded_array_traits)
919 # if (__cplusplus >= 202002L)
920 # define __glibcxx_bounded_array_traits 201902L
921 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bounded_array_traits)
922 # define __cpp_lib_bounded_array_traits 201902L
926 #undef __glibcxx_want_bounded_array_traits
928 #if !defined(__cpp_lib_concepts)
929 # if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
930 # define __glibcxx_concepts 202002L
931 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_concepts)
932 # define __cpp_lib_concepts 202002L
936 #undef __glibcxx_want_concepts
938 #if !defined(__cpp_lib_optional)
939 # if (__cplusplus >= 202100L) && (__glibcxx_concepts)
940 # define __glibcxx_optional 202110L
941 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
942 # define __cpp_lib_optional 202110L
944 # elif (__cplusplus >= 202002L)
945 # define __glibcxx_optional 202106L
946 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
947 # define __cpp_lib_optional 202106L
949 # elif (__cplusplus >= 201703L)
950 # define __glibcxx_optional 201606L
951 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
952 # define __cpp_lib_optional 201606L
956 #undef __glibcxx_want_optional
958 #if !defined(__cpp_lib_destroying_delete)
959 # if (__cplusplus >= 202002L) && (__cpp_impl_destroying_delete)
960 # define __glibcxx_destroying_delete 201806L
961 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_destroying_delete)
962 # define __cpp_lib_destroying_delete 201806L
966 #undef __glibcxx_want_destroying_delete
968 #if !defined(__cpp_lib_constexpr_string_view)
969 # if (__cplusplus >= 202002L)
970 # define __glibcxx_constexpr_string_view 201811L
971 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string_view)
972 # define __cpp_lib_constexpr_string_view 201811L
976 #undef __glibcxx_want_constexpr_string_view
978 #if !defined(__cpp_lib_endian)
979 # if (__cplusplus >= 202002L)
980 # define __glibcxx_endian 201907L
981 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_endian)
982 # define __cpp_lib_endian 201907L
986 #undef __glibcxx_want_endian
988 #if !defined(__cpp_lib_int_pow2)
989 # if (__cplusplus >= 202002L)
990 # define __glibcxx_int_pow2 202002L
991 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_int_pow2)
992 # define __cpp_lib_int_pow2 202002L
996 #undef __glibcxx_want_int_pow2
998 #if !defined(__cpp_lib_integer_comparison_functions)
999 # if (__cplusplus >= 202002L)
1000 # define __glibcxx_integer_comparison_functions 202002L
1001 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_comparison_functions)
1002 # define __cpp_lib_integer_comparison_functions 202002L
1006 #undef __glibcxx_want_integer_comparison_functions
1008 #if !defined(__cpp_lib_is_constant_evaluated)
1009 # if (__cplusplus >= 202002L) && (defined(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED))
1010 # define __glibcxx_is_constant_evaluated 201811L
1011 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_constant_evaluated)
1012 # define __cpp_lib_is_constant_evaluated 201811L
1016 #undef __glibcxx_want_is_constant_evaluated
1018 #if !defined(__cpp_lib_constexpr_char_traits)
1019 # if (__cplusplus >= 202002L) && (defined(__glibcxx_is_constant_evaluated))
1020 # define __glibcxx_constexpr_char_traits 201811L
1021 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits)
1022 # define __cpp_lib_constexpr_char_traits 201811L
1024 # elif (__cplusplus >= 201703L) && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)
1025 # define __glibcxx_constexpr_char_traits 201611L
1026 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits)
1027 # define __cpp_lib_constexpr_char_traits 201611L
1031 #undef __glibcxx_want_constexpr_char_traits
1033 #if !defined(__cpp_lib_is_layout_compatible)
1034 # if (__cplusplus >= 202002L) && (__has_builtin(__is_layout_compatible) && __has_builtin(__builtin_is_corresponding_member))
1035 # define __glibcxx_is_layout_compatible 201907L
1036 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_layout_compatible)
1037 # define __cpp_lib_is_layout_compatible 201907L
1041 #undef __glibcxx_want_is_layout_compatible
1043 #if !defined(__cpp_lib_is_nothrow_convertible)
1044 # if (__cplusplus >= 202002L)
1045 # define __glibcxx_is_nothrow_convertible 201806L
1046 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_nothrow_convertible)
1047 # define __cpp_lib_is_nothrow_convertible 201806L
1051 #undef __glibcxx_want_is_nothrow_convertible
1053 #if !defined(__cpp_lib_is_pointer_interconvertible)
1054 # if (__cplusplus >= 202002L) && (__has_builtin(__is_pointer_interconvertible_base_of) && __has_builtin(__builtin_is_pointer_interconvertible_with_class))
1055 # define __glibcxx_is_pointer_interconvertible 201907L
1056 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_pointer_interconvertible)
1057 # define __cpp_lib_is_pointer_interconvertible 201907L
1061 #undef __glibcxx_want_is_pointer_interconvertible
1063 #if !defined(__cpp_lib_math_constants)
1064 # if (__cplusplus >= 202002L)
1065 # define __glibcxx_math_constants 201907L
1066 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_constants)
1067 # define __cpp_lib_math_constants 201907L
1071 #undef __glibcxx_want_math_constants
1073 #if !defined(__cpp_lib_make_obj_using_allocator)
1074 # if (__cplusplus >= 202002L) && (__cpp_concepts)
1075 # define __glibcxx_make_obj_using_allocator 201811L
1076 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_obj_using_allocator)
1077 # define __cpp_lib_make_obj_using_allocator 201811L
1081 #undef __glibcxx_want_make_obj_using_allocator
1083 #if !defined(__cpp_lib_remove_cvref)
1084 # if (__cplusplus >= 202002L)
1085 # define __glibcxx_remove_cvref 201711L
1086 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_remove_cvref)
1087 # define __cpp_lib_remove_cvref 201711L
1091 #undef __glibcxx_want_remove_cvref
1093 #if !defined(__cpp_lib_source_location)
1094 # if (__cplusplus >= 202002L) && (__has_builtin(__builtin_source_location))
1095 # define __glibcxx_source_location 201907L
1096 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_source_location)
1097 # define __cpp_lib_source_location 201907L
1101 #undef __glibcxx_want_source_location
1103 #if !defined(__cpp_lib_span)
1104 # if (__cplusplus > 202302L) && (__glibcxx_concepts)
1105 # define __glibcxx_span 202311L
1106 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span)
1107 # define __cpp_lib_span 202311L
1109 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
1110 # define __glibcxx_span 202002L
1111 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span)
1112 # define __cpp_lib_span 202002L
1116 #undef __glibcxx_want_span
1118 #if !defined(__cpp_lib_ssize)
1119 # if (__cplusplus >= 202002L)
1120 # define __glibcxx_ssize 201902L
1121 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ssize)
1122 # define __cpp_lib_ssize 201902L
1126 #undef __glibcxx_want_ssize
1128 #if !defined(__cpp_lib_three_way_comparison)
1129 # if (__cplusplus >= 202002L) && (__cpp_impl_three_way_comparison >= 201907L && __glibcxx_concepts)
1130 # define __glibcxx_three_way_comparison 201907L
1131 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_three_way_comparison)
1132 # define __cpp_lib_three_way_comparison 201907L
1136 #undef __glibcxx_want_three_way_comparison
1138 #if !defined(__cpp_lib_to_address)
1139 # if (__cplusplus >= 202002L)
1140 # define __glibcxx_to_address 201711L
1141 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_address)
1142 # define __cpp_lib_to_address 201711L
1146 #undef __glibcxx_want_to_address
1148 #if !defined(__cpp_lib_to_array)
1149 # if (__cplusplus >= 202002L) && (__cpp_generic_lambdas >= 201707L)
1150 # define __glibcxx_to_array 201907L
1151 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_array)
1152 # define __cpp_lib_to_array 201907L
1156 #undef __glibcxx_want_to_array
1158 #if !defined(__cpp_lib_type_identity)
1159 # if (__cplusplus >= 202002L)
1160 # define __glibcxx_type_identity 201806L
1161 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_identity)
1162 # define __cpp_lib_type_identity 201806L
1166 #undef __glibcxx_want_type_identity
1168 #if !defined(__cpp_lib_unwrap_ref)
1169 # if (__cplusplus >= 202002L)
1170 # define __glibcxx_unwrap_ref 201811L
1171 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unwrap_ref)
1172 # define __cpp_lib_unwrap_ref 201811L
1176 #undef __glibcxx_want_unwrap_ref
1178 #if !defined(__cpp_lib_constexpr_iterator)
1179 # if (__cplusplus >= 202002L)
1180 # define __glibcxx_constexpr_iterator 201811L
1181 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_iterator)
1182 # define __cpp_lib_constexpr_iterator 201811L
1186 #undef __glibcxx_want_constexpr_iterator
1188 #if !defined(__cpp_lib_interpolate)
1189 # if (__cplusplus >= 202002L)
1190 # define __glibcxx_interpolate 201902L
1191 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_interpolate)
1192 # define __cpp_lib_interpolate 201902L
1196 #undef __glibcxx_want_interpolate
1198 #if !defined(__cpp_lib_constexpr_utility)
1199 # if (__cplusplus >= 202002L)
1200 # define __glibcxx_constexpr_utility 201811L
1201 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_utility)
1202 # define __cpp_lib_constexpr_utility 201811L
1206 #undef __glibcxx_want_constexpr_utility
1208 #if !defined(__cpp_lib_shift)
1209 # if (__cplusplus >= 202002L)
1210 # define __glibcxx_shift 201806L
1211 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift)
1212 # define __cpp_lib_shift 201806L
1216 #undef __glibcxx_want_shift
1218 #if !defined(__cpp_lib_ranges)
1219 # if (__cplusplus > 202302L) && (__glibcxx_concepts)
1220 # define __glibcxx_ranges 202406L
1221 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
1222 # define __cpp_lib_ranges 202406L
1224 # elif (__cplusplus >= 202100L) && (__glibcxx_concepts)
1225 # define __glibcxx_ranges 202302L
1226 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
1227 # define __cpp_lib_ranges 202302L
1229 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
1230 # define __glibcxx_ranges 202110L
1231 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
1232 # define __cpp_lib_ranges 202110L
1236 #undef __glibcxx_want_ranges
1238 #if !defined(__cpp_lib_constexpr_numeric)
1239 # if (__cplusplus >= 202002L)
1240 # define __glibcxx_constexpr_numeric 201911L
1241 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_numeric)
1242 # define __cpp_lib_constexpr_numeric 201911L
1246 #undef __glibcxx_want_constexpr_numeric
1248 #if !defined(__cpp_lib_constexpr_functional)
1249 # if (__cplusplus >= 202002L)
1250 # define __glibcxx_constexpr_functional 201907L
1251 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_functional)
1252 # define __cpp_lib_constexpr_functional 201907L
1256 #undef __glibcxx_want_constexpr_functional
1258 #if !defined(__cpp_lib_constexpr_algorithms)
1259 # if (__cplusplus > 202302L)
1260 # define __glibcxx_constexpr_algorithms 202306L
1261 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms)
1262 # define __cpp_lib_constexpr_algorithms 202306L
1264 # elif (__cplusplus >= 202002L)
1265 # define __glibcxx_constexpr_algorithms 201806L
1266 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms)
1267 # define __cpp_lib_constexpr_algorithms 201806L
1271 #undef __glibcxx_want_constexpr_algorithms
1273 #if !defined(__cpp_lib_constexpr_tuple)
1274 # if (__cplusplus >= 202002L)
1275 # define __glibcxx_constexpr_tuple 201811L
1276 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_tuple)
1277 # define __cpp_lib_constexpr_tuple 201811L
1281 #undef __glibcxx_want_constexpr_tuple
1283 #if !defined(__cpp_lib_constexpr_memory)
1284 # if (__cplusplus >= 202100L) && (__cpp_constexpr_dynamic_alloc)
1285 # define __glibcxx_constexpr_memory 202202L
1286 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory)
1287 # define __cpp_lib_constexpr_memory 202202L
1289 # elif (__cplusplus >= 202002L)
1290 # define __glibcxx_constexpr_memory 201811L
1291 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory)
1292 # define __cpp_lib_constexpr_memory 201811L
1296 #undef __glibcxx_want_constexpr_memory
1298 #if !defined(__cpp_lib_atomic_shared_ptr)
1299 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1300 # define __glibcxx_atomic_shared_ptr 201711L
1301 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_shared_ptr)
1302 # define __cpp_lib_atomic_shared_ptr 201711L
1306 #undef __glibcxx_want_atomic_shared_ptr
1308 #if !defined(__cpp_lib_atomic_wait)
1309 # if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
1310 # define __glibcxx_atomic_wait 201907L
1311 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait)
1312 # define __cpp_lib_atomic_wait 201907L
1314 # elif (__cplusplus >= 202002L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED && (defined(_GLIBCXX_HAVE_LINUX_FUTEX))
1315 # define __glibcxx_atomic_wait 201907L
1316 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait)
1317 # define __cpp_lib_atomic_wait 201907L
1321 #undef __glibcxx_want_atomic_wait
1323 #if !defined(__cpp_lib_barrier)
1324 # if (__cplusplus >= 202002L) && (__cpp_aligned_new && __glibcxx_atomic_wait)
1325 # define __glibcxx_barrier 201907L
1326 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_barrier)
1327 # define __cpp_lib_barrier 201907L
1331 #undef __glibcxx_want_barrier
1333 #if !defined(__cpp_lib_format)
1334 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
1335 # define __glibcxx_format 202311L
1336 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format)
1337 # define __cpp_lib_format 202311L
1339 # elif (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1340 # define __glibcxx_format 202304L
1341 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format)
1342 # define __cpp_lib_format 202304L
1346 #undef __glibcxx_want_format
1348 #if !defined(__cpp_lib_format_uchar)
1349 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1350 # define __glibcxx_format_uchar 202311L
1351 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_uchar)
1352 # define __cpp_lib_format_uchar 202311L
1356 #undef __glibcxx_want_format_uchar
1358 #if !defined(__cpp_lib_constexpr_complex)
1359 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1360 # define __glibcxx_constexpr_complex 201711L
1361 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_complex)
1362 # define __cpp_lib_constexpr_complex 201711L
1366 #undef __glibcxx_want_constexpr_complex
1368 #if !defined(__cpp_lib_constexpr_dynamic_alloc)
1369 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1370 # define __glibcxx_constexpr_dynamic_alloc 201907L
1371 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_dynamic_alloc)
1372 # define __cpp_lib_constexpr_dynamic_alloc 201907L
1376 #undef __glibcxx_want_constexpr_dynamic_alloc
1378 #if !defined(__cpp_lib_constexpr_string)
1379 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
1380 # define __glibcxx_constexpr_string 201907L
1381 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
1382 # define __cpp_lib_constexpr_string 201907L
1384 # elif (__cplusplus >= 202002L) && !_GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
1385 # define __glibcxx_constexpr_string 201811L
1386 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
1387 # define __cpp_lib_constexpr_string 201811L
1389 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)
1390 # define __glibcxx_constexpr_string 201611L
1391 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
1392 # define __cpp_lib_constexpr_string 201611L
1396 #undef __glibcxx_want_constexpr_string
1398 #if !defined(__cpp_lib_constexpr_vector)
1399 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1400 # define __glibcxx_constexpr_vector 201907L
1401 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_vector)
1402 # define __cpp_lib_constexpr_vector 201907L
1406 #undef __glibcxx_want_constexpr_vector
1408 #if !defined(__cpp_lib_constrained_equality)
1409 # if (__cplusplus >= 202100L) && (__glibcxx_three_way_comparison)
1410 # define __glibcxx_constrained_equality 202411L
1411 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constrained_equality)
1412 # define __cpp_lib_constrained_equality 202411L
1414 # elif (__cplusplus >= 202002L) && (__glibcxx_three_way_comparison)
1415 # define __glibcxx_constrained_equality 202403L
1416 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constrained_equality)
1417 # define __cpp_lib_constrained_equality 202403L
1421 #undef __glibcxx_want_constrained_equality
1423 #if !defined(__cpp_lib_erase_if)
1424 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1425 # define __glibcxx_erase_if 202002L
1426 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_erase_if)
1427 # define __cpp_lib_erase_if 202002L
1431 #undef __glibcxx_want_erase_if
1433 #if !defined(__cpp_lib_generic_unordered_lookup)
1434 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1435 # define __glibcxx_generic_unordered_lookup 201811L
1436 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_unordered_lookup)
1437 # define __cpp_lib_generic_unordered_lookup 201811L
1441 #undef __glibcxx_want_generic_unordered_lookup
1443 #if !defined(__cpp_lib_jthread)
1444 # if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
1445 # define __glibcxx_jthread 201911L
1446 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_jthread)
1447 # define __cpp_lib_jthread 201911L
1451 #undef __glibcxx_want_jthread
1453 #if !defined(__cpp_lib_latch)
1454 # if (__cplusplus >= 202002L) && (__glibcxx_atomic_wait)
1455 # define __glibcxx_latch 201907L
1456 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_latch)
1457 # define __cpp_lib_latch 201907L
1461 #undef __glibcxx_want_latch
1463 #if !defined(__cpp_lib_list_remove_return_type)
1464 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1465 # define __glibcxx_list_remove_return_type 201806L
1466 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_list_remove_return_type)
1467 # define __cpp_lib_list_remove_return_type 201806L
1471 #undef __glibcxx_want_list_remove_return_type
1473 #if !defined(__cpp_lib_polymorphic_allocator)
1474 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1475 # define __glibcxx_polymorphic_allocator 201902L
1476 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic_allocator)
1477 # define __cpp_lib_polymorphic_allocator 201902L
1481 #undef __glibcxx_want_polymorphic_allocator
1483 #if !defined(__cpp_lib_move_iterator_concept)
1484 # if (__cplusplus >= 202002L) && (__glibcxx_concepts)
1485 # define __glibcxx_move_iterator_concept 202207L
1486 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_iterator_concept)
1487 # define __cpp_lib_move_iterator_concept 202207L
1491 #undef __glibcxx_want_move_iterator_concept
1493 #if !defined(__cpp_lib_semaphore)
1494 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED && (__glibcxx_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE)
1495 # define __glibcxx_semaphore 201907L
1496 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_semaphore)
1497 # define __cpp_lib_semaphore 201907L
1501 #undef __glibcxx_want_semaphore
1503 #if !defined(__cpp_lib_smart_ptr_for_overwrite)
1504 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
1505 # define __glibcxx_smart_ptr_for_overwrite 202002L
1506 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_smart_ptr_for_overwrite)
1507 # define __cpp_lib_smart_ptr_for_overwrite 202002L
1511 #undef __glibcxx_want_smart_ptr_for_overwrite
1513 #if !defined(__cpp_lib_syncbuf)
1514 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
1515 # define __glibcxx_syncbuf 201803L
1516 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_syncbuf)
1517 # define __cpp_lib_syncbuf 201803L
1521 #undef __glibcxx_want_syncbuf
1523 #if !defined(__cpp_lib_byteswap)
1524 # if (__cplusplus >= 202100L)
1525 # define __glibcxx_byteswap 202110L
1526 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_byteswap)
1527 # define __cpp_lib_byteswap 202110L
1531 #undef __glibcxx_want_byteswap
1533 #if !defined(__cpp_lib_constexpr_charconv)
1534 # if (__cplusplus >= 202100L)
1535 # define __glibcxx_constexpr_charconv 202207L
1536 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_charconv)
1537 # define __cpp_lib_constexpr_charconv 202207L
1541 #undef __glibcxx_want_constexpr_charconv
1543 #if !defined(__cpp_lib_constexpr_typeinfo)
1544 # if (__cplusplus >= 202100L)
1545 # define __glibcxx_constexpr_typeinfo 202106L
1546 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_typeinfo)
1547 # define __cpp_lib_constexpr_typeinfo 202106L
1551 #undef __glibcxx_want_constexpr_typeinfo
1553 #if !defined(__cpp_lib_expected)
1554 # if (__cplusplus >= 202100L) && (__cpp_concepts >= 202002L)
1555 # define __glibcxx_expected 202211L
1556 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_expected)
1557 # define __cpp_lib_expected 202211L
1561 #undef __glibcxx_want_expected
1563 #if !defined(__cpp_lib_format_ranges)
1564 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1565 # define __glibcxx_format_ranges 202207L
1566 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_ranges)
1567 # define __cpp_lib_format_ranges 202207L
1571 #undef __glibcxx_want_format_ranges
1573 #if !defined(__cpp_lib_freestanding_algorithm)
1574 # if (__cplusplus >= 202100L)
1575 # define __glibcxx_freestanding_algorithm 202311L
1576 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_algorithm)
1577 # define __cpp_lib_freestanding_algorithm 202311L
1581 #undef __glibcxx_want_freestanding_algorithm
1583 #if !defined(__cpp_lib_freestanding_array)
1584 # if (__cplusplus >= 202100L)
1585 # define __glibcxx_freestanding_array 202311L
1586 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_array)
1587 # define __cpp_lib_freestanding_array 202311L
1591 #undef __glibcxx_want_freestanding_array
1593 #if !defined(__cpp_lib_freestanding_cstring)
1594 # if (__cplusplus >= 202100L)
1595 # define __glibcxx_freestanding_cstring 202311L
1596 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_cstring)
1597 # define __cpp_lib_freestanding_cstring 202311L
1601 #undef __glibcxx_want_freestanding_cstring
1603 #if !defined(__cpp_lib_freestanding_expected)
1604 # if (__cplusplus >= 202100L) && (__cpp_lib_expected)
1605 # define __glibcxx_freestanding_expected 202311L
1606 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_expected)
1607 # define __cpp_lib_freestanding_expected 202311L
1611 #undef __glibcxx_want_freestanding_expected
1613 #if !defined(__cpp_lib_freestanding_optional)
1614 # if (__cplusplus >= 202100L)
1615 # define __glibcxx_freestanding_optional 202311L
1616 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_optional)
1617 # define __cpp_lib_freestanding_optional 202311L
1621 #undef __glibcxx_want_freestanding_optional
1623 #if !defined(__cpp_lib_freestanding_string_view)
1624 # if (__cplusplus >= 202100L)
1625 # define __glibcxx_freestanding_string_view 202311L
1626 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_string_view)
1627 # define __cpp_lib_freestanding_string_view 202311L
1631 #undef __glibcxx_want_freestanding_string_view
1633 #if !defined(__cpp_lib_freestanding_variant)
1634 # if (__cplusplus >= 202100L)
1635 # define __glibcxx_freestanding_variant 202311L
1636 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_variant)
1637 # define __cpp_lib_freestanding_variant 202311L
1641 #undef __glibcxx_want_freestanding_variant
1643 #if !defined(__cpp_lib_invoke_r)
1644 # if (__cplusplus >= 202100L)
1645 # define __glibcxx_invoke_r 202106L
1646 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke_r)
1647 # define __cpp_lib_invoke_r 202106L
1651 #undef __glibcxx_want_invoke_r
1653 #if !defined(__cpp_lib_is_scoped_enum)
1654 # if (__cplusplus >= 202100L)
1655 # define __glibcxx_is_scoped_enum 202011L
1656 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_scoped_enum)
1657 # define __cpp_lib_is_scoped_enum 202011L
1661 #undef __glibcxx_want_is_scoped_enum
1663 #if !defined(__cpp_lib_reference_from_temporary)
1664 # if (__cplusplus >= 202100L) && (__has_builtin(__reference_constructs_from_temporary) && __has_builtin(__reference_converts_from_temporary))
1665 # define __glibcxx_reference_from_temporary 202202L
1666 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_from_temporary)
1667 # define __cpp_lib_reference_from_temporary 202202L
1671 #undef __glibcxx_want_reference_from_temporary
1673 #if !defined(__cpp_lib_containers_ranges)
1674 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1675 # define __glibcxx_containers_ranges 202202L
1676 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_containers_ranges)
1677 # define __cpp_lib_containers_ranges 202202L
1681 #undef __glibcxx_want_containers_ranges
1683 #if !defined(__cpp_lib_ranges_to_container)
1684 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1685 # define __glibcxx_ranges_to_container 202202L
1686 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_container)
1687 # define __cpp_lib_ranges_to_container 202202L
1691 #undef __glibcxx_want_ranges_to_container
1693 #if !defined(__cpp_lib_ranges_zip)
1694 # if (__cplusplus >= 202100L)
1695 # define __glibcxx_ranges_zip 202110L
1696 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_zip)
1697 # define __cpp_lib_ranges_zip 202110L
1701 #undef __glibcxx_want_ranges_zip
1703 #if !defined(__cpp_lib_ranges_chunk)
1704 # if (__cplusplus >= 202100L)
1705 # define __glibcxx_ranges_chunk 202202L
1706 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk)
1707 # define __cpp_lib_ranges_chunk 202202L
1711 #undef __glibcxx_want_ranges_chunk
1713 #if !defined(__cpp_lib_ranges_slide)
1714 # if (__cplusplus >= 202100L)
1715 # define __glibcxx_ranges_slide 202202L
1716 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_slide)
1717 # define __cpp_lib_ranges_slide 202202L
1721 #undef __glibcxx_want_ranges_slide
1723 #if !defined(__cpp_lib_ranges_chunk_by)
1724 # if (__cplusplus >= 202100L)
1725 # define __glibcxx_ranges_chunk_by 202202L
1726 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk_by)
1727 # define __cpp_lib_ranges_chunk_by 202202L
1731 #undef __glibcxx_want_ranges_chunk_by
1733 #if !defined(__cpp_lib_ranges_join_with)
1734 # if (__cplusplus >= 202100L)
1735 # define __glibcxx_ranges_join_with 202202L
1736 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_join_with)
1737 # define __cpp_lib_ranges_join_with 202202L
1741 #undef __glibcxx_want_ranges_join_with
1743 #if !defined(__cpp_lib_ranges_repeat)
1744 # if (__cplusplus >= 202100L)
1745 # define __glibcxx_ranges_repeat 202207L
1746 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_repeat)
1747 # define __cpp_lib_ranges_repeat 202207L
1751 #undef __glibcxx_want_ranges_repeat
1753 #if !defined(__cpp_lib_ranges_stride)
1754 # if (__cplusplus >= 202100L)
1755 # define __glibcxx_ranges_stride 202207L
1756 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_stride)
1757 # define __cpp_lib_ranges_stride 202207L
1761 #undef __glibcxx_want_ranges_stride
1763 #if !defined(__cpp_lib_ranges_cartesian_product)
1764 # if (__cplusplus >= 202100L)
1765 # define __glibcxx_ranges_cartesian_product 202207L
1766 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cartesian_product)
1767 # define __cpp_lib_ranges_cartesian_product 202207L
1771 #undef __glibcxx_want_ranges_cartesian_product
1773 #if !defined(__cpp_lib_ranges_as_rvalue)
1774 # if (__cplusplus >= 202100L)
1775 # define __glibcxx_ranges_as_rvalue 202207L
1776 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_rvalue)
1777 # define __cpp_lib_ranges_as_rvalue 202207L
1781 #undef __glibcxx_want_ranges_as_rvalue
1783 #if !defined(__cpp_lib_ranges_as_const)
1784 # if (__cplusplus >= 202100L)
1785 # define __glibcxx_ranges_as_const 202311L
1786 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_const)
1787 # define __cpp_lib_ranges_as_const 202311L
1791 #undef __glibcxx_want_ranges_as_const
1793 #if !defined(__cpp_lib_ranges_enumerate)
1794 # if (__cplusplus >= 202100L)
1795 # define __glibcxx_ranges_enumerate 202302L
1796 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_enumerate)
1797 # define __cpp_lib_ranges_enumerate 202302L
1801 #undef __glibcxx_want_ranges_enumerate
1803 #if !defined(__cpp_lib_ranges_fold)
1804 # if (__cplusplus >= 202100L)
1805 # define __glibcxx_ranges_fold 202207L
1806 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_fold)
1807 # define __cpp_lib_ranges_fold 202207L
1811 #undef __glibcxx_want_ranges_fold
1813 #if !defined(__cpp_lib_ranges_contains)
1814 # if (__cplusplus >= 202100L)
1815 # define __glibcxx_ranges_contains 202207L
1816 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_contains)
1817 # define __cpp_lib_ranges_contains 202207L
1821 #undef __glibcxx_want_ranges_contains
1823 #if !defined(__cpp_lib_ranges_iota)
1824 # if (__cplusplus >= 202100L)
1825 # define __glibcxx_ranges_iota 202202L
1826 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_iota)
1827 # define __cpp_lib_ranges_iota 202202L
1831 #undef __glibcxx_want_ranges_iota
1833 #if !defined(__cpp_lib_ranges_find_last)
1834 # if (__cplusplus >= 202100L)
1835 # define __glibcxx_ranges_find_last 202207L
1836 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_find_last)
1837 # define __cpp_lib_ranges_find_last 202207L
1841 #undef __glibcxx_want_ranges_find_last
1843 #if !defined(__cpp_lib_constexpr_bitset)
1844 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc)
1845 # define __glibcxx_constexpr_bitset 202202L
1846 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_bitset)
1847 # define __cpp_lib_constexpr_bitset 202202L
1851 #undef __glibcxx_want_constexpr_bitset
1853 #if !defined(__cpp_lib_stdatomic_h)
1854 # if (__cplusplus >= 202100L)
1855 # define __glibcxx_stdatomic_h 202011L
1856 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdatomic_h)
1857 # define __cpp_lib_stdatomic_h 202011L
1861 #undef __glibcxx_want_stdatomic_h
1863 #if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
1864 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1865 # define __glibcxx_adaptor_iterator_pair_constructor 202106L
1866 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_adaptor_iterator_pair_constructor)
1867 # define __cpp_lib_adaptor_iterator_pair_constructor 202106L
1871 #undef __glibcxx_want_adaptor_iterator_pair_constructor
1873 #if !defined(__cpp_lib_flat_map)
1874 # if (__cplusplus >= 202100L)
1875 # define __glibcxx_flat_map 202207L
1876 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_map)
1877 # define __cpp_lib_flat_map 202207L
1881 #undef __glibcxx_want_flat_map
1883 #if !defined(__cpp_lib_flat_set)
1884 # if (__cplusplus >= 202100L)
1885 # define __glibcxx_flat_set 202207L
1886 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_set)
1887 # define __cpp_lib_flat_set 202207L
1891 #undef __glibcxx_want_flat_set
1893 #if !defined(__cpp_lib_formatters)
1894 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1895 # define __glibcxx_formatters 202302L
1896 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_formatters)
1897 # define __cpp_lib_formatters 202302L
1901 #undef __glibcxx_want_formatters
1903 #if !defined(__cpp_lib_forward_like)
1904 # if (__cplusplus >= 202100L)
1905 # define __glibcxx_forward_like 202207L
1906 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_forward_like)
1907 # define __cpp_lib_forward_like 202207L
1911 #undef __glibcxx_want_forward_like
1913 #if !defined(__cpp_lib_generator)
1914 # if (__cplusplus >= 202100L) && (__glibcxx_coroutine && __cpp_sized_deallocation)
1915 # define __glibcxx_generator 202207L
1916 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generator)
1917 # define __cpp_lib_generator 202207L
1921 #undef __glibcxx_want_generator
1923 #if !defined(__cpp_lib_ios_noreplace)
1924 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1925 # define __glibcxx_ios_noreplace 202207L
1926 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ios_noreplace)
1927 # define __cpp_lib_ios_noreplace 202207L
1931 #undef __glibcxx_want_ios_noreplace
1933 #if !defined(__cpp_lib_move_only_function)
1934 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1935 # define __glibcxx_move_only_function 202110L
1936 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_only_function)
1937 # define __cpp_lib_move_only_function 202110L
1941 #undef __glibcxx_want_move_only_function
1943 #if !defined(__cpp_lib_out_ptr)
1944 # if (__cplusplus >= 202100L)
1945 # define __glibcxx_out_ptr 202311L
1946 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_out_ptr)
1947 # define __cpp_lib_out_ptr 202311L
1951 #undef __glibcxx_want_out_ptr
1953 #if !defined(__cpp_lib_print)
1954 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1955 # define __glibcxx_print 202211L
1956 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_print)
1957 # define __cpp_lib_print 202211L
1961 #undef __glibcxx_want_print
1963 #if !defined(__cpp_lib_spanstream)
1964 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__glibcxx_span)
1965 # define __glibcxx_spanstream 202106L
1966 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_spanstream)
1967 # define __cpp_lib_spanstream 202106L
1971 #undef __glibcxx_want_spanstream
1973 #if !defined(__cpp_lib_stacktrace)
1974 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE)
1975 # define __glibcxx_stacktrace 202011L
1976 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stacktrace)
1977 # define __cpp_lib_stacktrace 202011L
1981 #undef __glibcxx_want_stacktrace
1983 #if !defined(__cpp_lib_string_contains)
1984 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1985 # define __glibcxx_string_contains 202011L
1986 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_contains)
1987 # define __cpp_lib_string_contains 202011L
1991 #undef __glibcxx_want_string_contains
1993 #if !defined(__cpp_lib_string_resize_and_overwrite)
1994 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED
1995 # define __glibcxx_string_resize_and_overwrite 202110L
1996 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_resize_and_overwrite)
1997 # define __cpp_lib_string_resize_and_overwrite 202110L
2001 #undef __glibcxx_want_string_resize_and_overwrite
2003 #if !defined(__cpp_lib_to_underlying)
2004 # if (__cplusplus >= 202100L)
2005 # define __glibcxx_to_underlying 202102L
2006 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_underlying)
2007 # define __cpp_lib_to_underlying 202102L
2011 #undef __glibcxx_want_to_underlying
2013 #if !defined(__cpp_lib_tuple_like)
2014 # if (__cplusplus > 202302L) && (__cpp_explicit_this_parameter >= 202110L)
2015 # define __glibcxx_tuple_like 202311L
2016 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like)
2017 # define __cpp_lib_tuple_like 202311L
2019 # elif (__cplusplus >= 202100L)
2020 # define __glibcxx_tuple_like 202207L
2021 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like)
2022 # define __cpp_lib_tuple_like 202207L
2026 #undef __glibcxx_want_tuple_like
2028 #if !defined(__cpp_lib_unreachable)
2029 # if (__cplusplus >= 202100L)
2030 # define __glibcxx_unreachable 202202L
2031 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unreachable)
2032 # define __cpp_lib_unreachable 202202L
2036 #undef __glibcxx_want_unreachable
2038 #if !defined(__cpp_lib_algorithm_default_value_type)
2039 # if (__cplusplus > 202302L)
2040 # define __glibcxx_algorithm_default_value_type 202403L
2041 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_default_value_type)
2042 # define __cpp_lib_algorithm_default_value_type 202403L
2046 #undef __glibcxx_want_algorithm_default_value_type
2048 #if !defined(__cpp_lib_constexpr_new)
2049 # if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L)
2050 # define __glibcxx_constexpr_new 202406L
2051 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_new)
2052 # define __cpp_lib_constexpr_new 202406L
2056 #undef __glibcxx_want_constexpr_new
2058 #if !defined(__cpp_lib_fstream_native_handle)
2059 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED
2060 # define __glibcxx_fstream_native_handle 202306L
2061 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_fstream_native_handle)
2062 # define __cpp_lib_fstream_native_handle 202306L
2066 #undef __glibcxx_want_fstream_native_handle
2068 #if !defined(__cpp_lib_is_virtual_base_of)
2069 # if (__cplusplus > 202302L) && (__has_builtin(__builtin_is_virtual_base_of))
2070 # define __glibcxx_is_virtual_base_of 202406L
2071 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_virtual_base_of)
2072 # define __cpp_lib_is_virtual_base_of 202406L
2076 #undef __glibcxx_want_is_virtual_base_of
2078 #if !defined(__cpp_lib_ranges_cache_latest)
2079 # if (__cplusplus > 202302L)
2080 # define __glibcxx_ranges_cache_latest 202411L
2081 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cache_latest)
2082 # define __cpp_lib_ranges_cache_latest 202411L
2086 #undef __glibcxx_want_ranges_cache_latest
2088 #if !defined(__cpp_lib_ranges_concat)
2089 # if (__cplusplus > 202302L) && (__cpp_pack_indexing)
2090 # define __glibcxx_ranges_concat 202403L
2091 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_concat)
2092 # define __cpp_lib_ranges_concat 202403L
2096 #undef __glibcxx_want_ranges_concat
2098 #if !defined(__cpp_lib_ratio)
2099 # if (__cplusplus > 202302L)
2100 # define __glibcxx_ratio 202306L
2101 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ratio)
2102 # define __cpp_lib_ratio 202306L
2106 #undef __glibcxx_want_ratio
2108 #if !defined(__cpp_lib_reference_wrapper)
2109 # if (__cplusplus > 202302L)
2110 # define __glibcxx_reference_wrapper 202403L
2111 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_wrapper)
2112 # define __cpp_lib_reference_wrapper 202403L
2116 #undef __glibcxx_want_reference_wrapper
2118 #if !defined(__cpp_lib_saturation_arithmetic)
2119 # if (__cplusplus > 202302L)
2120 # define __glibcxx_saturation_arithmetic 202311L
2121 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_saturation_arithmetic)
2122 # define __cpp_lib_saturation_arithmetic 202311L
2126 #undef __glibcxx_want_saturation_arithmetic
2128 #if !defined(__cpp_lib_span_initializer_list)
2129 # if (__cplusplus > 202302L)
2130 # define __glibcxx_span_initializer_list 202311L
2131 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span_initializer_list)
2132 # define __cpp_lib_span_initializer_list 202311L
2136 #undef __glibcxx_want_span_initializer_list
2138 #if !defined(__cpp_lib_text_encoding)
2139 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_USE_NL_LANGINFO_L)
2140 # define __glibcxx_text_encoding 202306L
2141 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_text_encoding)
2142 # define __cpp_lib_text_encoding 202306L
2146 #undef __glibcxx_want_text_encoding
2148 #if !defined(__cpp_lib_ranges_to_input)
2149 # if (__cplusplus > 202302L)
2150 # define __glibcxx_ranges_to_input 202502L
2151 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_input)
2152 # define __cpp_lib_ranges_to_input 202502L
2156 #undef __glibcxx_want_ranges_to_input
2158 #if !defined(__cpp_lib_to_string)
2159 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
2160 # define __glibcxx_to_string 202306L
2161 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_string)
2162 # define __cpp_lib_to_string 202306L
2166 #undef __glibcxx_want_to_string
2168 #if !defined(__cpp_lib_modules)
2169 # if (__cplusplus >= 202002L) && (__cpp_modules)
2170 # define __glibcxx_modules 202207L
2171 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_modules)
2172 # define __cpp_lib_modules 202207L
2176 #undef __glibcxx_want_modules
2178 #undef __glibcxx_want_all