1 // Copyright (C) 2023-2024 Free Software Foundation, Inc. 2 3 // This file is part of the GNU ISO C++ Library. This library is free 4 // software; you can redistribute it and/or modify it under the 5 // terms of the GNU General Public License as published by the 6 // Free Software Foundation; either version 3, or (at your option) 7 // any later version. 8 9 // This library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 14 // Under Section 7 of GPL version 3, you are granted additional 15 // permissions described in the GCC Runtime Library Exception, version 16 // 3.1, as published by the Free Software Foundation. 17 18 // You should have received a copy of the GNU General Public License and 19 // a copy of the GCC Runtime Library Exception along with this program; 20 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 21 // <http://www.gnu.org/licenses/>. 22 23 // DO NOT EDIT THIS FILE (version.h) 24 // 25 // It has been AutoGen-ed 26 // From the definitions version.def 27 // and the template file version.tpl 28 29 /** @file bits/version.h 30 * This is an internal header file, included by other library headers. 31 * Do not attempt to use it directly. @headername{version} 32 */ 33 34 // Usage guide: 35 // 36 // In your usual header, do something like: 37 // 38 // #define __glibcxx_want_ranges 39 // #define __glibcxx_want_concepts 40 // #include <bits/version.h> 41 // 42 // This will generate the FTMs you named, and let you use them in your code as 43 // if it was user code. All macros are also exposed under __glibcxx_NAME even 44 // if unwanted, to permit bits and other FTMs to depend on them for condtional 45 // computation without exposing extra FTMs to user code. 46 47 #pragma GCC system_header 48 49 #include <bits/c++config.h> 50 51 #if !defined(__cpp_lib_incomplete_container_elements) 52 # if _GLIBCXX_HOSTED 53 # define __glibcxx_incomplete_container_elements 201505L 54 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_incomplete_container_elements) 55 # define __cpp_lib_incomplete_container_elements 201505L 56 # endif 57 # endif 58 #endif /* !defined(__cpp_lib_incomplete_container_elements) && defined(__glibcxx_want_incomplete_container_elements) */ 59 #undef __glibcxx_want_incomplete_container_elements 60 61 #if !defined(__cpp_lib_uncaught_exceptions) 62 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 199711L)) 63 # define __glibcxx_uncaught_exceptions 201411L 64 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_uncaught_exceptions) 65 # define __cpp_lib_uncaught_exceptions 201411L 66 # endif 67 # endif 68 #endif /* !defined(__cpp_lib_uncaught_exceptions) && defined(__glibcxx_want_uncaught_exceptions) */ 69 #undef __glibcxx_want_uncaught_exceptions 70 71 #if !defined(__cpp_lib_allocator_traits_is_always_equal) 72 # if (__cplusplus >= 201103L) 73 # define __glibcxx_allocator_traits_is_always_equal 201411L 74 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_allocator_traits_is_always_equal) 75 # define __cpp_lib_allocator_traits_is_always_equal 201411L 76 # endif 77 # endif 78 #endif /* !defined(__cpp_lib_allocator_traits_is_always_equal) && defined(__glibcxx_want_allocator_traits_is_always_equal) */ 79 #undef __glibcxx_want_allocator_traits_is_always_equal 80 81 #if !defined(__cpp_lib_is_null_pointer) 82 # if (__cplusplus >= 201103L) 83 # define __glibcxx_is_null_pointer 201309L 84 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_null_pointer) 85 # define __cpp_lib_is_null_pointer 201309L 86 # endif 87 # endif 88 #endif /* !defined(__cpp_lib_is_null_pointer) && defined(__glibcxx_want_is_null_pointer) */ 89 #undef __glibcxx_want_is_null_pointer 90 91 #if !defined(__cpp_lib_result_of_sfinae) 92 # if (__cplusplus >= 201103L) 93 # define __glibcxx_result_of_sfinae 201210L 94 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_result_of_sfinae) 95 # define __cpp_lib_result_of_sfinae 201210L 96 # endif 97 # endif 98 #endif /* !defined(__cpp_lib_result_of_sfinae) && defined(__glibcxx_want_result_of_sfinae) */ 99 #undef __glibcxx_want_result_of_sfinae 100 101 #if !defined(__cpp_lib_shared_ptr_arrays) 102 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 103 # define __glibcxx_shared_ptr_arrays 201707L 104 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays) 105 # define __cpp_lib_shared_ptr_arrays 201707L 106 # endif 107 # elif (__cplusplus >= 201103L) && _GLIBCXX_HOSTED 108 # define __glibcxx_shared_ptr_arrays 201611L 109 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays) 110 # define __cpp_lib_shared_ptr_arrays 201611L 111 # endif 112 # endif 113 #endif /* !defined(__cpp_lib_shared_ptr_arrays) && defined(__glibcxx_want_shared_ptr_arrays) */ 114 #undef __glibcxx_want_shared_ptr_arrays 115 116 #if !defined(__cpp_lib_is_swappable) 117 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) 118 # define __glibcxx_is_swappable 201603L 119 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_swappable) 120 # define __cpp_lib_is_swappable 201603L 121 # endif 122 # endif 123 #endif /* !defined(__cpp_lib_is_swappable) && defined(__glibcxx_want_is_swappable) */ 124 #undef __glibcxx_want_is_swappable 125 126 #if !defined(__cpp_lib_void_t) 127 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) 128 # define __glibcxx_void_t 201411L 129 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_void_t) 130 # define __cpp_lib_void_t 201411L 131 # endif 132 # endif 133 #endif /* !defined(__cpp_lib_void_t) && defined(__glibcxx_want_void_t) */ 134 #undef __glibcxx_want_void_t 135 136 #if !defined(__cpp_lib_enable_shared_from_this) 137 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) && _GLIBCXX_HOSTED 138 # define __glibcxx_enable_shared_from_this 201603L 139 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_enable_shared_from_this) 140 # define __cpp_lib_enable_shared_from_this 201603L 141 # endif 142 # endif 143 #endif /* !defined(__cpp_lib_enable_shared_from_this) && defined(__glibcxx_want_enable_shared_from_this) */ 144 #undef __glibcxx_want_enable_shared_from_this 145 146 #if !defined(__cpp_lib_math_spec_funcs) 147 # if (__cplusplus >= 201103L) 148 # define __glibcxx_math_spec_funcs 201003L 149 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_spec_funcs) 150 # define __STDCPP_MATH_SPEC_FUNCS__ 201003L 151 # endif 152 # endif 153 #endif /* !defined(__cpp_lib_math_spec_funcs) && defined(__glibcxx_want_math_spec_funcs) */ 154 #undef __glibcxx_want_math_spec_funcs 155 156 #if !defined(__cpp_lib_coroutine) 157 # if (__cplusplus >= 201402L) && (__cpp_impl_coroutine) 158 # define __glibcxx_coroutine 201902L 159 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_coroutine) 160 # define __cpp_lib_coroutine 201902L 161 # endif 162 # endif 163 #endif /* !defined(__cpp_lib_coroutine) && defined(__glibcxx_want_coroutine) */ 164 #undef __glibcxx_want_coroutine 165 166 #if !defined(__cpp_lib_exchange_function) 167 # if (__cplusplus >= 201402L) 168 # define __glibcxx_exchange_function 201304L 169 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_exchange_function) 170 # define __cpp_lib_exchange_function 201304L 171 # endif 172 # endif 173 #endif /* !defined(__cpp_lib_exchange_function) && defined(__glibcxx_want_exchange_function) */ 174 #undef __glibcxx_want_exchange_function 175 176 #if !defined(__cpp_lib_integer_sequence) 177 # if (__cplusplus >= 201402L) 178 # define __glibcxx_integer_sequence 201304L 179 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence) 180 # define __cpp_lib_integer_sequence 201304L 181 # endif 182 # endif 183 #endif /* !defined(__cpp_lib_integer_sequence) && defined(__glibcxx_want_integer_sequence) */ 184 #undef __glibcxx_want_integer_sequence 185 186 #if !defined(__cpp_lib_integral_constant_callable) 187 # if (__cplusplus >= 201402L) 188 # define __glibcxx_integral_constant_callable 201304L 189 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integral_constant_callable) 190 # define __cpp_lib_integral_constant_callable 201304L 191 # endif 192 # endif 193 #endif /* !defined(__cpp_lib_integral_constant_callable) && defined(__glibcxx_want_integral_constant_callable) */ 194 #undef __glibcxx_want_integral_constant_callable 195 196 #if !defined(__cpp_lib_is_final) 197 # if (__cplusplus >= 201402L) 198 # define __glibcxx_is_final 201402L 199 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_final) 200 # define __cpp_lib_is_final 201402L 201 # endif 202 # endif 203 #endif /* !defined(__cpp_lib_is_final) && defined(__glibcxx_want_is_final) */ 204 #undef __glibcxx_want_is_final 205 206 #if !defined(__cpp_lib_make_reverse_iterator) 207 # if (__cplusplus >= 201402L) 208 # define __glibcxx_make_reverse_iterator 201402L 209 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_reverse_iterator) 210 # define __cpp_lib_make_reverse_iterator 201402L 211 # endif 212 # endif 213 #endif /* !defined(__cpp_lib_make_reverse_iterator) && defined(__glibcxx_want_make_reverse_iterator) */ 214 #undef __glibcxx_want_make_reverse_iterator 215 216 #if !defined(__cpp_lib_null_iterators) 217 # if (__cplusplus >= 201402L) 218 # define __glibcxx_null_iterators 201304L 219 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_null_iterators) 220 # define __cpp_lib_null_iterators 201304L 221 # endif 222 # endif 223 #endif /* !defined(__cpp_lib_null_iterators) && defined(__glibcxx_want_null_iterators) */ 224 #undef __glibcxx_want_null_iterators 225 226 #if !defined(__cpp_lib_transformation_trait_aliases) 227 # if (__cplusplus >= 201402L) 228 # define __glibcxx_transformation_trait_aliases 201304L 229 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_transformation_trait_aliases) 230 # define __cpp_lib_transformation_trait_aliases 201304L 231 # endif 232 # endif 233 #endif /* !defined(__cpp_lib_transformation_trait_aliases) && defined(__glibcxx_want_transformation_trait_aliases) */ 234 #undef __glibcxx_want_transformation_trait_aliases 235 236 #if !defined(__cpp_lib_transparent_operators) 237 # if (__cplusplus >= 201402L) 238 # define __glibcxx_transparent_operators 201510L 239 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_transparent_operators) 240 # define __cpp_lib_transparent_operators 201510L 241 # endif 242 # endif 243 #endif /* !defined(__cpp_lib_transparent_operators) && defined(__glibcxx_want_transparent_operators) */ 244 #undef __glibcxx_want_transparent_operators 245 246 #if !defined(__cpp_lib_tuple_element_t) 247 # if (__cplusplus >= 201402L) 248 # define __glibcxx_tuple_element_t 201402L 249 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_element_t) 250 # define __cpp_lib_tuple_element_t 201402L 251 # endif 252 # endif 253 #endif /* !defined(__cpp_lib_tuple_element_t) && defined(__glibcxx_want_tuple_element_t) */ 254 #undef __glibcxx_want_tuple_element_t 255 256 #if !defined(__cpp_lib_tuples_by_type) 257 # if (__cplusplus >= 201402L) 258 # define __glibcxx_tuples_by_type 201304L 259 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuples_by_type) 260 # define __cpp_lib_tuples_by_type 201304L 261 # endif 262 # endif 263 #endif /* !defined(__cpp_lib_tuples_by_type) && defined(__glibcxx_want_tuples_by_type) */ 264 #undef __glibcxx_want_tuples_by_type 265 266 #if !defined(__cpp_lib_robust_nonmodifying_seq_ops) 267 # if (__cplusplus >= 201402L) 268 # define __glibcxx_robust_nonmodifying_seq_ops 201304L 269 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_robust_nonmodifying_seq_ops) 270 # define __cpp_lib_robust_nonmodifying_seq_ops 201304L 271 # endif 272 # endif 273 #endif /* !defined(__cpp_lib_robust_nonmodifying_seq_ops) && defined(__glibcxx_want_robust_nonmodifying_seq_ops) */ 274 #undef __glibcxx_want_robust_nonmodifying_seq_ops 275 276 #if !defined(__cpp_lib_to_chars) 277 # if (__cplusplus > 202302L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32) 278 # define __glibcxx_to_chars 202306L 279 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars) 280 # define __cpp_lib_to_chars 202306L 281 # endif 282 # elif (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32) 283 # define __glibcxx_to_chars 201611L 284 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars) 285 # define __cpp_lib_to_chars 201611L 286 # endif 287 # endif 288 #endif /* !defined(__cpp_lib_to_chars) && defined(__glibcxx_want_to_chars) */ 289 #undef __glibcxx_want_to_chars 290 291 #if !defined(__cpp_lib_chrono_udls) 292 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 293 # define __glibcxx_chrono_udls 201304L 294 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_udls) 295 # define __cpp_lib_chrono_udls 201304L 296 # endif 297 # endif 298 #endif /* !defined(__cpp_lib_chrono_udls) && defined(__glibcxx_want_chrono_udls) */ 299 #undef __glibcxx_want_chrono_udls 300 301 #if !defined(__cpp_lib_complex_udls) 302 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 303 # define __glibcxx_complex_udls 201309L 304 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_complex_udls) 305 # define __cpp_lib_complex_udls 201309L 306 # endif 307 # endif 308 #endif /* !defined(__cpp_lib_complex_udls) && defined(__glibcxx_want_complex_udls) */ 309 #undef __glibcxx_want_complex_udls 310 311 #if !defined(__cpp_lib_generic_associative_lookup) 312 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 313 # define __glibcxx_generic_associative_lookup 201304L 314 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_associative_lookup) 315 # define __cpp_lib_generic_associative_lookup 201304L 316 # endif 317 # endif 318 #endif /* !defined(__cpp_lib_generic_associative_lookup) && defined(__glibcxx_want_generic_associative_lookup) */ 319 #undef __glibcxx_want_generic_associative_lookup 320 321 #if !defined(__cpp_lib_make_unique) 322 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 323 # define __glibcxx_make_unique 201304L 324 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_unique) 325 # define __cpp_lib_make_unique 201304L 326 # endif 327 # endif 328 #endif /* !defined(__cpp_lib_make_unique) && defined(__glibcxx_want_make_unique) */ 329 #undef __glibcxx_want_make_unique 330 331 #if !defined(__cpp_lib_quoted_string_io) 332 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 333 # define __glibcxx_quoted_string_io 201304L 334 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_quoted_string_io) 335 # define __cpp_lib_quoted_string_io 201304L 336 # endif 337 # endif 338 #endif /* !defined(__cpp_lib_quoted_string_io) && defined(__glibcxx_want_quoted_string_io) */ 339 #undef __glibcxx_want_quoted_string_io 340 341 #if !defined(__cpp_lib_shared_timed_mutex) 342 # if (__cplusplus >= 201402L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 343 # define __glibcxx_shared_timed_mutex 201402L 344 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_timed_mutex) 345 # define __cpp_lib_shared_timed_mutex 201402L 346 # endif 347 # endif 348 #endif /* !defined(__cpp_lib_shared_timed_mutex) && defined(__glibcxx_want_shared_timed_mutex) */ 349 #undef __glibcxx_want_shared_timed_mutex 350 351 #if !defined(__cpp_lib_string_udls) 352 # if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED 353 # define __glibcxx_string_udls 201304L 354 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_udls) 355 # define __cpp_lib_string_udls 201304L 356 # endif 357 # endif 358 #endif /* !defined(__cpp_lib_string_udls) && defined(__glibcxx_want_string_udls) */ 359 #undef __glibcxx_want_string_udls 360 361 #if !defined(__cpp_lib_addressof_constexpr) 362 # if (__cplusplus >= 201703L) 363 # define __glibcxx_addressof_constexpr 201603L 364 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_addressof_constexpr) 365 # define __cpp_lib_addressof_constexpr 201603L 366 # endif 367 # endif 368 #endif /* !defined(__cpp_lib_addressof_constexpr) && defined(__glibcxx_want_addressof_constexpr) */ 369 #undef __glibcxx_want_addressof_constexpr 370 371 #if !defined(__cpp_lib_any) 372 # if (__cplusplus >= 201703L) 373 # define __glibcxx_any 201606L 374 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_any) 375 # define __cpp_lib_any 201606L 376 # endif 377 # endif 378 #endif /* !defined(__cpp_lib_any) && defined(__glibcxx_want_any) */ 379 #undef __glibcxx_want_any 380 381 #if !defined(__cpp_lib_apply) 382 # if (__cplusplus >= 201703L) 383 # define __glibcxx_apply 201603L 384 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_apply) 385 # define __cpp_lib_apply 201603L 386 # endif 387 # endif 388 #endif /* !defined(__cpp_lib_apply) && defined(__glibcxx_want_apply) */ 389 #undef __glibcxx_want_apply 390 391 #if !defined(__cpp_lib_as_const) 392 # if (__cplusplus >= 201703L) 393 # define __glibcxx_as_const 201510L 394 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_as_const) 395 # define __cpp_lib_as_const 201510L 396 # endif 397 # endif 398 #endif /* !defined(__cpp_lib_as_const) && defined(__glibcxx_want_as_const) */ 399 #undef __glibcxx_want_as_const 400 401 #if !defined(__cpp_lib_atomic_is_always_lock_free) 402 # if (__cplusplus >= 201703L) 403 # define __glibcxx_atomic_is_always_lock_free 201603L 404 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_is_always_lock_free) 405 # define __cpp_lib_atomic_is_always_lock_free 201603L 406 # endif 407 # endif 408 #endif /* !defined(__cpp_lib_atomic_is_always_lock_free) && defined(__glibcxx_want_atomic_is_always_lock_free) */ 409 #undef __glibcxx_want_atomic_is_always_lock_free 410 411 #if !defined(__cpp_lib_bool_constant) 412 # if (__cplusplus >= 201703L) 413 # define __glibcxx_bool_constant 201505L 414 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bool_constant) 415 # define __cpp_lib_bool_constant 201505L 416 # endif 417 # endif 418 #endif /* !defined(__cpp_lib_bool_constant) && defined(__glibcxx_want_bool_constant) */ 419 #undef __glibcxx_want_bool_constant 420 421 #if !defined(__cpp_lib_byte) 422 # if (__cplusplus >= 201703L) 423 # define __glibcxx_byte 201603L 424 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_byte) 425 # define __cpp_lib_byte 201603L 426 # endif 427 # endif 428 #endif /* !defined(__cpp_lib_byte) && defined(__glibcxx_want_byte) */ 429 #undef __glibcxx_want_byte 430 431 #if !defined(__cpp_lib_has_unique_object_representations) 432 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP)) 433 # define __glibcxx_has_unique_object_representations 201606L 434 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_has_unique_object_representations) 435 # define __cpp_lib_has_unique_object_representations 201606L 436 # endif 437 # endif 438 #endif /* !defined(__cpp_lib_has_unique_object_representations) && defined(__glibcxx_want_has_unique_object_representations) */ 439 #undef __glibcxx_want_has_unique_object_representations 440 441 #if !defined(__cpp_lib_hardware_interference_size) 442 # if (__cplusplus >= 201703L) && (defined(__GCC_DESTRUCTIVE_SIZE)) 443 # define __glibcxx_hardware_interference_size 201703L 444 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardware_interference_size) 445 # define __cpp_lib_hardware_interference_size 201703L 446 # endif 447 # endif 448 #endif /* !defined(__cpp_lib_hardware_interference_size) && defined(__glibcxx_want_hardware_interference_size) */ 449 #undef __glibcxx_want_hardware_interference_size 450 451 #if !defined(__cpp_lib_invoke) 452 # if (__cplusplus >= 201703L) 453 # define __glibcxx_invoke 201411L 454 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke) 455 # define __cpp_lib_invoke 201411L 456 # endif 457 # endif 458 #endif /* !defined(__cpp_lib_invoke) && defined(__glibcxx_want_invoke) */ 459 #undef __glibcxx_want_invoke 460 461 #if !defined(__cpp_lib_is_aggregate) 462 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE)) 463 # define __glibcxx_is_aggregate 201703L 464 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_aggregate) 465 # define __cpp_lib_is_aggregate 201703L 466 # endif 467 # endif 468 #endif /* !defined(__cpp_lib_is_aggregate) && defined(__glibcxx_want_is_aggregate) */ 469 #undef __glibcxx_want_is_aggregate 470 471 #if !defined(__cpp_lib_is_invocable) 472 # if (__cplusplus >= 201703L) 473 # define __glibcxx_is_invocable 201703L 474 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_invocable) 475 # define __cpp_lib_is_invocable 201703L 476 # endif 477 # endif 478 #endif /* !defined(__cpp_lib_is_invocable) && defined(__glibcxx_want_is_invocable) */ 479 #undef __glibcxx_want_is_invocable 480 481 #if !defined(__cpp_lib_launder) 482 # if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_LAUNDER)) 483 # define __glibcxx_launder 201606L 484 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_launder) 485 # define __cpp_lib_launder 201606L 486 # endif 487 # endif 488 #endif /* !defined(__cpp_lib_launder) && defined(__glibcxx_want_launder) */ 489 #undef __glibcxx_want_launder 490 491 #if !defined(__cpp_lib_logical_traits) 492 # if (__cplusplus >= 201703L) 493 # define __glibcxx_logical_traits 201510L 494 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_logical_traits) 495 # define __cpp_lib_logical_traits 201510L 496 # endif 497 # endif 498 #endif /* !defined(__cpp_lib_logical_traits) && defined(__glibcxx_want_logical_traits) */ 499 #undef __glibcxx_want_logical_traits 500 501 #if !defined(__cpp_lib_make_from_tuple) 502 # if (__cplusplus >= 201703L) 503 # define __glibcxx_make_from_tuple 201606L 504 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_from_tuple) 505 # define __cpp_lib_make_from_tuple 201606L 506 # endif 507 # endif 508 #endif /* !defined(__cpp_lib_make_from_tuple) && defined(__glibcxx_want_make_from_tuple) */ 509 #undef __glibcxx_want_make_from_tuple 510 511 #if !defined(__cpp_lib_not_fn) 512 # if (__cplusplus >= 201703L) 513 # define __glibcxx_not_fn 201603L 514 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn) 515 # define __cpp_lib_not_fn 201603L 516 # endif 517 # endif 518 #endif /* !defined(__cpp_lib_not_fn) && defined(__glibcxx_want_not_fn) */ 519 #undef __glibcxx_want_not_fn 520 521 #if !defined(__cpp_lib_type_trait_variable_templates) 522 # if (__cplusplus >= 201703L) 523 # define __glibcxx_type_trait_variable_templates 201510L 524 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_trait_variable_templates) 525 # define __cpp_lib_type_trait_variable_templates 201510L 526 # endif 527 # endif 528 #endif /* !defined(__cpp_lib_type_trait_variable_templates) && defined(__glibcxx_want_type_trait_variable_templates) */ 529 #undef __glibcxx_want_type_trait_variable_templates 530 531 #if !defined(__cpp_lib_variant) 532 # if (__cplusplus >= 202002L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L) 533 # define __glibcxx_variant 202106L 534 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant) 535 # define __cpp_lib_variant 202106L 536 # endif 537 # elif (__cplusplus >= 201703L) 538 # define __glibcxx_variant 202102L 539 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant) 540 # define __cpp_lib_variant 202102L 541 # endif 542 # endif 543 #endif /* !defined(__cpp_lib_variant) && defined(__glibcxx_want_variant) */ 544 #undef __glibcxx_want_variant 545 546 #if !defined(__cpp_lib_lcm) 547 # if (__cplusplus >= 201703L) 548 # define __glibcxx_lcm 201606L 549 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_lcm) 550 # define __cpp_lib_lcm 201606L 551 # endif 552 # endif 553 #endif /* !defined(__cpp_lib_lcm) && defined(__glibcxx_want_lcm) */ 554 #undef __glibcxx_want_lcm 555 556 #if !defined(__cpp_lib_gcd) 557 # if (__cplusplus >= 201703L) 558 # define __glibcxx_gcd 201606L 559 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd) 560 # define __cpp_lib_gcd 201606L 561 # endif 562 # endif 563 #endif /* !defined(__cpp_lib_gcd) && defined(__glibcxx_want_gcd) */ 564 #undef __glibcxx_want_gcd 565 566 #if !defined(__cpp_lib_gcd_lcm) 567 # if (__cplusplus >= 201703L) 568 # define __glibcxx_gcd_lcm 201606L 569 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd_lcm) 570 # define __cpp_lib_gcd_lcm 201606L 571 # endif 572 # endif 573 #endif /* !defined(__cpp_lib_gcd_lcm) && defined(__glibcxx_want_gcd_lcm) */ 574 #undef __glibcxx_want_gcd_lcm 575 576 #if !defined(__cpp_lib_raw_memory_algorithms) 577 # if (__cplusplus >= 201703L) 578 # define __glibcxx_raw_memory_algorithms 201606L 579 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms) 580 # define __cpp_lib_raw_memory_algorithms 201606L 581 # endif 582 # endif 583 #endif /* !defined(__cpp_lib_raw_memory_algorithms) && defined(__glibcxx_want_raw_memory_algorithms) */ 584 #undef __glibcxx_want_raw_memory_algorithms 585 586 #if !defined(__cpp_lib_array_constexpr) 587 # if (__cplusplus >= 202002L) 588 # define __glibcxx_array_constexpr 201811L 589 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr) 590 # define __cpp_lib_array_constexpr 201811L 591 # endif 592 # elif (__cplusplus >= 201703L) 593 # define __glibcxx_array_constexpr 201803L 594 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr) 595 # define __cpp_lib_array_constexpr 201803L 596 # endif 597 # endif 598 #endif /* !defined(__cpp_lib_array_constexpr) && defined(__glibcxx_want_array_constexpr) */ 599 #undef __glibcxx_want_array_constexpr 600 601 #if !defined(__cpp_lib_nonmember_container_access) 602 # if (__cplusplus >= 201703L) 603 # define __glibcxx_nonmember_container_access 201411L 604 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_nonmember_container_access) 605 # define __cpp_lib_nonmember_container_access 201411L 606 # endif 607 # endif 608 #endif /* !defined(__cpp_lib_nonmember_container_access) && defined(__glibcxx_want_nonmember_container_access) */ 609 #undef __glibcxx_want_nonmember_container_access 610 611 #if !defined(__cpp_lib_clamp) 612 # if (__cplusplus >= 201703L) 613 # define __glibcxx_clamp 201603L 614 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_clamp) 615 # define __cpp_lib_clamp 201603L 616 # endif 617 # endif 618 #endif /* !defined(__cpp_lib_clamp) && defined(__glibcxx_want_clamp) */ 619 #undef __glibcxx_want_clamp 620 621 #if !defined(__cpp_lib_sample) 622 # if (__cplusplus >= 201703L) 623 # define __glibcxx_sample 201603L 624 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_sample) 625 # define __cpp_lib_sample 201603L 626 # endif 627 # endif 628 #endif /* !defined(__cpp_lib_sample) && defined(__glibcxx_want_sample) */ 629 #undef __glibcxx_want_sample 630 631 #if !defined(__cpp_lib_boyer_moore_searcher) 632 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 633 # define __glibcxx_boyer_moore_searcher 201603L 634 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_boyer_moore_searcher) 635 # define __cpp_lib_boyer_moore_searcher 201603L 636 # endif 637 # endif 638 #endif /* !defined(__cpp_lib_boyer_moore_searcher) && defined(__glibcxx_want_boyer_moore_searcher) */ 639 #undef __glibcxx_want_boyer_moore_searcher 640 641 #if !defined(__cpp_lib_chrono) 642 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED 643 # define __glibcxx_chrono 201907L 644 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono) 645 # define __cpp_lib_chrono 201907L 646 # endif 647 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 648 # define __glibcxx_chrono 201611L 649 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono) 650 # define __cpp_lib_chrono 201611L 651 # endif 652 # endif 653 #endif /* !defined(__cpp_lib_chrono) && defined(__glibcxx_want_chrono) */ 654 #undef __glibcxx_want_chrono 655 656 #if !defined(__cpp_lib_execution) 657 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 658 # define __glibcxx_execution 201902L 659 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_execution) 660 # define __cpp_lib_execution 201902L 661 # endif 662 # endif 663 #endif /* !defined(__cpp_lib_execution) && defined(__glibcxx_want_execution) */ 664 #undef __glibcxx_want_execution 665 666 #if !defined(__cpp_lib_filesystem) 667 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 668 # define __glibcxx_filesystem 201703L 669 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_filesystem) 670 # define __cpp_lib_filesystem 201703L 671 # endif 672 # endif 673 #endif /* !defined(__cpp_lib_filesystem) && defined(__glibcxx_want_filesystem) */ 674 #undef __glibcxx_want_filesystem 675 676 #if !defined(__cpp_lib_hypot) 677 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 678 # define __glibcxx_hypot 201603L 679 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_hypot) 680 # define __cpp_lib_hypot 201603L 681 # endif 682 # endif 683 #endif /* !defined(__cpp_lib_hypot) && defined(__glibcxx_want_hypot) */ 684 #undef __glibcxx_want_hypot 685 686 #if !defined(__cpp_lib_map_try_emplace) 687 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 688 # define __glibcxx_map_try_emplace 201411L 689 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_map_try_emplace) 690 # define __cpp_lib_map_try_emplace 201411L 691 # endif 692 # endif 693 #endif /* !defined(__cpp_lib_map_try_emplace) && defined(__glibcxx_want_map_try_emplace) */ 694 #undef __glibcxx_want_map_try_emplace 695 696 #if !defined(__cpp_lib_math_special_functions) 697 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 698 # define __glibcxx_math_special_functions 201603L 699 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_special_functions) 700 # define __cpp_lib_math_special_functions 201603L 701 # endif 702 # endif 703 #endif /* !defined(__cpp_lib_math_special_functions) && defined(__glibcxx_want_math_special_functions) */ 704 #undef __glibcxx_want_math_special_functions 705 706 #if !defined(__cpp_lib_memory_resource) 707 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 708 # define __glibcxx_memory_resource 201603L 709 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource) 710 # define __cpp_lib_memory_resource 201603L 711 # endif 712 # elif (__cplusplus >= 201703L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 713 # define __glibcxx_memory_resource 1L 714 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource) 715 # define __cpp_lib_memory_resource 1L 716 # endif 717 # endif 718 #endif /* !defined(__cpp_lib_memory_resource) && defined(__glibcxx_want_memory_resource) */ 719 #undef __glibcxx_want_memory_resource 720 721 #if !defined(__cpp_lib_node_extract) 722 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 723 # define __glibcxx_node_extract 201606L 724 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_node_extract) 725 # define __cpp_lib_node_extract 201606L 726 # endif 727 # endif 728 #endif /* !defined(__cpp_lib_node_extract) && defined(__glibcxx_want_node_extract) */ 729 #undef __glibcxx_want_node_extract 730 731 #if !defined(__cpp_lib_parallel_algorithm) 732 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 733 # define __glibcxx_parallel_algorithm 201603L 734 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_parallel_algorithm) 735 # define __cpp_lib_parallel_algorithm 201603L 736 # endif 737 # endif 738 #endif /* !defined(__cpp_lib_parallel_algorithm) && defined(__glibcxx_want_parallel_algorithm) */ 739 #undef __glibcxx_want_parallel_algorithm 740 741 #if !defined(__cpp_lib_scoped_lock) 742 # if (__cplusplus >= 201703L) 743 # define __glibcxx_scoped_lock 201703L 744 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_scoped_lock) 745 # define __cpp_lib_scoped_lock 201703L 746 # endif 747 # endif 748 #endif /* !defined(__cpp_lib_scoped_lock) && defined(__glibcxx_want_scoped_lock) */ 749 #undef __glibcxx_want_scoped_lock 750 751 #if !defined(__cpp_lib_shared_mutex) 752 # if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 753 # define __glibcxx_shared_mutex 201505L 754 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_mutex) 755 # define __cpp_lib_shared_mutex 201505L 756 # endif 757 # endif 758 #endif /* !defined(__cpp_lib_shared_mutex) && defined(__glibcxx_want_shared_mutex) */ 759 #undef __glibcxx_want_shared_mutex 760 761 #if !defined(__cpp_lib_shared_ptr_weak_type) 762 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 763 # define __glibcxx_shared_ptr_weak_type 201606L 764 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_weak_type) 765 # define __cpp_lib_shared_ptr_weak_type 201606L 766 # endif 767 # endif 768 #endif /* !defined(__cpp_lib_shared_ptr_weak_type) && defined(__glibcxx_want_shared_ptr_weak_type) */ 769 #undef __glibcxx_want_shared_ptr_weak_type 770 771 #if !defined(__cpp_lib_string_view) 772 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 773 # define __glibcxx_string_view 201803L 774 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view) 775 # define __cpp_lib_string_view 201803L 776 # endif 777 # endif 778 #endif /* !defined(__cpp_lib_string_view) && defined(__glibcxx_want_string_view) */ 779 #undef __glibcxx_want_string_view 780 781 #if !defined(__cpp_lib_unordered_map_try_emplace) 782 # if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED 783 # define __glibcxx_unordered_map_try_emplace 201411L 784 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unordered_map_try_emplace) 785 # define __cpp_lib_unordered_map_try_emplace 201411L 786 # endif 787 # endif 788 #endif /* !defined(__cpp_lib_unordered_map_try_emplace) && defined(__glibcxx_want_unordered_map_try_emplace) */ 789 #undef __glibcxx_want_unordered_map_try_emplace 790 791 #if !defined(__cpp_lib_assume_aligned) 792 # if (__cplusplus >= 202002L) 793 # define __glibcxx_assume_aligned 201811L 794 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_assume_aligned) 795 # define __cpp_lib_assume_aligned 201811L 796 # endif 797 # endif 798 #endif /* !defined(__cpp_lib_assume_aligned) && defined(__glibcxx_want_assume_aligned) */ 799 #undef __glibcxx_want_assume_aligned 800 801 #if !defined(__cpp_lib_atomic_flag_test) 802 # if (__cplusplus >= 202002L) 803 # define __glibcxx_atomic_flag_test 201907L 804 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_flag_test) 805 # define __cpp_lib_atomic_flag_test 201907L 806 # endif 807 # endif 808 #endif /* !defined(__cpp_lib_atomic_flag_test) && defined(__glibcxx_want_atomic_flag_test) */ 809 #undef __glibcxx_want_atomic_flag_test 810 811 #if !defined(__cpp_lib_atomic_float) 812 # if (__cplusplus >= 202002L) 813 # define __glibcxx_atomic_float 201711L 814 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_float) 815 # define __cpp_lib_atomic_float 201711L 816 # endif 817 # endif 818 #endif /* !defined(__cpp_lib_atomic_float) && defined(__glibcxx_want_atomic_float) */ 819 #undef __glibcxx_want_atomic_float 820 821 #if !defined(__cpp_lib_atomic_lock_free_type_aliases) 822 # if (__cplusplus >= 202002L) && ((__GCC_ATOMIC_INT_LOCK_FREE | __GCC_ATOMIC_LONG_LOCK_FREE | __GCC_ATOMIC_CHAR_LOCK_FREE) & 2) 823 # define __glibcxx_atomic_lock_free_type_aliases 201907L 824 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_lock_free_type_aliases) 825 # define __cpp_lib_atomic_lock_free_type_aliases 201907L 826 # endif 827 # endif 828 #endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) && defined(__glibcxx_want_atomic_lock_free_type_aliases) */ 829 #undef __glibcxx_want_atomic_lock_free_type_aliases 830 831 #if !defined(__cpp_lib_atomic_ref) 832 # if (__cplusplus >= 202002L) 833 # define __glibcxx_atomic_ref 201806L 834 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref) 835 # define __cpp_lib_atomic_ref 201806L 836 # endif 837 # endif 838 #endif /* !defined(__cpp_lib_atomic_ref) && defined(__glibcxx_want_atomic_ref) */ 839 #undef __glibcxx_want_atomic_ref 840 841 #if !defined(__cpp_lib_atomic_value_initialization) 842 # if (__cplusplus >= 202002L) 843 # define __glibcxx_atomic_value_initialization 201911L 844 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_value_initialization) 845 # define __cpp_lib_atomic_value_initialization 201911L 846 # endif 847 # endif 848 #endif /* !defined(__cpp_lib_atomic_value_initialization) && defined(__glibcxx_want_atomic_value_initialization) */ 849 #undef __glibcxx_want_atomic_value_initialization 850 851 #if !defined(__cpp_lib_bind_front) 852 # if (__cplusplus >= 202002L) 853 # define __glibcxx_bind_front 201907L 854 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front) 855 # define __cpp_lib_bind_front 201907L 856 # endif 857 # endif 858 #endif /* !defined(__cpp_lib_bind_front) && defined(__glibcxx_want_bind_front) */ 859 #undef __glibcxx_want_bind_front 860 861 #if !defined(__cpp_lib_bind_back) 862 # if (__cplusplus >= 202100L) && (__cpp_explicit_this_parameter) 863 # define __glibcxx_bind_back 202202L 864 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back) 865 # define __cpp_lib_bind_back 202202L 866 # endif 867 # endif 868 #endif /* !defined(__cpp_lib_bind_back) && defined(__glibcxx_want_bind_back) */ 869 #undef __glibcxx_want_bind_back 870 871 #if !defined(__cpp_lib_starts_ends_with) 872 # if (__cplusplus >= 202002L) 873 # define __glibcxx_starts_ends_with 201711L 874 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_starts_ends_with) 875 # define __cpp_lib_starts_ends_with 201711L 876 # endif 877 # endif 878 #endif /* !defined(__cpp_lib_starts_ends_with) && defined(__glibcxx_want_starts_ends_with) */ 879 #undef __glibcxx_want_starts_ends_with 880 881 #if !defined(__cpp_lib_bit_cast) 882 # if (__cplusplus >= 202002L) && (__has_builtin(__builtin_bit_cast)) 883 # define __glibcxx_bit_cast 201806L 884 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bit_cast) 885 # define __cpp_lib_bit_cast 201806L 886 # endif 887 # endif 888 #endif /* !defined(__cpp_lib_bit_cast) && defined(__glibcxx_want_bit_cast) */ 889 #undef __glibcxx_want_bit_cast 890 891 #if !defined(__cpp_lib_bitops) 892 # if (__cplusplus >= 202002L) 893 # define __glibcxx_bitops 201907L 894 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitops) 895 # define __cpp_lib_bitops 201907L 896 # endif 897 # endif 898 #endif /* !defined(__cpp_lib_bitops) && defined(__glibcxx_want_bitops) */ 899 #undef __glibcxx_want_bitops 900 901 #if !defined(__cpp_lib_bounded_array_traits) 902 # if (__cplusplus >= 202002L) 903 # define __glibcxx_bounded_array_traits 201902L 904 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_bounded_array_traits) 905 # define __cpp_lib_bounded_array_traits 201902L 906 # endif 907 # endif 908 #endif /* !defined(__cpp_lib_bounded_array_traits) && defined(__glibcxx_want_bounded_array_traits) */ 909 #undef __glibcxx_want_bounded_array_traits 910 911 #if !defined(__cpp_lib_concepts) 912 # if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L) 913 # define __glibcxx_concepts 202002L 914 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_concepts) 915 # define __cpp_lib_concepts 202002L 916 # endif 917 # endif 918 #endif /* !defined(__cpp_lib_concepts) && defined(__glibcxx_want_concepts) */ 919 #undef __glibcxx_want_concepts 920 921 #if !defined(__cpp_lib_optional) 922 # if (__cplusplus >= 202100L) && (__glibcxx_concepts) 923 # define __glibcxx_optional 202110L 924 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) 925 # define __cpp_lib_optional 202110L 926 # endif 927 # elif (__cplusplus >= 202002L) 928 # define __glibcxx_optional 202106L 929 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) 930 # define __cpp_lib_optional 202106L 931 # endif 932 # elif (__cplusplus >= 201703L) 933 # define __glibcxx_optional 201606L 934 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional) 935 # define __cpp_lib_optional 201606L 936 # endif 937 # endif 938 #endif /* !defined(__cpp_lib_optional) && defined(__glibcxx_want_optional) */ 939 #undef __glibcxx_want_optional 940 941 #if !defined(__cpp_lib_destroying_delete) 942 # if (__cplusplus >= 202002L) && (__cpp_impl_destroying_delete) 943 # define __glibcxx_destroying_delete 201806L 944 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_destroying_delete) 945 # define __cpp_lib_destroying_delete 201806L 946 # endif 947 # endif 948 #endif /* !defined(__cpp_lib_destroying_delete) && defined(__glibcxx_want_destroying_delete) */ 949 #undef __glibcxx_want_destroying_delete 950 951 #if !defined(__cpp_lib_constexpr_string_view) 952 # if (__cplusplus >= 202002L) 953 # define __glibcxx_constexpr_string_view 201811L 954 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string_view) 955 # define __cpp_lib_constexpr_string_view 201811L 956 # endif 957 # endif 958 #endif /* !defined(__cpp_lib_constexpr_string_view) && defined(__glibcxx_want_constexpr_string_view) */ 959 #undef __glibcxx_want_constexpr_string_view 960 961 #if !defined(__cpp_lib_endian) 962 # if (__cplusplus >= 202002L) 963 # define __glibcxx_endian 201907L 964 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_endian) 965 # define __cpp_lib_endian 201907L 966 # endif 967 # endif 968 #endif /* !defined(__cpp_lib_endian) && defined(__glibcxx_want_endian) */ 969 #undef __glibcxx_want_endian 970 971 #if !defined(__cpp_lib_int_pow2) 972 # if (__cplusplus >= 202002L) 973 # define __glibcxx_int_pow2 202002L 974 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_int_pow2) 975 # define __cpp_lib_int_pow2 202002L 976 # endif 977 # endif 978 #endif /* !defined(__cpp_lib_int_pow2) && defined(__glibcxx_want_int_pow2) */ 979 #undef __glibcxx_want_int_pow2 980 981 #if !defined(__cpp_lib_integer_comparison_functions) 982 # if (__cplusplus >= 202002L) 983 # define __glibcxx_integer_comparison_functions 202002L 984 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_comparison_functions) 985 # define __cpp_lib_integer_comparison_functions 202002L 986 # endif 987 # endif 988 #endif /* !defined(__cpp_lib_integer_comparison_functions) && defined(__glibcxx_want_integer_comparison_functions) */ 989 #undef __glibcxx_want_integer_comparison_functions 990 991 #if !defined(__cpp_lib_is_constant_evaluated) 992 # if (__cplusplus >= 202002L) && (defined(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)) 993 # define __glibcxx_is_constant_evaluated 201811L 994 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_constant_evaluated) 995 # define __cpp_lib_is_constant_evaluated 201811L 996 # endif 997 # endif 998 #endif /* !defined(__cpp_lib_is_constant_evaluated) && defined(__glibcxx_want_is_constant_evaluated) */ 999 #undef __glibcxx_want_is_constant_evaluated 1000 1001 #if !defined(__cpp_lib_constexpr_char_traits) 1002 # if (__cplusplus >= 202002L) && (defined(__glibcxx_is_constant_evaluated)) 1003 # define __glibcxx_constexpr_char_traits 201811L 1004 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits) 1005 # define __cpp_lib_constexpr_char_traits 201811L 1006 # endif 1007 # elif (__cplusplus >= 201703L) && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED) 1008 # define __glibcxx_constexpr_char_traits 201611L 1009 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits) 1010 # define __cpp_lib_constexpr_char_traits 201611L 1011 # endif 1012 # endif 1013 #endif /* !defined(__cpp_lib_constexpr_char_traits) && defined(__glibcxx_want_constexpr_char_traits) */ 1014 #undef __glibcxx_want_constexpr_char_traits 1015 1016 #if !defined(__cpp_lib_is_layout_compatible) 1017 # if (__cplusplus >= 202002L) && (__has_builtin(__is_layout_compatible) && __has_builtin(__builtin_is_corresponding_member)) 1018 # define __glibcxx_is_layout_compatible 201907L 1019 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_layout_compatible) 1020 # define __cpp_lib_is_layout_compatible 201907L 1021 # endif 1022 # endif 1023 #endif /* !defined(__cpp_lib_is_layout_compatible) && defined(__glibcxx_want_is_layout_compatible) */ 1024 #undef __glibcxx_want_is_layout_compatible 1025 1026 #if !defined(__cpp_lib_is_nothrow_convertible) 1027 # if (__cplusplus >= 202002L) 1028 # define __glibcxx_is_nothrow_convertible 201806L 1029 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_nothrow_convertible) 1030 # define __cpp_lib_is_nothrow_convertible 201806L 1031 # endif 1032 # endif 1033 #endif /* !defined(__cpp_lib_is_nothrow_convertible) && defined(__glibcxx_want_is_nothrow_convertible) */ 1034 #undef __glibcxx_want_is_nothrow_convertible 1035 1036 #if !defined(__cpp_lib_is_pointer_interconvertible) 1037 # if (__cplusplus >= 202002L) && (__has_builtin(__is_pointer_interconvertible_base_of) && __has_builtin(__builtin_is_pointer_interconvertible_with_class)) 1038 # define __glibcxx_is_pointer_interconvertible 201907L 1039 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_pointer_interconvertible) 1040 # define __cpp_lib_is_pointer_interconvertible 201907L 1041 # endif 1042 # endif 1043 #endif /* !defined(__cpp_lib_is_pointer_interconvertible) && defined(__glibcxx_want_is_pointer_interconvertible) */ 1044 #undef __glibcxx_want_is_pointer_interconvertible 1045 1046 #if !defined(__cpp_lib_math_constants) 1047 # if (__cplusplus >= 202002L) 1048 # define __glibcxx_math_constants 201907L 1049 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_constants) 1050 # define __cpp_lib_math_constants 201907L 1051 # endif 1052 # endif 1053 #endif /* !defined(__cpp_lib_math_constants) && defined(__glibcxx_want_math_constants) */ 1054 #undef __glibcxx_want_math_constants 1055 1056 #if !defined(__cpp_lib_make_obj_using_allocator) 1057 # if (__cplusplus >= 202002L) && (__cpp_concepts) 1058 # define __glibcxx_make_obj_using_allocator 201811L 1059 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_obj_using_allocator) 1060 # define __cpp_lib_make_obj_using_allocator 201811L 1061 # endif 1062 # endif 1063 #endif /* !defined(__cpp_lib_make_obj_using_allocator) && defined(__glibcxx_want_make_obj_using_allocator) */ 1064 #undef __glibcxx_want_make_obj_using_allocator 1065 1066 #if !defined(__cpp_lib_remove_cvref) 1067 # if (__cplusplus >= 202002L) 1068 # define __glibcxx_remove_cvref 201711L 1069 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_remove_cvref) 1070 # define __cpp_lib_remove_cvref 201711L 1071 # endif 1072 # endif 1073 #endif /* !defined(__cpp_lib_remove_cvref) && defined(__glibcxx_want_remove_cvref) */ 1074 #undef __glibcxx_want_remove_cvref 1075 1076 #if !defined(__cpp_lib_source_location) 1077 # if (__cplusplus >= 202002L) && (__has_builtin(__builtin_source_location)) 1078 # define __glibcxx_source_location 201907L 1079 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_source_location) 1080 # define __cpp_lib_source_location 201907L 1081 # endif 1082 # endif 1083 #endif /* !defined(__cpp_lib_source_location) && defined(__glibcxx_want_source_location) */ 1084 #undef __glibcxx_want_source_location 1085 1086 #if !defined(__cpp_lib_span) 1087 # if (__cplusplus > 202302L) && (__glibcxx_concepts) 1088 # define __glibcxx_span 202311L 1089 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span) 1090 # define __cpp_lib_span 202311L 1091 # endif 1092 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts) 1093 # define __glibcxx_span 202002L 1094 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span) 1095 # define __cpp_lib_span 202002L 1096 # endif 1097 # endif 1098 #endif /* !defined(__cpp_lib_span) && defined(__glibcxx_want_span) */ 1099 #undef __glibcxx_want_span 1100 1101 #if !defined(__cpp_lib_ssize) 1102 # if (__cplusplus >= 202002L) 1103 # define __glibcxx_ssize 201902L 1104 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ssize) 1105 # define __cpp_lib_ssize 201902L 1106 # endif 1107 # endif 1108 #endif /* !defined(__cpp_lib_ssize) && defined(__glibcxx_want_ssize) */ 1109 #undef __glibcxx_want_ssize 1110 1111 #if !defined(__cpp_lib_three_way_comparison) 1112 # if (__cplusplus >= 202002L) && (__cpp_impl_three_way_comparison >= 201907L && __glibcxx_concepts) 1113 # define __glibcxx_three_way_comparison 201907L 1114 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_three_way_comparison) 1115 # define __cpp_lib_three_way_comparison 201907L 1116 # endif 1117 # endif 1118 #endif /* !defined(__cpp_lib_three_way_comparison) && defined(__glibcxx_want_three_way_comparison) */ 1119 #undef __glibcxx_want_three_way_comparison 1120 1121 #if !defined(__cpp_lib_to_address) 1122 # if (__cplusplus >= 202002L) 1123 # define __glibcxx_to_address 201711L 1124 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_address) 1125 # define __cpp_lib_to_address 201711L 1126 # endif 1127 # endif 1128 #endif /* !defined(__cpp_lib_to_address) && defined(__glibcxx_want_to_address) */ 1129 #undef __glibcxx_want_to_address 1130 1131 #if !defined(__cpp_lib_to_array) 1132 # if (__cplusplus >= 202002L) && (__cpp_generic_lambdas >= 201707L) 1133 # define __glibcxx_to_array 201907L 1134 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_array) 1135 # define __cpp_lib_to_array 201907L 1136 # endif 1137 # endif 1138 #endif /* !defined(__cpp_lib_to_array) && defined(__glibcxx_want_to_array) */ 1139 #undef __glibcxx_want_to_array 1140 1141 #if !defined(__cpp_lib_type_identity) 1142 # if (__cplusplus >= 202002L) 1143 # define __glibcxx_type_identity 201806L 1144 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_identity) 1145 # define __cpp_lib_type_identity 201806L 1146 # endif 1147 # endif 1148 #endif /* !defined(__cpp_lib_type_identity) && defined(__glibcxx_want_type_identity) */ 1149 #undef __glibcxx_want_type_identity 1150 1151 #if !defined(__cpp_lib_unwrap_ref) 1152 # if (__cplusplus >= 202002L) 1153 # define __glibcxx_unwrap_ref 201811L 1154 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unwrap_ref) 1155 # define __cpp_lib_unwrap_ref 201811L 1156 # endif 1157 # endif 1158 #endif /* !defined(__cpp_lib_unwrap_ref) && defined(__glibcxx_want_unwrap_ref) */ 1159 #undef __glibcxx_want_unwrap_ref 1160 1161 #if !defined(__cpp_lib_constexpr_iterator) 1162 # if (__cplusplus >= 202002L) 1163 # define __glibcxx_constexpr_iterator 201811L 1164 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_iterator) 1165 # define __cpp_lib_constexpr_iterator 201811L 1166 # endif 1167 # endif 1168 #endif /* !defined(__cpp_lib_constexpr_iterator) && defined(__glibcxx_want_constexpr_iterator) */ 1169 #undef __glibcxx_want_constexpr_iterator 1170 1171 #if !defined(__cpp_lib_interpolate) 1172 # if (__cplusplus >= 202002L) 1173 # define __glibcxx_interpolate 201902L 1174 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_interpolate) 1175 # define __cpp_lib_interpolate 201902L 1176 # endif 1177 # endif 1178 #endif /* !defined(__cpp_lib_interpolate) && defined(__glibcxx_want_interpolate) */ 1179 #undef __glibcxx_want_interpolate 1180 1181 #if !defined(__cpp_lib_constexpr_utility) 1182 # if (__cplusplus >= 202002L) 1183 # define __glibcxx_constexpr_utility 201811L 1184 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_utility) 1185 # define __cpp_lib_constexpr_utility 201811L 1186 # endif 1187 # endif 1188 #endif /* !defined(__cpp_lib_constexpr_utility) && defined(__glibcxx_want_constexpr_utility) */ 1189 #undef __glibcxx_want_constexpr_utility 1190 1191 #if !defined(__cpp_lib_shift) 1192 # if (__cplusplus >= 202002L) 1193 # define __glibcxx_shift 201806L 1194 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift) 1195 # define __cpp_lib_shift 201806L 1196 # endif 1197 # endif 1198 #endif /* !defined(__cpp_lib_shift) && defined(__glibcxx_want_shift) */ 1199 #undef __glibcxx_want_shift 1200 1201 #if !defined(__cpp_lib_ranges) 1202 # if (__cplusplus > 202302L) && (__glibcxx_concepts) 1203 # define __glibcxx_ranges 202406L 1204 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges) 1205 # define __cpp_lib_ranges 202406L 1206 # endif 1207 # elif (__cplusplus >= 202100L) && (__glibcxx_concepts) 1208 # define __glibcxx_ranges 202302L 1209 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges) 1210 # define __cpp_lib_ranges 202302L 1211 # endif 1212 # elif (__cplusplus >= 202002L) && (__glibcxx_concepts) 1213 # define __glibcxx_ranges 202110L 1214 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges) 1215 # define __cpp_lib_ranges 202110L 1216 # endif 1217 # endif 1218 #endif /* !defined(__cpp_lib_ranges) && defined(__glibcxx_want_ranges) */ 1219 #undef __glibcxx_want_ranges 1220 1221 #if !defined(__cpp_lib_constexpr_numeric) 1222 # if (__cplusplus >= 202002L) 1223 # define __glibcxx_constexpr_numeric 201911L 1224 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_numeric) 1225 # define __cpp_lib_constexpr_numeric 201911L 1226 # endif 1227 # endif 1228 #endif /* !defined(__cpp_lib_constexpr_numeric) && defined(__glibcxx_want_constexpr_numeric) */ 1229 #undef __glibcxx_want_constexpr_numeric 1230 1231 #if !defined(__cpp_lib_constexpr_functional) 1232 # if (__cplusplus >= 202002L) 1233 # define __glibcxx_constexpr_functional 201907L 1234 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_functional) 1235 # define __cpp_lib_constexpr_functional 201907L 1236 # endif 1237 # endif 1238 #endif /* !defined(__cpp_lib_constexpr_functional) && defined(__glibcxx_want_constexpr_functional) */ 1239 #undef __glibcxx_want_constexpr_functional 1240 1241 #if !defined(__cpp_lib_constexpr_algorithms) 1242 # if (__cplusplus >= 202002L) 1243 # define __glibcxx_constexpr_algorithms 201806L 1244 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms) 1245 # define __cpp_lib_constexpr_algorithms 201806L 1246 # endif 1247 # endif 1248 #endif /* !defined(__cpp_lib_constexpr_algorithms) && defined(__glibcxx_want_constexpr_algorithms) */ 1249 #undef __glibcxx_want_constexpr_algorithms 1250 1251 #if !defined(__cpp_lib_constexpr_tuple) 1252 # if (__cplusplus >= 202002L) 1253 # define __glibcxx_constexpr_tuple 201811L 1254 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_tuple) 1255 # define __cpp_lib_constexpr_tuple 201811L 1256 # endif 1257 # endif 1258 #endif /* !defined(__cpp_lib_constexpr_tuple) && defined(__glibcxx_want_constexpr_tuple) */ 1259 #undef __glibcxx_want_constexpr_tuple 1260 1261 #if !defined(__cpp_lib_constexpr_memory) 1262 # if (__cplusplus >= 202100L) && (__cpp_constexpr_dynamic_alloc) 1263 # define __glibcxx_constexpr_memory 202202L 1264 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory) 1265 # define __cpp_lib_constexpr_memory 202202L 1266 # endif 1267 # elif (__cplusplus >= 202002L) 1268 # define __glibcxx_constexpr_memory 201811L 1269 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory) 1270 # define __cpp_lib_constexpr_memory 201811L 1271 # endif 1272 # endif 1273 #endif /* !defined(__cpp_lib_constexpr_memory) && defined(__glibcxx_want_constexpr_memory) */ 1274 #undef __glibcxx_want_constexpr_memory 1275 1276 #if !defined(__cpp_lib_atomic_shared_ptr) 1277 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1278 # define __glibcxx_atomic_shared_ptr 201711L 1279 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_shared_ptr) 1280 # define __cpp_lib_atomic_shared_ptr 201711L 1281 # endif 1282 # endif 1283 #endif /* !defined(__cpp_lib_atomic_shared_ptr) && defined(__glibcxx_want_atomic_shared_ptr) */ 1284 #undef __glibcxx_want_atomic_shared_ptr 1285 1286 #if !defined(__cpp_lib_atomic_wait) 1287 # if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 1288 # define __glibcxx_atomic_wait 201907L 1289 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait) 1290 # define __cpp_lib_atomic_wait 201907L 1291 # endif 1292 # elif (__cplusplus >= 202002L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED && (defined(_GLIBCXX_HAVE_LINUX_FUTEX)) 1293 # define __glibcxx_atomic_wait 201907L 1294 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait) 1295 # define __cpp_lib_atomic_wait 201907L 1296 # endif 1297 # endif 1298 #endif /* !defined(__cpp_lib_atomic_wait) && defined(__glibcxx_want_atomic_wait) */ 1299 #undef __glibcxx_want_atomic_wait 1300 1301 #if !defined(__cpp_lib_barrier) 1302 # if (__cplusplus >= 202002L) && (__cpp_aligned_new && __glibcxx_atomic_wait) 1303 # define __glibcxx_barrier 201907L 1304 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_barrier) 1305 # define __cpp_lib_barrier 201907L 1306 # endif 1307 # endif 1308 #endif /* !defined(__cpp_lib_barrier) && defined(__glibcxx_want_barrier) */ 1309 #undef __glibcxx_want_barrier 1310 1311 #if !defined(__cpp_lib_format) 1312 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1313 # define __glibcxx_format 202110L 1314 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format) 1315 # define __cpp_lib_format 202110L 1316 # endif 1317 # endif 1318 #endif /* !defined(__cpp_lib_format) && defined(__glibcxx_want_format) */ 1319 #undef __glibcxx_want_format 1320 1321 #if !defined(__cpp_lib_format_uchar) 1322 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1323 # define __glibcxx_format_uchar 202311L 1324 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_uchar) 1325 # define __cpp_lib_format_uchar 202311L 1326 # endif 1327 # endif 1328 #endif /* !defined(__cpp_lib_format_uchar) && defined(__glibcxx_want_format_uchar) */ 1329 #undef __glibcxx_want_format_uchar 1330 1331 #if !defined(__cpp_lib_constexpr_complex) 1332 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1333 # define __glibcxx_constexpr_complex 201711L 1334 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_complex) 1335 # define __cpp_lib_constexpr_complex 201711L 1336 # endif 1337 # endif 1338 #endif /* !defined(__cpp_lib_constexpr_complex) && defined(__glibcxx_want_constexpr_complex) */ 1339 #undef __glibcxx_want_constexpr_complex 1340 1341 #if !defined(__cpp_lib_constexpr_dynamic_alloc) 1342 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1343 # define __glibcxx_constexpr_dynamic_alloc 201907L 1344 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_dynamic_alloc) 1345 # define __cpp_lib_constexpr_dynamic_alloc 201907L 1346 # endif 1347 # endif 1348 #endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) && defined(__glibcxx_want_constexpr_dynamic_alloc) */ 1349 #undef __glibcxx_want_constexpr_dynamic_alloc 1350 1351 #if !defined(__cpp_lib_constexpr_string) 1352 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated)) 1353 # define __glibcxx_constexpr_string 201907L 1354 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string) 1355 # define __cpp_lib_constexpr_string 201907L 1356 # endif 1357 # elif (__cplusplus >= 202002L) && !_GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated)) 1358 # define __glibcxx_constexpr_string 201811L 1359 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string) 1360 # define __cpp_lib_constexpr_string 201811L 1361 # endif 1362 # elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED) 1363 # define __glibcxx_constexpr_string 201611L 1364 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string) 1365 # define __cpp_lib_constexpr_string 201611L 1366 # endif 1367 # endif 1368 #endif /* !defined(__cpp_lib_constexpr_string) && defined(__glibcxx_want_constexpr_string) */ 1369 #undef __glibcxx_want_constexpr_string 1370 1371 #if !defined(__cpp_lib_constexpr_vector) 1372 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1373 # define __glibcxx_constexpr_vector 201907L 1374 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_vector) 1375 # define __cpp_lib_constexpr_vector 201907L 1376 # endif 1377 # endif 1378 #endif /* !defined(__cpp_lib_constexpr_vector) && defined(__glibcxx_want_constexpr_vector) */ 1379 #undef __glibcxx_want_constexpr_vector 1380 1381 #if !defined(__cpp_lib_erase_if) 1382 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1383 # define __glibcxx_erase_if 202002L 1384 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_erase_if) 1385 # define __cpp_lib_erase_if 202002L 1386 # endif 1387 # endif 1388 #endif /* !defined(__cpp_lib_erase_if) && defined(__glibcxx_want_erase_if) */ 1389 #undef __glibcxx_want_erase_if 1390 1391 #if !defined(__cpp_lib_generic_unordered_lookup) 1392 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1393 # define __glibcxx_generic_unordered_lookup 201811L 1394 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_unordered_lookup) 1395 # define __cpp_lib_generic_unordered_lookup 201811L 1396 # endif 1397 # endif 1398 #endif /* !defined(__cpp_lib_generic_unordered_lookup) && defined(__glibcxx_want_generic_unordered_lookup) */ 1399 #undef __glibcxx_want_generic_unordered_lookup 1400 1401 #if !defined(__cpp_lib_jthread) 1402 # if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED 1403 # define __glibcxx_jthread 201911L 1404 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_jthread) 1405 # define __cpp_lib_jthread 201911L 1406 # endif 1407 # endif 1408 #endif /* !defined(__cpp_lib_jthread) && defined(__glibcxx_want_jthread) */ 1409 #undef __glibcxx_want_jthread 1410 1411 #if !defined(__cpp_lib_latch) 1412 # if (__cplusplus >= 202002L) && (__glibcxx_atomic_wait) 1413 # define __glibcxx_latch 201907L 1414 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_latch) 1415 # define __cpp_lib_latch 201907L 1416 # endif 1417 # endif 1418 #endif /* !defined(__cpp_lib_latch) && defined(__glibcxx_want_latch) */ 1419 #undef __glibcxx_want_latch 1420 1421 #if !defined(__cpp_lib_list_remove_return_type) 1422 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1423 # define __glibcxx_list_remove_return_type 201806L 1424 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_list_remove_return_type) 1425 # define __cpp_lib_list_remove_return_type 201806L 1426 # endif 1427 # endif 1428 #endif /* !defined(__cpp_lib_list_remove_return_type) && defined(__glibcxx_want_list_remove_return_type) */ 1429 #undef __glibcxx_want_list_remove_return_type 1430 1431 #if !defined(__cpp_lib_polymorphic_allocator) 1432 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1433 # define __glibcxx_polymorphic_allocator 201902L 1434 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic_allocator) 1435 # define __cpp_lib_polymorphic_allocator 201902L 1436 # endif 1437 # endif 1438 #endif /* !defined(__cpp_lib_polymorphic_allocator) && defined(__glibcxx_want_polymorphic_allocator) */ 1439 #undef __glibcxx_want_polymorphic_allocator 1440 1441 #if !defined(__cpp_lib_move_iterator_concept) 1442 # if (__cplusplus >= 202002L) && (__glibcxx_concepts) 1443 # define __glibcxx_move_iterator_concept 202207L 1444 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_iterator_concept) 1445 # define __cpp_lib_move_iterator_concept 202207L 1446 # endif 1447 # endif 1448 #endif /* !defined(__cpp_lib_move_iterator_concept) && defined(__glibcxx_want_move_iterator_concept) */ 1449 #undef __glibcxx_want_move_iterator_concept 1450 1451 #if !defined(__cpp_lib_semaphore) 1452 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED && (__glibcxx_atomic_wait || _GLIBCXX_HAVE_POSIX_SEMAPHORE) 1453 # define __glibcxx_semaphore 201907L 1454 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_semaphore) 1455 # define __cpp_lib_semaphore 201907L 1456 # endif 1457 # endif 1458 #endif /* !defined(__cpp_lib_semaphore) && defined(__glibcxx_want_semaphore) */ 1459 #undef __glibcxx_want_semaphore 1460 1461 #if !defined(__cpp_lib_smart_ptr_for_overwrite) 1462 # if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED 1463 # define __glibcxx_smart_ptr_for_overwrite 202002L 1464 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_smart_ptr_for_overwrite) 1465 # define __cpp_lib_smart_ptr_for_overwrite 202002L 1466 # endif 1467 # endif 1468 #endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) && defined(__glibcxx_want_smart_ptr_for_overwrite) */ 1469 #undef __glibcxx_want_smart_ptr_for_overwrite 1470 1471 #if !defined(__cpp_lib_syncbuf) 1472 # if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED 1473 # define __glibcxx_syncbuf 201803L 1474 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_syncbuf) 1475 # define __cpp_lib_syncbuf 201803L 1476 # endif 1477 # endif 1478 #endif /* !defined(__cpp_lib_syncbuf) && defined(__glibcxx_want_syncbuf) */ 1479 #undef __glibcxx_want_syncbuf 1480 1481 #if !defined(__cpp_lib_byteswap) 1482 # if (__cplusplus >= 202100L) 1483 # define __glibcxx_byteswap 202110L 1484 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_byteswap) 1485 # define __cpp_lib_byteswap 202110L 1486 # endif 1487 # endif 1488 #endif /* !defined(__cpp_lib_byteswap) && defined(__glibcxx_want_byteswap) */ 1489 #undef __glibcxx_want_byteswap 1490 1491 #if !defined(__cpp_lib_constexpr_charconv) 1492 # if (__cplusplus >= 202100L) 1493 # define __glibcxx_constexpr_charconv 202207L 1494 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_charconv) 1495 # define __cpp_lib_constexpr_charconv 202207L 1496 # endif 1497 # endif 1498 #endif /* !defined(__cpp_lib_constexpr_charconv) && defined(__glibcxx_want_constexpr_charconv) */ 1499 #undef __glibcxx_want_constexpr_charconv 1500 1501 #if !defined(__cpp_lib_constexpr_typeinfo) 1502 # if (__cplusplus >= 202100L) 1503 # define __glibcxx_constexpr_typeinfo 202106L 1504 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_typeinfo) 1505 # define __cpp_lib_constexpr_typeinfo 202106L 1506 # endif 1507 # endif 1508 #endif /* !defined(__cpp_lib_constexpr_typeinfo) && defined(__glibcxx_want_constexpr_typeinfo) */ 1509 #undef __glibcxx_want_constexpr_typeinfo 1510 1511 #if !defined(__cpp_lib_expected) 1512 # if (__cplusplus >= 202100L) && (__cpp_concepts >= 202002L) 1513 # define __glibcxx_expected 202211L 1514 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_expected) 1515 # define __cpp_lib_expected 202211L 1516 # endif 1517 # endif 1518 #endif /* !defined(__cpp_lib_expected) && defined(__glibcxx_want_expected) */ 1519 #undef __glibcxx_want_expected 1520 1521 #if !defined(__cpp_lib_freestanding_algorithm) 1522 # if (__cplusplus >= 202100L) 1523 # define __glibcxx_freestanding_algorithm 202311L 1524 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_algorithm) 1525 # define __cpp_lib_freestanding_algorithm 202311L 1526 # endif 1527 # endif 1528 #endif /* !defined(__cpp_lib_freestanding_algorithm) && defined(__glibcxx_want_freestanding_algorithm) */ 1529 #undef __glibcxx_want_freestanding_algorithm 1530 1531 #if !defined(__cpp_lib_freestanding_array) 1532 # if (__cplusplus >= 202100L) 1533 # define __glibcxx_freestanding_array 202311L 1534 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_array) 1535 # define __cpp_lib_freestanding_array 202311L 1536 # endif 1537 # endif 1538 #endif /* !defined(__cpp_lib_freestanding_array) && defined(__glibcxx_want_freestanding_array) */ 1539 #undef __glibcxx_want_freestanding_array 1540 1541 #if !defined(__cpp_lib_freestanding_cstring) 1542 # if (__cplusplus >= 202100L) 1543 # define __glibcxx_freestanding_cstring 202311L 1544 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_cstring) 1545 # define __cpp_lib_freestanding_cstring 202311L 1546 # endif 1547 # endif 1548 #endif /* !defined(__cpp_lib_freestanding_cstring) && defined(__glibcxx_want_freestanding_cstring) */ 1549 #undef __glibcxx_want_freestanding_cstring 1550 1551 #if !defined(__cpp_lib_freestanding_expected) 1552 # if (__cplusplus >= 202100L) && (__cpp_lib_expected) 1553 # define __glibcxx_freestanding_expected 202311L 1554 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_expected) 1555 # define __cpp_lib_freestanding_expected 202311L 1556 # endif 1557 # endif 1558 #endif /* !defined(__cpp_lib_freestanding_expected) && defined(__glibcxx_want_freestanding_expected) */ 1559 #undef __glibcxx_want_freestanding_expected 1560 1561 #if !defined(__cpp_lib_freestanding_optional) 1562 # if (__cplusplus >= 202100L) 1563 # define __glibcxx_freestanding_optional 202311L 1564 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_optional) 1565 # define __cpp_lib_freestanding_optional 202311L 1566 # endif 1567 # endif 1568 #endif /* !defined(__cpp_lib_freestanding_optional) && defined(__glibcxx_want_freestanding_optional) */ 1569 #undef __glibcxx_want_freestanding_optional 1570 1571 #if !defined(__cpp_lib_freestanding_string_view) 1572 # if (__cplusplus >= 202100L) 1573 # define __glibcxx_freestanding_string_view 202311L 1574 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_string_view) 1575 # define __cpp_lib_freestanding_string_view 202311L 1576 # endif 1577 # endif 1578 #endif /* !defined(__cpp_lib_freestanding_string_view) && defined(__glibcxx_want_freestanding_string_view) */ 1579 #undef __glibcxx_want_freestanding_string_view 1580 1581 #if !defined(__cpp_lib_freestanding_variant) 1582 # if (__cplusplus >= 202100L) 1583 # define __glibcxx_freestanding_variant 202311L 1584 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_variant) 1585 # define __cpp_lib_freestanding_variant 202311L 1586 # endif 1587 # endif 1588 #endif /* !defined(__cpp_lib_freestanding_variant) && defined(__glibcxx_want_freestanding_variant) */ 1589 #undef __glibcxx_want_freestanding_variant 1590 1591 #if !defined(__cpp_lib_invoke_r) 1592 # if (__cplusplus >= 202100L) 1593 # define __glibcxx_invoke_r 202106L 1594 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke_r) 1595 # define __cpp_lib_invoke_r 202106L 1596 # endif 1597 # endif 1598 #endif /* !defined(__cpp_lib_invoke_r) && defined(__glibcxx_want_invoke_r) */ 1599 #undef __glibcxx_want_invoke_r 1600 1601 #if !defined(__cpp_lib_is_scoped_enum) 1602 # if (__cplusplus >= 202100L) 1603 # define __glibcxx_is_scoped_enum 202011L 1604 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_scoped_enum) 1605 # define __cpp_lib_is_scoped_enum 202011L 1606 # endif 1607 # endif 1608 #endif /* !defined(__cpp_lib_is_scoped_enum) && defined(__glibcxx_want_is_scoped_enum) */ 1609 #undef __glibcxx_want_is_scoped_enum 1610 1611 #if !defined(__cpp_lib_reference_from_temporary) 1612 # if (__cplusplus >= 202100L) && (__has_builtin(__reference_constructs_from_temporary) && __has_builtin(__reference_converts_from_temporary)) 1613 # define __glibcxx_reference_from_temporary 202202L 1614 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_from_temporary) 1615 # define __cpp_lib_reference_from_temporary 202202L 1616 # endif 1617 # endif 1618 #endif /* !defined(__cpp_lib_reference_from_temporary) && defined(__glibcxx_want_reference_from_temporary) */ 1619 #undef __glibcxx_want_reference_from_temporary 1620 1621 #if !defined(__cpp_lib_ranges_to_container) 1622 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1623 # define __glibcxx_ranges_to_container 202202L 1624 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_container) 1625 # define __cpp_lib_ranges_to_container 202202L 1626 # endif 1627 # endif 1628 #endif /* !defined(__cpp_lib_ranges_to_container) && defined(__glibcxx_want_ranges_to_container) */ 1629 #undef __glibcxx_want_ranges_to_container 1630 1631 #if !defined(__cpp_lib_ranges_zip) 1632 # if (__cplusplus >= 202100L) 1633 # define __glibcxx_ranges_zip 202110L 1634 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_zip) 1635 # define __cpp_lib_ranges_zip 202110L 1636 # endif 1637 # endif 1638 #endif /* !defined(__cpp_lib_ranges_zip) && defined(__glibcxx_want_ranges_zip) */ 1639 #undef __glibcxx_want_ranges_zip 1640 1641 #if !defined(__cpp_lib_ranges_chunk) 1642 # if (__cplusplus >= 202100L) 1643 # define __glibcxx_ranges_chunk 202202L 1644 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk) 1645 # define __cpp_lib_ranges_chunk 202202L 1646 # endif 1647 # endif 1648 #endif /* !defined(__cpp_lib_ranges_chunk) && defined(__glibcxx_want_ranges_chunk) */ 1649 #undef __glibcxx_want_ranges_chunk 1650 1651 #if !defined(__cpp_lib_ranges_slide) 1652 # if (__cplusplus >= 202100L) 1653 # define __glibcxx_ranges_slide 202202L 1654 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_slide) 1655 # define __cpp_lib_ranges_slide 202202L 1656 # endif 1657 # endif 1658 #endif /* !defined(__cpp_lib_ranges_slide) && defined(__glibcxx_want_ranges_slide) */ 1659 #undef __glibcxx_want_ranges_slide 1660 1661 #if !defined(__cpp_lib_ranges_chunk_by) 1662 # if (__cplusplus >= 202100L) 1663 # define __glibcxx_ranges_chunk_by 202202L 1664 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk_by) 1665 # define __cpp_lib_ranges_chunk_by 202202L 1666 # endif 1667 # endif 1668 #endif /* !defined(__cpp_lib_ranges_chunk_by) && defined(__glibcxx_want_ranges_chunk_by) */ 1669 #undef __glibcxx_want_ranges_chunk_by 1670 1671 #if !defined(__cpp_lib_ranges_join_with) 1672 # if (__cplusplus >= 202100L) 1673 # define __glibcxx_ranges_join_with 202202L 1674 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_join_with) 1675 # define __cpp_lib_ranges_join_with 202202L 1676 # endif 1677 # endif 1678 #endif /* !defined(__cpp_lib_ranges_join_with) && defined(__glibcxx_want_ranges_join_with) */ 1679 #undef __glibcxx_want_ranges_join_with 1680 1681 #if !defined(__cpp_lib_ranges_repeat) 1682 # if (__cplusplus >= 202100L) 1683 # define __glibcxx_ranges_repeat 202207L 1684 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_repeat) 1685 # define __cpp_lib_ranges_repeat 202207L 1686 # endif 1687 # endif 1688 #endif /* !defined(__cpp_lib_ranges_repeat) && defined(__glibcxx_want_ranges_repeat) */ 1689 #undef __glibcxx_want_ranges_repeat 1690 1691 #if !defined(__cpp_lib_ranges_stride) 1692 # if (__cplusplus >= 202100L) 1693 # define __glibcxx_ranges_stride 202207L 1694 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_stride) 1695 # define __cpp_lib_ranges_stride 202207L 1696 # endif 1697 # endif 1698 #endif /* !defined(__cpp_lib_ranges_stride) && defined(__glibcxx_want_ranges_stride) */ 1699 #undef __glibcxx_want_ranges_stride 1700 1701 #if !defined(__cpp_lib_ranges_cartesian_product) 1702 # if (__cplusplus >= 202100L) 1703 # define __glibcxx_ranges_cartesian_product 202207L 1704 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cartesian_product) 1705 # define __cpp_lib_ranges_cartesian_product 202207L 1706 # endif 1707 # endif 1708 #endif /* !defined(__cpp_lib_ranges_cartesian_product) && defined(__glibcxx_want_ranges_cartesian_product) */ 1709 #undef __glibcxx_want_ranges_cartesian_product 1710 1711 #if !defined(__cpp_lib_ranges_as_rvalue) 1712 # if (__cplusplus >= 202100L) 1713 # define __glibcxx_ranges_as_rvalue 202207L 1714 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_rvalue) 1715 # define __cpp_lib_ranges_as_rvalue 202207L 1716 # endif 1717 # endif 1718 #endif /* !defined(__cpp_lib_ranges_as_rvalue) && defined(__glibcxx_want_ranges_as_rvalue) */ 1719 #undef __glibcxx_want_ranges_as_rvalue 1720 1721 #if !defined(__cpp_lib_ranges_as_const) 1722 # if (__cplusplus >= 202100L) 1723 # define __glibcxx_ranges_as_const 202311L 1724 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_const) 1725 # define __cpp_lib_ranges_as_const 202311L 1726 # endif 1727 # endif 1728 #endif /* !defined(__cpp_lib_ranges_as_const) && defined(__glibcxx_want_ranges_as_const) */ 1729 #undef __glibcxx_want_ranges_as_const 1730 1731 #if !defined(__cpp_lib_ranges_enumerate) 1732 # if (__cplusplus >= 202100L) 1733 # define __glibcxx_ranges_enumerate 202302L 1734 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_enumerate) 1735 # define __cpp_lib_ranges_enumerate 202302L 1736 # endif 1737 # endif 1738 #endif /* !defined(__cpp_lib_ranges_enumerate) && defined(__glibcxx_want_ranges_enumerate) */ 1739 #undef __glibcxx_want_ranges_enumerate 1740 1741 #if !defined(__cpp_lib_ranges_fold) 1742 # if (__cplusplus >= 202100L) 1743 # define __glibcxx_ranges_fold 202207L 1744 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_fold) 1745 # define __cpp_lib_ranges_fold 202207L 1746 # endif 1747 # endif 1748 #endif /* !defined(__cpp_lib_ranges_fold) && defined(__glibcxx_want_ranges_fold) */ 1749 #undef __glibcxx_want_ranges_fold 1750 1751 #if !defined(__cpp_lib_ranges_contains) 1752 # if (__cplusplus >= 202100L) 1753 # define __glibcxx_ranges_contains 202207L 1754 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_contains) 1755 # define __cpp_lib_ranges_contains 202207L 1756 # endif 1757 # endif 1758 #endif /* !defined(__cpp_lib_ranges_contains) && defined(__glibcxx_want_ranges_contains) */ 1759 #undef __glibcxx_want_ranges_contains 1760 1761 #if !defined(__cpp_lib_ranges_iota) 1762 # if (__cplusplus >= 202100L) 1763 # define __glibcxx_ranges_iota 202202L 1764 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_iota) 1765 # define __cpp_lib_ranges_iota 202202L 1766 # endif 1767 # endif 1768 #endif /* !defined(__cpp_lib_ranges_iota) && defined(__glibcxx_want_ranges_iota) */ 1769 #undef __glibcxx_want_ranges_iota 1770 1771 #if !defined(__cpp_lib_ranges_find_last) 1772 # if (__cplusplus >= 202100L) 1773 # define __glibcxx_ranges_find_last 202207L 1774 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_find_last) 1775 # define __cpp_lib_ranges_find_last 202207L 1776 # endif 1777 # endif 1778 #endif /* !defined(__cpp_lib_ranges_find_last) && defined(__glibcxx_want_ranges_find_last) */ 1779 #undef __glibcxx_want_ranges_find_last 1780 1781 #if !defined(__cpp_lib_constexpr_bitset) 1782 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc) 1783 # define __glibcxx_constexpr_bitset 202202L 1784 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_bitset) 1785 # define __cpp_lib_constexpr_bitset 202202L 1786 # endif 1787 # endif 1788 #endif /* !defined(__cpp_lib_constexpr_bitset) && defined(__glibcxx_want_constexpr_bitset) */ 1789 #undef __glibcxx_want_constexpr_bitset 1790 1791 #if !defined(__cpp_lib_stdatomic_h) 1792 # if (__cplusplus >= 202100L) 1793 # define __glibcxx_stdatomic_h 202011L 1794 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdatomic_h) 1795 # define __cpp_lib_stdatomic_h 202011L 1796 # endif 1797 # endif 1798 #endif /* !defined(__cpp_lib_stdatomic_h) && defined(__glibcxx_want_stdatomic_h) */ 1799 #undef __glibcxx_want_stdatomic_h 1800 1801 #if !defined(__cpp_lib_adaptor_iterator_pair_constructor) 1802 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1803 # define __glibcxx_adaptor_iterator_pair_constructor 202106L 1804 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_adaptor_iterator_pair_constructor) 1805 # define __cpp_lib_adaptor_iterator_pair_constructor 202106L 1806 # endif 1807 # endif 1808 #endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) && defined(__glibcxx_want_adaptor_iterator_pair_constructor) */ 1809 #undef __glibcxx_want_adaptor_iterator_pair_constructor 1810 1811 #if !defined(__cpp_lib_formatters) 1812 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1813 # define __glibcxx_formatters 202302L 1814 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_formatters) 1815 # define __cpp_lib_formatters 202302L 1816 # endif 1817 # endif 1818 #endif /* !defined(__cpp_lib_formatters) && defined(__glibcxx_want_formatters) */ 1819 #undef __glibcxx_want_formatters 1820 1821 #if !defined(__cpp_lib_forward_like) 1822 # if (__cplusplus >= 202100L) 1823 # define __glibcxx_forward_like 202207L 1824 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_forward_like) 1825 # define __cpp_lib_forward_like 202207L 1826 # endif 1827 # endif 1828 #endif /* !defined(__cpp_lib_forward_like) && defined(__glibcxx_want_forward_like) */ 1829 #undef __glibcxx_want_forward_like 1830 1831 #if !defined(__cpp_lib_generator) 1832 # if (__cplusplus >= 202100L) && (__glibcxx_coroutine && __cpp_sized_deallocation) 1833 # define __glibcxx_generator 202207L 1834 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generator) 1835 # define __cpp_lib_generator 202207L 1836 # endif 1837 # endif 1838 #endif /* !defined(__cpp_lib_generator) && defined(__glibcxx_want_generator) */ 1839 #undef __glibcxx_want_generator 1840 1841 #if !defined(__cpp_lib_ios_noreplace) 1842 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1843 # define __glibcxx_ios_noreplace 202207L 1844 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ios_noreplace) 1845 # define __cpp_lib_ios_noreplace 202207L 1846 # endif 1847 # endif 1848 #endif /* !defined(__cpp_lib_ios_noreplace) && defined(__glibcxx_want_ios_noreplace) */ 1849 #undef __glibcxx_want_ios_noreplace 1850 1851 #if !defined(__cpp_lib_move_only_function) 1852 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1853 # define __glibcxx_move_only_function 202110L 1854 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_only_function) 1855 # define __cpp_lib_move_only_function 202110L 1856 # endif 1857 # endif 1858 #endif /* !defined(__cpp_lib_move_only_function) && defined(__glibcxx_want_move_only_function) */ 1859 #undef __glibcxx_want_move_only_function 1860 1861 #if !defined(__cpp_lib_out_ptr) 1862 # if (__cplusplus >= 202100L) 1863 # define __glibcxx_out_ptr 202311L 1864 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_out_ptr) 1865 # define __cpp_lib_out_ptr 202311L 1866 # endif 1867 # endif 1868 #endif /* !defined(__cpp_lib_out_ptr) && defined(__glibcxx_want_out_ptr) */ 1869 #undef __glibcxx_want_out_ptr 1870 1871 #if !defined(__cpp_lib_print) 1872 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1873 # define __glibcxx_print 202211L 1874 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_print) 1875 # define __cpp_lib_print 202211L 1876 # endif 1877 # endif 1878 #endif /* !defined(__cpp_lib_print) && defined(__glibcxx_want_print) */ 1879 #undef __glibcxx_want_print 1880 1881 #if !defined(__cpp_lib_spanstream) 1882 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__glibcxx_span) 1883 # define __glibcxx_spanstream 202106L 1884 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_spanstream) 1885 # define __cpp_lib_spanstream 202106L 1886 # endif 1887 # endif 1888 #endif /* !defined(__cpp_lib_spanstream) && defined(__glibcxx_want_spanstream) */ 1889 #undef __glibcxx_want_spanstream 1890 1891 #if !defined(__cpp_lib_stacktrace) 1892 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE) 1893 # define __glibcxx_stacktrace 202011L 1894 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stacktrace) 1895 # define __cpp_lib_stacktrace 202011L 1896 # endif 1897 # endif 1898 #endif /* !defined(__cpp_lib_stacktrace) && defined(__glibcxx_want_stacktrace) */ 1899 #undef __glibcxx_want_stacktrace 1900 1901 #if !defined(__cpp_lib_string_contains) 1902 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1903 # define __glibcxx_string_contains 202011L 1904 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_contains) 1905 # define __cpp_lib_string_contains 202011L 1906 # endif 1907 # endif 1908 #endif /* !defined(__cpp_lib_string_contains) && defined(__glibcxx_want_string_contains) */ 1909 #undef __glibcxx_want_string_contains 1910 1911 #if !defined(__cpp_lib_string_resize_and_overwrite) 1912 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1913 # define __glibcxx_string_resize_and_overwrite 202110L 1914 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_resize_and_overwrite) 1915 # define __cpp_lib_string_resize_and_overwrite 202110L 1916 # endif 1917 # endif 1918 #endif /* !defined(__cpp_lib_string_resize_and_overwrite) && defined(__glibcxx_want_string_resize_and_overwrite) */ 1919 #undef __glibcxx_want_string_resize_and_overwrite 1920 1921 #if !defined(__cpp_lib_to_underlying) 1922 # if (__cplusplus >= 202100L) 1923 # define __glibcxx_to_underlying 202102L 1924 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_underlying) 1925 # define __cpp_lib_to_underlying 202102L 1926 # endif 1927 # endif 1928 #endif /* !defined(__cpp_lib_to_underlying) && defined(__glibcxx_want_to_underlying) */ 1929 #undef __glibcxx_want_to_underlying 1930 1931 #if !defined(__cpp_lib_tuple_like) 1932 # if (__cplusplus >= 202100L) 1933 # define __glibcxx_tuple_like 202207L 1934 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like) 1935 # define __cpp_lib_tuple_like 202207L 1936 # endif 1937 # endif 1938 #endif /* !defined(__cpp_lib_tuple_like) && defined(__glibcxx_want_tuple_like) */ 1939 #undef __glibcxx_want_tuple_like 1940 1941 #if !defined(__cpp_lib_unreachable) 1942 # if (__cplusplus >= 202100L) 1943 # define __glibcxx_unreachable 202202L 1944 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unreachable) 1945 # define __cpp_lib_unreachable 202202L 1946 # endif 1947 # endif 1948 #endif /* !defined(__cpp_lib_unreachable) && defined(__glibcxx_want_unreachable) */ 1949 #undef __glibcxx_want_unreachable 1950 1951 #if !defined(__cpp_lib_fstream_native_handle) 1952 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED 1953 # define __glibcxx_fstream_native_handle 202306L 1954 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_fstream_native_handle) 1955 # define __cpp_lib_fstream_native_handle 202306L 1956 # endif 1957 # endif 1958 #endif /* !defined(__cpp_lib_fstream_native_handle) && defined(__glibcxx_want_fstream_native_handle) */ 1959 #undef __glibcxx_want_fstream_native_handle 1960 1961 #if !defined(__cpp_lib_ratio) 1962 # if (__cplusplus > 202302L) 1963 # define __glibcxx_ratio 202306L 1964 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ratio) 1965 # define __cpp_lib_ratio 202306L 1966 # endif 1967 # endif 1968 #endif /* !defined(__cpp_lib_ratio) && defined(__glibcxx_want_ratio) */ 1969 #undef __glibcxx_want_ratio 1970 1971 #if !defined(__cpp_lib_reference_wrapper) 1972 # if (__cplusplus > 202302L) 1973 # define __glibcxx_reference_wrapper 202403L 1974 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_wrapper) 1975 # define __cpp_lib_reference_wrapper 202403L 1976 # endif 1977 # endif 1978 #endif /* !defined(__cpp_lib_reference_wrapper) && defined(__glibcxx_want_reference_wrapper) */ 1979 #undef __glibcxx_want_reference_wrapper 1980 1981 #if !defined(__cpp_lib_saturation_arithmetic) 1982 # if (__cplusplus > 202302L) 1983 # define __glibcxx_saturation_arithmetic 202311L 1984 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_saturation_arithmetic) 1985 # define __cpp_lib_saturation_arithmetic 202311L 1986 # endif 1987 # endif 1988 #endif /* !defined(__cpp_lib_saturation_arithmetic) && defined(__glibcxx_want_saturation_arithmetic) */ 1989 #undef __glibcxx_want_saturation_arithmetic 1990 1991 #if !defined(__cpp_lib_text_encoding) 1992 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_USE_NL_LANGINFO_L) 1993 # define __glibcxx_text_encoding 202306L 1994 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_text_encoding) 1995 # define __cpp_lib_text_encoding 202306L 1996 # endif 1997 # endif 1998 #endif /* !defined(__cpp_lib_text_encoding) && defined(__glibcxx_want_text_encoding) */ 1999 #undef __glibcxx_want_text_encoding 2000 2001 #if !defined(__cpp_lib_to_string) 2002 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars) 2003 # define __glibcxx_to_string 202306L 2004 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_string) 2005 # define __cpp_lib_to_string 202306L 2006 # endif 2007 # endif 2008 #endif /* !defined(__cpp_lib_to_string) && defined(__glibcxx_want_to_string) */ 2009 #undef __glibcxx_want_to_string 2010 2011 #undef __glibcxx_want_all 2012