Where Online Learning is simpler!
The C and C++ Include Header Files
cat -n /usr/include/c++/15/bits/version.h
1 // Copyright (C) 2023-2025 Free Software Foundation, Inc. 2 3 // This file is part of the GNU ISO C++ Library. This library is free 4 // software; you can redistribute it and/or modify it under the 5 // terms of the GNU General Public License as published by the 6 // Free Software Foundation; either version 3, or (at your option) 7 // any later version. 8 9 // This library is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 14 // Under Section 7 of GPL version 3, you are granted additional 15 // permissions described in the GCC Runtime Library Exception, version 16 // 3.1, as published by the Free Software Foundation. 17 18 // You should have received a copy of the GNU General Public License and 19 // a copy of the GCC Runtime Library Exception along with this program; 20 // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 21 // <http://www.gnu.org/licenses/>. 22 23 // DO NOT EDIT THIS FILE (version.h) 24 // 25 // It has been AutoGen-ed 26 // From the definitions version.def 27 // and the template file version.tpl 28 29 /** @file bits/version.h 30 * This is an internal header file, included by other library headers. 31 * Do not attempt to use it directly. @headername{version} 32 */ 33 34 // Usage guide: 35 // 36 // In your usual header, do something like: 37 // 38 // #define __glibcxx_want_ranges 39 // #define __glibcxx_want_concepts 40 // #include <bits/version.h> 41 // 42 // This will generate the FTMs you named, and let you use them in your code as 43 // if it was user code. All macros are also exposed under __glibcxx_NAME even 44 // if unwanted, to permit bits and other FTMs to depend on them for condtional 45 // computation without exposing extra FTMs to user code. 46 47 #ifdef _GLIBCXX_SYSHDR 48 #pragma GCC system_header 49 #endif 50 51 #include <bits/c++config.h> 52 53 #if !defined(__cpp_lib_incomplete_container_elements) 54 # if _GLIBCXX_HOSTED 55 # define __glibcxx_incomplete_container_elements 201505L 56 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_incomplete_container_elements) 57 # define __cpp_lib_incomplete_container_elements 201505L 58 # endif 59 # endif 60 #endif /* !defined(__cpp_lib_incomplete_container_elements) && defined(__glibcxx_want_incomplete_container_elements) */ 61 #undef __glibcxx_want_incomplete_container_elements 62 63 #if !defined(__cpp_lib_uncaught_exceptions) 64 # if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 199711L)) 65 # define __glibcxx_uncaught_exceptions 201411L 66 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_uncaught_exceptions) 67 # define __cpp_lib_uncaught_exceptions 201411L 68 # endif 69 # endif 70 #endif /* !defined(__cpp_lib_uncaught_exceptions) && defined(__glibcxx_want_uncaught_exceptions) */ 71 #undef __glibcxx_want_uncaught_exceptions 72 73 #if !defined(__cpp_lib_allocator_traits_is_always_equal) 74 # if (__cplusplus >= 201103L) 75 # define __glibcxx_allocator_traits_is_always_equal 201411L 76 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_allocator_traits_is_always_equal) 77 # define __cpp_lib_allocator_traits_is_always_equal 201411L 78 # endif 79 # endif 80 #endif /* !defined(__cpp_lib_allocator_traits_is_always_equal) && defined(__glibcxx_want_allocator_traits_is_always_equal) */ 81 #undef __glibcxx_want_allocator_traits_is_always_equal 82 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 88 # endif 89 # endif 90 #endif /* !defined(__cpp_lib_is_null_pointer) && defined(__glibcxx_want_is_null_pointer) */ 91 #undef __glibcxx_want_is_null_pointer 92 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 98 # endif 99 # endif 100 #endif /* !defined(__cpp_lib_result_of_sfinae) && defined(__glibcxx_want_result_of_sfinae) */ 101 #undef __glibcxx_want_result_of_sfinae 102 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 108 # endif 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 113 # endif 114 # endif 115 #endif /* !defined(__cpp_lib_shared_ptr_arrays) && defined(__glibcxx_want_shared_ptr_arrays) */ 116 #undef __glibcxx_want_shared_ptr_arrays 117 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 123 # endif 124 # endif 125 #endif /* !defined(__cpp_lib_is_swappable) && defined(__glibcxx_want_is_swappable) */ 126 #undef __glibcxx_want_is_swappable 127 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 133 # endif 134 # endif 135 #endif /* !defined(__cpp_lib_void_t) && defined(__glibcxx_want_void_t) */ 136 #undef __glibcxx_want_void_t 137 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 143 # endif 144 # endif 145 #endif /* !defined(__cpp_lib_enable_shared_from_this) && defined(__glibcxx_want_enable_shared_from_this) */ 146 #undef __glibcxx_want_enable_shared_from_this 147 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 153 # endif 154 # endif 155 #endif /* !defined(__cpp_lib_math_spec_funcs) && defined(__glibcxx_want_math_spec_funcs) */ 156 #undef __glibcxx_want_math_spec_funcs 157 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 163 # endif 164 # endif 165 #endif /* !defined(__cpp_lib_coroutine) && defined(__glibcxx_want_coroutine) */ 166 #undef __glibcxx_want_coroutine 167 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 173 # endif 174 # endif 175 #endif /* !defined(__cpp_lib_exchange_function) && defined(__glibcxx_want_exchange_function) */ 176 #undef __glibcxx_want_exchange_function 177 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 183 # endif 184 # endif 185 #endif /* !defined(__cpp_lib_integer_sequence) && defined(__glibcxx_want_integer_sequence) */ 186 #undef __glibcxx_want_integer_sequence 187 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 193 # endif 194 # endif 195 #endif /* !defined(__cpp_lib_integral_constant_callable) && defined(__glibcxx_want_integral_constant_callable) */ 196 #undef __glibcxx_want_integral_constant_callable 197 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 203 # endif 204 # endif 205 #endif /* !defined(__cpp_lib_is_final) && defined(__glibcxx_want_is_final) */ 206 #undef __glibcxx_want_is_final 207 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 213 # endif 214 # endif 215 #endif /* !defined(__cpp_lib_make_reverse_iterator) && defined(__glibcxx_want_make_reverse_iterator) */ 216 #undef __glibcxx_want_make_reverse_iterator 217 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 223 # endif 224 # endif 225 #endif /* !defined(__cpp_lib_null_iterators) && defined(__glibcxx_want_null_iterators) */ 226 #undef __glibcxx_want_null_iterators 227 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 233 # endif 234 # endif 235 #endif /* !defined(__cpp_lib_transformation_trait_aliases) && defined(__glibcxx_want_transformation_trait_aliases) */ 236 #undef __glibcxx_want_transformation_trait_aliases 237 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 243 # endif 244 # endif 245 #endif /* !defined(__cpp_lib_transparent_operators) && defined(__glibcxx_want_transparent_operators) */ 246 #undef __glibcxx_want_transparent_operators 247 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 253 # endif 254 # endif 255 #endif /* !defined(__cpp_lib_tuple_element_t) && defined(__glibcxx_want_tuple_element_t) */ 256 #undef __glibcxx_want_tuple_element_t 257 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 263 # endif 264 # endif 265 #endif /* !defined(__cpp_lib_tuples_by_type) && defined(__glibcxx_want_tuples_by_type) */ 266 #undef __glibcxx_want_tuples_by_type 267 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 273 # endif 274 # endif 275 #endif /* !defined(__cpp_lib_robust_nonmodifying_seq_ops) && defined(__glibcxx_want_robust_nonmodifying_seq_ops) */ 276 #undef __glibcxx_want_robust_nonmodifying_seq_ops 277 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 283 # endif 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 288 # endif 289 # endif 290 #endif /* !defined(__cpp_lib_to_chars) && defined(__glibcxx_want_to_chars) */ 291 #undef __glibcxx_want_to_chars 292 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 298 # endif 299 # endif 300 #endif /* !defined(__cpp_lib_chrono_udls) && defined(__glibcxx_want_chrono_udls) */ 301 #undef __glibcxx_want_chrono_udls 302 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 308 # endif 309 # endif 310 #endif /* !defined(__cpp_lib_complex_udls) && defined(__glibcxx_want_complex_udls) */ 311 #undef __glibcxx_want_complex_udls 312 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 318 # endif 319 # endif 320 #endif /* !defined(__cpp_lib_generic_associative_lookup) && defined(__glibcxx_want_generic_associative_lookup) */ 321 #undef __glibcxx_want_generic_associative_lookup 322 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 328 # endif 329 # endif 330 #endif /* !defined(__cpp_lib_make_unique) && defined(__glibcxx_want_make_unique) */ 331 #undef __glibcxx_want_make_unique 332 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 338 # endif 339 # endif 340 #endif /* !defined(__cpp_lib_quoted_string_io) && defined(__glibcxx_want_quoted_string_io) */ 341 #undef __glibcxx_want_quoted_string_io 342 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 348 # endif 349 # endif 350 #endif /* !defined(__cpp_lib_shared_timed_mutex) && defined(__glibcxx_want_shared_timed_mutex) */ 351 #undef __glibcxx_want_shared_timed_mutex 352 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 358 # endif 359 # endif 360 #endif /* !defined(__cpp_lib_string_udls) && defined(__glibcxx_want_string_udls) */ 361 #undef __glibcxx_want_string_udls 362 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 368 # endif 369 # endif 370 #endif /* !defined(__cpp_lib_addressof_constexpr) && defined(__glibcxx_want_addressof_constexpr) */ 371 #undef __glibcxx_want_addressof_constexpr 372 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 378 # endif 379 # endif 380 #endif /* !defined(__cpp_lib_any) && defined(__glibcxx_want_any) */ 381 #undef __glibcxx_want_any 382 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 388 # endif 389 # endif 390 #endif /* !defined(__cpp_lib_apply) && defined(__glibcxx_want_apply) */ 391 #undef __glibcxx_want_apply 392 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 398 # endif 399 # endif 400 #endif /* !defined(__cpp_lib_as_const) && defined(__glibcxx_want_as_const) */ 401 #undef __glibcxx_want_as_const 402 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 408 # endif 409 # endif 410 #endif /* !defined(__cpp_lib_atomic_is_always_lock_free) && defined(__glibcxx_want_atomic_is_always_lock_free) */ 411 #undef __glibcxx_want_atomic_is_always_lock_free 412 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 418 # endif 419 # endif 420 #endif /* !defined(__cpp_lib_bool_constant) && defined(__glibcxx_want_bool_constant) */ 421 #undef __glibcxx_want_bool_constant 422 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 428 # endif 429 # endif 430 #endif /* !defined(__cpp_lib_byte) && defined(__glibcxx_want_byte) */ 431 #undef __glibcxx_want_byte 432 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 438 # endif 439 # endif 440 #endif /* !defined(__cpp_lib_has_unique_object_representations) && defined(__glibcxx_want_has_unique_object_representations) */ 441 #undef __glibcxx_want_has_unique_object_representations 442 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 448 # endif 449 # endif 450 #endif /* !defined(__cpp_lib_hardware_interference_size) && defined(__glibcxx_want_hardware_interference_size) */ 451 #undef __glibcxx_want_hardware_interference_size 452 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 458 # endif 459 # endif 460 #endif /* !defined(__cpp_lib_invoke) && defined(__glibcxx_want_invoke) */ 461 #undef __glibcxx_want_invoke 462 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 468 # endif 469 # endif 470 #endif /* !defined(__cpp_lib_is_aggregate) && defined(__glibcxx_want_is_aggregate) */ 471 #undef __glibcxx_want_is_aggregate 472 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 478 # endif 479 # endif 480 #endif /* !defined(__cpp_lib_is_invocable) && defined(__glibcxx_want_is_invocable) */ 481 #undef __glibcxx_want_is_invocable 482 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 488 # endif 489 # endif 490 #endif /* !defined(__cpp_lib_launder) && defined(__glibcxx_want_launder) */ 491 #undef __glibcxx_want_launder 492 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 498 # endif 499 # endif 500 #endif /* !defined(__cpp_lib_logical_traits) && defined(__glibcxx_want_logical_traits) */ 501 #undef __glibcxx_want_logical_traits 502 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 508 # endif 509 # endif 510 #endif /* !defined(__cpp_lib_make_from_tuple) && defined(__glibcxx_want_make_from_tuple) */ 511 #undef __glibcxx_want_make_from_tuple 512 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 518 # endif 519 # endif 520 #endif /* !defined(__cpp_lib_not_fn) && defined(__glibcxx_want_not_fn) */ 521 #undef __glibcxx_want_not_fn 522 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 528 # endif 529 # endif 530 #endif /* !defined(__cpp_lib_type_trait_variable_templates) && defined(__glibcxx_want_type_trait_variable_templates) */ 531 #undef __glibcxx_want_type_trait_variable_templates 532 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 538 # endif 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 543 # endif 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 548 # endif 549 # endif 550 #endif /* !defined(__cpp_lib_variant) && defined(__glibcxx_want_variant) */ 551 #undef __glibcxx_want_variant 552 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 558 # endif 559 # endif 560 #endif /* !defined(__cpp_lib_lcm) && defined(__glibcxx_want_lcm) */ 561 #undef __glibcxx_want_lcm 562 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 568 # endif 569 # endif 570 #endif /* !defined(__cpp_lib_gcd) && defined(__glibcxx_want_gcd) */ 571 #undef __glibcxx_want_gcd 572 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 578 # endif 579 # endif 580 #endif /* !defined(__cpp_lib_gcd_lcm) && defined(__glibcxx_want_gcd_lcm) */ 581 #undef __glibcxx_want_gcd_lcm 582 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 588 # endif 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 593 # endif 594 # endif 595 #endif /* !defined(__cpp_lib_raw_memory_algorithms) && defined(__glibcxx_want_raw_memory_algorithms) */ 596 #undef __glibcxx_want_raw_memory_algorithms 597 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 603 # endif 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 608 # endif 609 # endif 610 #endif /* !defined(__cpp_lib_array_constexpr) && defined(__glibcxx_want_array_constexpr) */ 611 #undef __glibcxx_want_array_constexpr 612 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 618 # endif 619 # endif 620 #endif /* !defined(__cpp_lib_nonmember_container_access) && defined(__glibcxx_want_nonmember_container_access) */ 621 #undef __glibcxx_want_nonmember_container_access 622 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 628 # endif 629 # endif 630 #endif /* !defined(__cpp_lib_clamp) && defined(__glibcxx_want_clamp) */ 631 #undef __glibcxx_want_clamp 632 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 638 # endif 639 # endif 640 #endif /* !defined(__cpp_lib_sample) && defined(__glibcxx_want_sample) */ 641 #undef __glibcxx_want_sample 642 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 648 # endif 649 # endif 650 #endif /* !defined(__cpp_lib_boyer_moore_searcher) && defined(__glibcxx_want_boyer_moore_searcher) */ 651 #undef __glibcxx_want_boyer_moore_searcher 652 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 658 # endif 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 663 # endif 664 # endif 665 #endif /* !defined(__cpp_lib_chrono) && defined(__glibcxx_want_chrono) */ 666 #undef __glibcxx_want_chrono 667 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 673 # endif 674 # endif 675 #endif /* !defined(__cpp_lib_execution) && defined(__glibcxx_want_execution) */ 676 #undef __glibcxx_want_execution 677 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 683 # endif 684 # endif 685 #endif /* !defined(__cpp_lib_filesystem) && defined(__glibcxx_want_filesystem) */ 686 #undef __glibcxx_want_filesystem 687 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 693 # endif 694 # endif 695 #endif /* !defined(__cpp_lib_hypot) && defined(__glibcxx_want_hypot) */ 696 #undef __glibcxx_want_hypot 697 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 703 # endif 704 # endif 705 #endif /* !defined(__cpp_lib_map_try_emplace) && defined(__glibcxx_want_map_try_emplace) */ 706 #undef __glibcxx_want_map_try_emplace 707 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 713 # endif 714 # endif 715 #endif /* !defined(__cpp_lib_math_special_functions) && defined(__glibcxx_want_math_special_functions) */ 716 #undef __glibcxx_want_math_special_functions 717 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 723 # endif 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 728 # endif 729 # endif 730 #endif /* !defined(__cpp_lib_memory_resource) && defined(__glibcxx_want_memory_resource) */ 731 #undef __glibcxx_want_memory_resource 732 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 738 # endif 739 # endif 740 #endif /* !defined(__cpp_lib_node_extract) && defined(__glibcxx_want_node_extract) */ 741 #undef __glibcxx_want_node_extract 742 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 748 # endif 749 # endif 750 #endif /* !defined(__cpp_lib_parallel_algorithm) && defined(__glibcxx_want_parallel_algorithm) */ 751 #undef __glibcxx_want_parallel_algorithm 752 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 758 # endif 759 # endif 760 #endif /* !defined(__cpp_lib_scoped_lock) && defined(__glibcxx_want_scoped_lock) */ 761 #undef __glibcxx_want_scoped_lock 762 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 768 # endif 769 # endif 770 #endif /* !defined(__cpp_lib_shared_mutex) && defined(__glibcxx_want_shared_mutex) */ 771 #undef __glibcxx_want_shared_mutex 772 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 778 # endif 779 # endif 780 #endif /* !defined(__cpp_lib_shared_ptr_weak_type) && defined(__glibcxx_want_shared_ptr_weak_type) */ 781 #undef __glibcxx_want_shared_ptr_weak_type 782 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 788 # endif 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 793 # endif 794 # endif 795 #endif /* !defined(__cpp_lib_string_view) && defined(__glibcxx_want_string_view) */ 796 #undef __glibcxx_want_string_view 797 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 803 # endif 804 # endif 805 #endif /* !defined(__cpp_lib_unordered_map_try_emplace) && defined(__glibcxx_want_unordered_map_try_emplace) */ 806 #undef __glibcxx_want_unordered_map_try_emplace 807 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 813 # endif 814 # endif 815 #endif /* !defined(__cpp_lib_assume_aligned) && defined(__glibcxx_want_assume_aligned) */ 816 #undef __glibcxx_want_assume_aligned 817 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 823 # endif 824 # endif 825 #endif /* !defined(__cpp_lib_atomic_flag_test) && defined(__glibcxx_want_atomic_flag_test) */ 826 #undef __glibcxx_want_atomic_flag_test 827 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 833 # endif 834 # endif 835 #endif /* !defined(__cpp_lib_atomic_float) && defined(__glibcxx_want_atomic_float) */ 836 #undef __glibcxx_want_atomic_float 837 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 843 # endif 844 # endif 845 #endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) && defined(__glibcxx_want_atomic_lock_free_type_aliases) */ 846 #undef __glibcxx_want_atomic_lock_free_type_aliases 847 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 853 # endif 854 # endif 855 #endif /* !defined(__cpp_lib_atomic_ref) && defined(__glibcxx_want_atomic_ref) */ 856 #undef __glibcxx_want_atomic_ref 857 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 863 # endif 864 # endif 865 #endif /* !defined(__cpp_lib_atomic_value_initialization) && defined(__glibcxx_want_atomic_value_initialization) */ 866 #undef __glibcxx_want_atomic_value_initialization 867 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 873 # endif 874 # endif 875 #endif /* !defined(__cpp_lib_bind_front) && defined(__glibcxx_want_bind_front) */ 876 #undef __glibcxx_want_bind_front 877 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 883 # endif 884 # endif 885 #endif /* !defined(__cpp_lib_bind_back) && defined(__glibcxx_want_bind_back) */ 886 #undef __glibcxx_want_bind_back 887 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 893 # endif 894 # endif 895 #endif /* !defined(__cpp_lib_starts_ends_with) && defined(__glibcxx_want_starts_ends_with) */ 896 #undef __glibcxx_want_starts_ends_with 897 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 903 # endif 904 # endif 905 #endif /* !defined(__cpp_lib_bit_cast) && defined(__glibcxx_want_bit_cast) */ 906 #undef __glibcxx_want_bit_cast 907 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 913 # endif 914 # endif 915 #endif /* !defined(__cpp_lib_bitops) && defined(__glibcxx_want_bitops) */ 916 #undef __glibcxx_want_bitops 917 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 923 # endif 924 # endif 925 #endif /* !defined(__cpp_lib_bounded_array_traits) && defined(__glibcxx_want_bounded_array_traits) */ 926 #undef __glibcxx_want_bounded_array_traits 927 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 933 # endif 934 # endif 935 #endif /* !defined(__cpp_lib_concepts) && defined(__glibcxx_want_concepts) */ 936 #undef __glibcxx_want_concepts 937 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 943 # endif 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 948 # endif 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 953 # endif 954 # endif 955 #endif /* !defined(__cpp_lib_optional) && defined(__glibcxx_want_optional) */ 956 #undef __glibcxx_want_optional 957 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 963 # endif 964 # endif 965 #endif /* !defined(__cpp_lib_destroying_delete) && defined(__glibcxx_want_destroying_delete) */ 966 #undef __glibcxx_want_destroying_delete 967 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 973 # endif 974 # endif 975 #endif /* !defined(__cpp_lib_constexpr_string_view) && defined(__glibcxx_want_constexpr_string_view) */ 976 #undef __glibcxx_want_constexpr_string_view 977 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 983 # endif 984 # endif 985 #endif /* !defined(__cpp_lib_endian) && defined(__glibcxx_want_endian) */ 986 #undef __glibcxx_want_endian 987 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 993 # endif 994 # endif 995 #endif /* !defined(__cpp_lib_int_pow2) && defined(__glibcxx_want_int_pow2) */ 996 #undef __glibcxx_want_int_pow2 997 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 1003 # endif 1004 # endif 1005 #endif /* !defined(__cpp_lib_integer_comparison_functions) && defined(__glibcxx_want_integer_comparison_functions) */ 1006 #undef __glibcxx_want_integer_comparison_functions 1007 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 1013 # endif 1014 # endif 1015 #endif /* !defined(__cpp_lib_is_constant_evaluated) && defined(__glibcxx_want_is_constant_evaluated) */ 1016 #undef __glibcxx_want_is_constant_evaluated 1017 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 1023 # endif 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 1028 # endif 1029 # endif 1030 #endif /* !defined(__cpp_lib_constexpr_char_traits) && defined(__glibcxx_want_constexpr_char_traits) */ 1031 #undef __glibcxx_want_constexpr_char_traits 1032 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 1038 # endif 1039 # endif 1040 #endif /* !defined(__cpp_lib_is_layout_compatible) && defined(__glibcxx_want_is_layout_compatible) */ 1041 #undef __glibcxx_want_is_layout_compatible 1042 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 1048 # endif 1049 # endif 1050 #endif /* !defined(__cpp_lib_is_nothrow_convertible) && defined(__glibcxx_want_is_nothrow_convertible) */ 1051 #undef __glibcxx_want_is_nothrow_convertible 1052 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 1058 # endif 1059 # endif 1060 #endif /* !defined(__cpp_lib_is_pointer_interconvertible) && defined(__glibcxx_want_is_pointer_interconvertible) */ 1061 #undef __glibcxx_want_is_pointer_interconvertible 1062 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 1068 # endif 1069 # endif 1070 #endif /* !defined(__cpp_lib_math_constants) && defined(__glibcxx_want_math_constants) */ 1071 #undef __glibcxx_want_math_constants 1072 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 1078 # endif 1079 # endif 1080 #endif /* !defined(__cpp_lib_make_obj_using_allocator) && defined(__glibcxx_want_make_obj_using_allocator) */ 1081 #undef __glibcxx_want_make_obj_using_allocator 1082 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 1088 # endif 1089 # endif 1090 #endif /* !defined(__cpp_lib_remove_cvref) && defined(__glibcxx_want_remove_cvref) */ 1091 #undef __glibcxx_want_remove_cvref 1092 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 1098 # endif 1099 # endif 1100 #endif /* !defined(__cpp_lib_source_location) && defined(__glibcxx_want_source_location) */ 1101 #undef __glibcxx_want_source_location 1102 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 1108 # endif 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 1113 # endif 1114 # endif 1115 #endif /* !defined(__cpp_lib_span) && defined(__glibcxx_want_span) */ 1116 #undef __glibcxx_want_span 1117 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 1123 # endif 1124 # endif 1125 #endif /* !defined(__cpp_lib_ssize) && defined(__glibcxx_want_ssize) */ 1126 #undef __glibcxx_want_ssize 1127 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 1133 # endif 1134 # endif 1135 #endif /* !defined(__cpp_lib_three_way_comparison) && defined(__glibcxx_want_three_way_comparison) */ 1136 #undef __glibcxx_want_three_way_comparison 1137 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 1143 # endif 1144 # endif 1145 #endif /* !defined(__cpp_lib_to_address) && defined(__glibcxx_want_to_address) */ 1146 #undef __glibcxx_want_to_address 1147 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 1153 # endif 1154 # endif 1155 #endif /* !defined(__cpp_lib_to_array) && defined(__glibcxx_want_to_array) */ 1156 #undef __glibcxx_want_to_array 1157 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 1163 # endif 1164 # endif 1165 #endif /* !defined(__cpp_lib_type_identity) && defined(__glibcxx_want_type_identity) */ 1166 #undef __glibcxx_want_type_identity 1167 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 1173 # endif 1174 # endif 1175 #endif /* !defined(__cpp_lib_unwrap_ref) && defined(__glibcxx_want_unwrap_ref) */ 1176 #undef __glibcxx_want_unwrap_ref 1177 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 1183 # endif 1184 # endif 1185 #endif /* !defined(__cpp_lib_constexpr_iterator) && defined(__glibcxx_want_constexpr_iterator) */ 1186 #undef __glibcxx_want_constexpr_iterator 1187 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 1193 # endif 1194 # endif 1195 #endif /* !defined(__cpp_lib_interpolate) && defined(__glibcxx_want_interpolate) */ 1196 #undef __glibcxx_want_interpolate 1197 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 1203 # endif 1204 # endif 1205 #endif /* !defined(__cpp_lib_constexpr_utility) && defined(__glibcxx_want_constexpr_utility) */ 1206 #undef __glibcxx_want_constexpr_utility 1207 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 1213 # endif 1214 # endif 1215 #endif /* !defined(__cpp_lib_shift) && defined(__glibcxx_want_shift) */ 1216 #undef __glibcxx_want_shift 1217 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 1223 # endif 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 1228 # endif 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 1233 # endif 1234 # endif 1235 #endif /* !defined(__cpp_lib_ranges) && defined(__glibcxx_want_ranges) */ 1236 #undef __glibcxx_want_ranges 1237 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 1243 # endif 1244 # endif 1245 #endif /* !defined(__cpp_lib_constexpr_numeric) && defined(__glibcxx_want_constexpr_numeric) */ 1246 #undef __glibcxx_want_constexpr_numeric 1247 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 1253 # endif 1254 # endif 1255 #endif /* !defined(__cpp_lib_constexpr_functional) && defined(__glibcxx_want_constexpr_functional) */ 1256 #undef __glibcxx_want_constexpr_functional 1257 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 1263 # endif 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 1268 # endif 1269 # endif 1270 #endif /* !defined(__cpp_lib_constexpr_algorithms) && defined(__glibcxx_want_constexpr_algorithms) */ 1271 #undef __glibcxx_want_constexpr_algorithms 1272 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 1278 # endif 1279 # endif 1280 #endif /* !defined(__cpp_lib_constexpr_tuple) && defined(__glibcxx_want_constexpr_tuple) */ 1281 #undef __glibcxx_want_constexpr_tuple 1282 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 1288 # endif 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 1293 # endif 1294 # endif 1295 #endif /* !defined(__cpp_lib_constexpr_memory) && defined(__glibcxx_want_constexpr_memory) */ 1296 #undef __glibcxx_want_constexpr_memory 1297 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 1303 # endif 1304 # endif 1305 #endif /* !defined(__cpp_lib_atomic_shared_ptr) && defined(__glibcxx_want_atomic_shared_ptr) */ 1306 #undef __glibcxx_want_atomic_shared_ptr 1307 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 1313 # endif 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 1318 # endif 1319 # endif 1320 #endif /* !defined(__cpp_lib_atomic_wait) && defined(__glibcxx_want_atomic_wait) */ 1321 #undef __glibcxx_want_atomic_wait 1322 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 1328 # endif 1329 # endif 1330 #endif /* !defined(__cpp_lib_barrier) && defined(__glibcxx_want_barrier) */ 1331 #undef __glibcxx_want_barrier 1332 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 1338 # endif 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 1343 # endif 1344 # endif 1345 #endif /* !defined(__cpp_lib_format) && defined(__glibcxx_want_format) */ 1346 #undef __glibcxx_want_format 1347 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 1353 # endif 1354 # endif 1355 #endif /* !defined(__cpp_lib_format_uchar) && defined(__glibcxx_want_format_uchar) */ 1356 #undef __glibcxx_want_format_uchar 1357 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 1363 # endif 1364 # endif 1365 #endif /* !defined(__cpp_lib_constexpr_complex) && defined(__glibcxx_want_constexpr_complex) */ 1366 #undef __glibcxx_want_constexpr_complex 1367 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 1373 # endif 1374 # endif 1375 #endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) && defined(__glibcxx_want_constexpr_dynamic_alloc) */ 1376 #undef __glibcxx_want_constexpr_dynamic_alloc 1377 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 1383 # endif 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 1388 # endif 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 1393 # endif 1394 # endif 1395 #endif /* !defined(__cpp_lib_constexpr_string) && defined(__glibcxx_want_constexpr_string) */ 1396 #undef __glibcxx_want_constexpr_string 1397 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 1403 # endif 1404 # endif 1405 #endif /* !defined(__cpp_lib_constexpr_vector) && defined(__glibcxx_want_constexpr_vector) */ 1406 #undef __glibcxx_want_constexpr_vector 1407 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 1413 # endif 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 1418 # endif 1419 # endif 1420 #endif /* !defined(__cpp_lib_constrained_equality) && defined(__glibcxx_want_constrained_equality) */ 1421 #undef __glibcxx_want_constrained_equality 1422 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 1428 # endif 1429 # endif 1430 #endif /* !defined(__cpp_lib_erase_if) && defined(__glibcxx_want_erase_if) */ 1431 #undef __glibcxx_want_erase_if 1432 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 1438 # endif 1439 # endif 1440 #endif /* !defined(__cpp_lib_generic_unordered_lookup) && defined(__glibcxx_want_generic_unordered_lookup) */ 1441 #undef __glibcxx_want_generic_unordered_lookup 1442 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 1448 # endif 1449 # endif 1450 #endif /* !defined(__cpp_lib_jthread) && defined(__glibcxx_want_jthread) */ 1451 #undef __glibcxx_want_jthread 1452 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 1458 # endif 1459 # endif 1460 #endif /* !defined(__cpp_lib_latch) && defined(__glibcxx_want_latch) */ 1461 #undef __glibcxx_want_latch 1462 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 1468 # endif 1469 # endif 1470 #endif /* !defined(__cpp_lib_list_remove_return_type) && defined(__glibcxx_want_list_remove_return_type) */ 1471 #undef __glibcxx_want_list_remove_return_type 1472 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 1478 # endif 1479 # endif 1480 #endif /* !defined(__cpp_lib_polymorphic_allocator) && defined(__glibcxx_want_polymorphic_allocator) */ 1481 #undef __glibcxx_want_polymorphic_allocator 1482 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 1488 # endif 1489 # endif 1490 #endif /* !defined(__cpp_lib_move_iterator_concept) && defined(__glibcxx_want_move_iterator_concept) */ 1491 #undef __glibcxx_want_move_iterator_concept 1492 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 1498 # endif 1499 # endif 1500 #endif /* !defined(__cpp_lib_semaphore) && defined(__glibcxx_want_semaphore) */ 1501 #undef __glibcxx_want_semaphore 1502 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 1508 # endif 1509 # endif 1510 #endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) && defined(__glibcxx_want_smart_ptr_for_overwrite) */ 1511 #undef __glibcxx_want_smart_ptr_for_overwrite 1512 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 1518 # endif 1519 # endif 1520 #endif /* !defined(__cpp_lib_syncbuf) && defined(__glibcxx_want_syncbuf) */ 1521 #undef __glibcxx_want_syncbuf 1522 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 1528 # endif 1529 # endif 1530 #endif /* !defined(__cpp_lib_byteswap) && defined(__glibcxx_want_byteswap) */ 1531 #undef __glibcxx_want_byteswap 1532 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 1538 # endif 1539 # endif 1540 #endif /* !defined(__cpp_lib_constexpr_charconv) && defined(__glibcxx_want_constexpr_charconv) */ 1541 #undef __glibcxx_want_constexpr_charconv 1542 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 1548 # endif 1549 # endif 1550 #endif /* !defined(__cpp_lib_constexpr_typeinfo) && defined(__glibcxx_want_constexpr_typeinfo) */ 1551 #undef __glibcxx_want_constexpr_typeinfo 1552 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 1558 # endif 1559 # endif 1560 #endif /* !defined(__cpp_lib_expected) && defined(__glibcxx_want_expected) */ 1561 #undef __glibcxx_want_expected 1562 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 1568 # endif 1569 # endif 1570 #endif /* !defined(__cpp_lib_format_ranges) && defined(__glibcxx_want_format_ranges) */ 1571 #undef __glibcxx_want_format_ranges 1572 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 1578 # endif 1579 # endif 1580 #endif /* !defined(__cpp_lib_freestanding_algorithm) && defined(__glibcxx_want_freestanding_algorithm) */ 1581 #undef __glibcxx_want_freestanding_algorithm 1582 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 1588 # endif 1589 # endif 1590 #endif /* !defined(__cpp_lib_freestanding_array) && defined(__glibcxx_want_freestanding_array) */ 1591 #undef __glibcxx_want_freestanding_array 1592 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 1598 # endif 1599 # endif 1600 #endif /* !defined(__cpp_lib_freestanding_cstring) && defined(__glibcxx_want_freestanding_cstring) */ 1601 #undef __glibcxx_want_freestanding_cstring 1602 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 1608 # endif 1609 # endif 1610 #endif /* !defined(__cpp_lib_freestanding_expected) && defined(__glibcxx_want_freestanding_expected) */ 1611 #undef __glibcxx_want_freestanding_expected 1612 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 1618 # endif 1619 # endif 1620 #endif /* !defined(__cpp_lib_freestanding_optional) && defined(__glibcxx_want_freestanding_optional) */ 1621 #undef __glibcxx_want_freestanding_optional 1622 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 1628 # endif 1629 # endif 1630 #endif /* !defined(__cpp_lib_freestanding_string_view) && defined(__glibcxx_want_freestanding_string_view) */ 1631 #undef __glibcxx_want_freestanding_string_view 1632 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 1638 # endif 1639 # endif 1640 #endif /* !defined(__cpp_lib_freestanding_variant) && defined(__glibcxx_want_freestanding_variant) */ 1641 #undef __glibcxx_want_freestanding_variant 1642 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 1648 # endif 1649 # endif 1650 #endif /* !defined(__cpp_lib_invoke_r) && defined(__glibcxx_want_invoke_r) */ 1651 #undef __glibcxx_want_invoke_r 1652 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 1658 # endif 1659 # endif 1660 #endif /* !defined(__cpp_lib_is_scoped_enum) && defined(__glibcxx_want_is_scoped_enum) */ 1661 #undef __glibcxx_want_is_scoped_enum 1662 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 1668 # endif 1669 # endif 1670 #endif /* !defined(__cpp_lib_reference_from_temporary) && defined(__glibcxx_want_reference_from_temporary) */ 1671 #undef __glibcxx_want_reference_from_temporary 1672 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 1678 # endif 1679 # endif 1680 #endif /* !defined(__cpp_lib_containers_ranges) && defined(__glibcxx_want_containers_ranges) */ 1681 #undef __glibcxx_want_containers_ranges 1682 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 1688 # endif 1689 # endif 1690 #endif /* !defined(__cpp_lib_ranges_to_container) && defined(__glibcxx_want_ranges_to_container) */ 1691 #undef __glibcxx_want_ranges_to_container 1692 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 1698 # endif 1699 # endif 1700 #endif /* !defined(__cpp_lib_ranges_zip) && defined(__glibcxx_want_ranges_zip) */ 1701 #undef __glibcxx_want_ranges_zip 1702 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 1708 # endif 1709 # endif 1710 #endif /* !defined(__cpp_lib_ranges_chunk) && defined(__glibcxx_want_ranges_chunk) */ 1711 #undef __glibcxx_want_ranges_chunk 1712 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 1718 # endif 1719 # endif 1720 #endif /* !defined(__cpp_lib_ranges_slide) && defined(__glibcxx_want_ranges_slide) */ 1721 #undef __glibcxx_want_ranges_slide 1722 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 1728 # endif 1729 # endif 1730 #endif /* !defined(__cpp_lib_ranges_chunk_by) && defined(__glibcxx_want_ranges_chunk_by) */ 1731 #undef __glibcxx_want_ranges_chunk_by 1732 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 1738 # endif 1739 # endif 1740 #endif /* !defined(__cpp_lib_ranges_join_with) && defined(__glibcxx_want_ranges_join_with) */ 1741 #undef __glibcxx_want_ranges_join_with 1742 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 1748 # endif 1749 # endif 1750 #endif /* !defined(__cpp_lib_ranges_repeat) && defined(__glibcxx_want_ranges_repeat) */ 1751 #undef __glibcxx_want_ranges_repeat 1752 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 1758 # endif 1759 # endif 1760 #endif /* !defined(__cpp_lib_ranges_stride) && defined(__glibcxx_want_ranges_stride) */ 1761 #undef __glibcxx_want_ranges_stride 1762 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 1768 # endif 1769 # endif 1770 #endif /* !defined(__cpp_lib_ranges_cartesian_product) && defined(__glibcxx_want_ranges_cartesian_product) */ 1771 #undef __glibcxx_want_ranges_cartesian_product 1772 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 1778 # endif 1779 # endif 1780 #endif /* !defined(__cpp_lib_ranges_as_rvalue) && defined(__glibcxx_want_ranges_as_rvalue) */ 1781 #undef __glibcxx_want_ranges_as_rvalue 1782 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 1788 # endif 1789 # endif 1790 #endif /* !defined(__cpp_lib_ranges_as_const) && defined(__glibcxx_want_ranges_as_const) */ 1791 #undef __glibcxx_want_ranges_as_const 1792 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 1798 # endif 1799 # endif 1800 #endif /* !defined(__cpp_lib_ranges_enumerate) && defined(__glibcxx_want_ranges_enumerate) */ 1801 #undef __glibcxx_want_ranges_enumerate 1802 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 1808 # endif 1809 # endif 1810 #endif /* !defined(__cpp_lib_ranges_fold) && defined(__glibcxx_want_ranges_fold) */ 1811 #undef __glibcxx_want_ranges_fold 1812 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 1818 # endif 1819 # endif 1820 #endif /* !defined(__cpp_lib_ranges_contains) && defined(__glibcxx_want_ranges_contains) */ 1821 #undef __glibcxx_want_ranges_contains 1822 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 1828 # endif 1829 # endif 1830 #endif /* !defined(__cpp_lib_ranges_iota) && defined(__glibcxx_want_ranges_iota) */ 1831 #undef __glibcxx_want_ranges_iota 1832 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 1838 # endif 1839 # endif 1840 #endif /* !defined(__cpp_lib_ranges_find_last) && defined(__glibcxx_want_ranges_find_last) */ 1841 #undef __glibcxx_want_ranges_find_last 1842 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 1848 # endif 1849 # endif 1850 #endif /* !defined(__cpp_lib_constexpr_bitset) && defined(__glibcxx_want_constexpr_bitset) */ 1851 #undef __glibcxx_want_constexpr_bitset 1852 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 1858 # endif 1859 # endif 1860 #endif /* !defined(__cpp_lib_stdatomic_h) && defined(__glibcxx_want_stdatomic_h) */ 1861 #undef __glibcxx_want_stdatomic_h 1862 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 1868 # endif 1869 # endif 1870 #endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) && defined(__glibcxx_want_adaptor_iterator_pair_constructor) */ 1871 #undef __glibcxx_want_adaptor_iterator_pair_constructor 1872 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 1878 # endif 1879 # endif 1880 #endif /* !defined(__cpp_lib_flat_map) && defined(__glibcxx_want_flat_map) */ 1881 #undef __glibcxx_want_flat_map 1882 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 1888 # endif 1889 # endif 1890 #endif /* !defined(__cpp_lib_flat_set) && defined(__glibcxx_want_flat_set) */ 1891 #undef __glibcxx_want_flat_set 1892 1893 #if !defined(__cpp_lib_common_reference) 1894 # if (__cplusplus >= 202002L) 1895 # define __glibcxx_common_reference 202302L 1896 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_common_reference) 1897 # define __cpp_lib_common_reference 202302L 1898 # endif 1899 # endif 1900 #endif /* !defined(__cpp_lib_common_reference) && defined(__glibcxx_want_common_reference) */ 1901 #undef __glibcxx_want_common_reference 1902 1903 #if !defined(__cpp_lib_formatters) 1904 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1905 # define __glibcxx_formatters 202302L 1906 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_formatters) 1907 # define __cpp_lib_formatters 202302L 1908 # endif 1909 # endif 1910 #endif /* !defined(__cpp_lib_formatters) && defined(__glibcxx_want_formatters) */ 1911 #undef __glibcxx_want_formatters 1912 1913 #if !defined(__cpp_lib_forward_like) 1914 # if (__cplusplus >= 202100L) 1915 # define __glibcxx_forward_like 202207L 1916 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_forward_like) 1917 # define __cpp_lib_forward_like 202207L 1918 # endif 1919 # endif 1920 #endif /* !defined(__cpp_lib_forward_like) && defined(__glibcxx_want_forward_like) */ 1921 #undef __glibcxx_want_forward_like 1922 1923 #if !defined(__cpp_lib_generator) 1924 # if (__cplusplus >= 202100L) && (__glibcxx_coroutine && __cpp_sized_deallocation) 1925 # define __glibcxx_generator 202207L 1926 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_generator) 1927 # define __cpp_lib_generator 202207L 1928 # endif 1929 # endif 1930 #endif /* !defined(__cpp_lib_generator) && defined(__glibcxx_want_generator) */ 1931 #undef __glibcxx_want_generator 1932 1933 #if !defined(__cpp_lib_ios_noreplace) 1934 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1935 # define __glibcxx_ios_noreplace 202207L 1936 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ios_noreplace) 1937 # define __cpp_lib_ios_noreplace 202207L 1938 # endif 1939 # endif 1940 #endif /* !defined(__cpp_lib_ios_noreplace) && defined(__glibcxx_want_ios_noreplace) */ 1941 #undef __glibcxx_want_ios_noreplace 1942 1943 #if !defined(__cpp_lib_move_only_function) 1944 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1945 # define __glibcxx_move_only_function 202110L 1946 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_only_function) 1947 # define __cpp_lib_move_only_function 202110L 1948 # endif 1949 # endif 1950 #endif /* !defined(__cpp_lib_move_only_function) && defined(__glibcxx_want_move_only_function) */ 1951 #undef __glibcxx_want_move_only_function 1952 1953 #if !defined(__cpp_lib_out_ptr) 1954 # if (__cplusplus >= 202100L) 1955 # define __glibcxx_out_ptr 202311L 1956 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_out_ptr) 1957 # define __cpp_lib_out_ptr 202311L 1958 # endif 1959 # endif 1960 #endif /* !defined(__cpp_lib_out_ptr) && defined(__glibcxx_want_out_ptr) */ 1961 #undef __glibcxx_want_out_ptr 1962 1963 #if !defined(__cpp_lib_print) 1964 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1965 # define __glibcxx_print 202211L 1966 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_print) 1967 # define __cpp_lib_print 202211L 1968 # endif 1969 # endif 1970 #endif /* !defined(__cpp_lib_print) && defined(__glibcxx_want_print) */ 1971 #undef __glibcxx_want_print 1972 1973 #if !defined(__cpp_lib_spanstream) 1974 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (__glibcxx_span) 1975 # define __glibcxx_spanstream 202106L 1976 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_spanstream) 1977 # define __cpp_lib_spanstream 202106L 1978 # endif 1979 # endif 1980 #endif /* !defined(__cpp_lib_spanstream) && defined(__glibcxx_want_spanstream) */ 1981 #undef __glibcxx_want_spanstream 1982 1983 #if !defined(__cpp_lib_stacktrace) 1984 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE) 1985 # define __glibcxx_stacktrace 202011L 1986 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_stacktrace) 1987 # define __cpp_lib_stacktrace 202011L 1988 # endif 1989 # endif 1990 #endif /* !defined(__cpp_lib_stacktrace) && defined(__glibcxx_want_stacktrace) */ 1991 #undef __glibcxx_want_stacktrace 1992 1993 #if !defined(__cpp_lib_string_contains) 1994 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 1995 # define __glibcxx_string_contains 202011L 1996 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_contains) 1997 # define __cpp_lib_string_contains 202011L 1998 # endif 1999 # endif 2000 #endif /* !defined(__cpp_lib_string_contains) && defined(__glibcxx_want_string_contains) */ 2001 #undef __glibcxx_want_string_contains 2002 2003 #if !defined(__cpp_lib_string_resize_and_overwrite) 2004 # if (__cplusplus >= 202100L) && _GLIBCXX_HOSTED 2005 # define __glibcxx_string_resize_and_overwrite 202110L 2006 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_resize_and_overwrite) 2007 # define __cpp_lib_string_resize_and_overwrite 202110L 2008 # endif 2009 # endif 2010 #endif /* !defined(__cpp_lib_string_resize_and_overwrite) && defined(__glibcxx_want_string_resize_and_overwrite) */ 2011 #undef __glibcxx_want_string_resize_and_overwrite 2012 2013 #if !defined(__cpp_lib_to_underlying) 2014 # if (__cplusplus >= 202100L) 2015 # define __glibcxx_to_underlying 202102L 2016 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_underlying) 2017 # define __cpp_lib_to_underlying 202102L 2018 # endif 2019 # endif 2020 #endif /* !defined(__cpp_lib_to_underlying) && defined(__glibcxx_want_to_underlying) */ 2021 #undef __glibcxx_want_to_underlying 2022 2023 #if !defined(__cpp_lib_tuple_like) 2024 # if (__cplusplus > 202302L) && (__cpp_explicit_this_parameter >= 202110L) 2025 # define __glibcxx_tuple_like 202311L 2026 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like) 2027 # define __cpp_lib_tuple_like 202311L 2028 # endif 2029 # elif (__cplusplus >= 202100L) 2030 # define __glibcxx_tuple_like 202207L 2031 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like) 2032 # define __cpp_lib_tuple_like 202207L 2033 # endif 2034 # endif 2035 #endif /* !defined(__cpp_lib_tuple_like) && defined(__glibcxx_want_tuple_like) */ 2036 #undef __glibcxx_want_tuple_like 2037 2038 #if !defined(__cpp_lib_unreachable) 2039 # if (__cplusplus >= 202100L) 2040 # define __glibcxx_unreachable 202202L 2041 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_unreachable) 2042 # define __cpp_lib_unreachable 202202L 2043 # endif 2044 # endif 2045 #endif /* !defined(__cpp_lib_unreachable) && defined(__glibcxx_want_unreachable) */ 2046 #undef __glibcxx_want_unreachable 2047 2048 #if !defined(__cpp_lib_algorithm_default_value_type) 2049 # if (__cplusplus > 202302L) 2050 # define __glibcxx_algorithm_default_value_type 202403L 2051 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_default_value_type) 2052 # define __cpp_lib_algorithm_default_value_type 202403L 2053 # endif 2054 # endif 2055 #endif /* !defined(__cpp_lib_algorithm_default_value_type) && defined(__glibcxx_want_algorithm_default_value_type) */ 2056 #undef __glibcxx_want_algorithm_default_value_type 2057 2058 #if !defined(__cpp_lib_constexpr_new) 2059 # if (__cplusplus > 202302L) && (__cpp_constexpr >= 202406L) 2060 # define __glibcxx_constexpr_new 202406L 2061 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_new) 2062 # define __cpp_lib_constexpr_new 202406L 2063 # endif 2064 # endif 2065 #endif /* !defined(__cpp_lib_constexpr_new) && defined(__glibcxx_want_constexpr_new) */ 2066 #undef __glibcxx_want_constexpr_new 2067 2068 #if !defined(__cpp_lib_fstream_native_handle) 2069 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED 2070 # define __glibcxx_fstream_native_handle 202306L 2071 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_fstream_native_handle) 2072 # define __cpp_lib_fstream_native_handle 202306L 2073 # endif 2074 # endif 2075 #endif /* !defined(__cpp_lib_fstream_native_handle) && defined(__glibcxx_want_fstream_native_handle) */ 2076 #undef __glibcxx_want_fstream_native_handle 2077 2078 #if !defined(__cpp_lib_is_virtual_base_of) 2079 # if (__cplusplus > 202302L) && (__has_builtin(__builtin_is_virtual_base_of)) 2080 # define __glibcxx_is_virtual_base_of 202406L 2081 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_virtual_base_of) 2082 # define __cpp_lib_is_virtual_base_of 202406L 2083 # endif 2084 # endif 2085 #endif /* !defined(__cpp_lib_is_virtual_base_of) && defined(__glibcxx_want_is_virtual_base_of) */ 2086 #undef __glibcxx_want_is_virtual_base_of 2087 2088 #if !defined(__cpp_lib_ranges_cache_latest) 2089 # if (__cplusplus > 202302L) 2090 # define __glibcxx_ranges_cache_latest 202411L 2091 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cache_latest) 2092 # define __cpp_lib_ranges_cache_latest 202411L 2093 # endif 2094 # endif 2095 #endif /* !defined(__cpp_lib_ranges_cache_latest) && defined(__glibcxx_want_ranges_cache_latest) */ 2096 #undef __glibcxx_want_ranges_cache_latest 2097 2098 #if !defined(__cpp_lib_ranges_concat) 2099 # if (__cplusplus > 202302L) && (__cpp_pack_indexing) 2100 # define __glibcxx_ranges_concat 202403L 2101 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_concat) 2102 # define __cpp_lib_ranges_concat 202403L 2103 # endif 2104 # endif 2105 #endif /* !defined(__cpp_lib_ranges_concat) && defined(__glibcxx_want_ranges_concat) */ 2106 #undef __glibcxx_want_ranges_concat 2107 2108 #if !defined(__cpp_lib_ratio) 2109 # if (__cplusplus > 202302L) 2110 # define __glibcxx_ratio 202306L 2111 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ratio) 2112 # define __cpp_lib_ratio 202306L 2113 # endif 2114 # endif 2115 #endif /* !defined(__cpp_lib_ratio) && defined(__glibcxx_want_ratio) */ 2116 #undef __glibcxx_want_ratio 2117 2118 #if !defined(__cpp_lib_reference_wrapper) 2119 # if (__cplusplus > 202302L) 2120 # define __glibcxx_reference_wrapper 202403L 2121 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_wrapper) 2122 # define __cpp_lib_reference_wrapper 202403L 2123 # endif 2124 # endif 2125 #endif /* !defined(__cpp_lib_reference_wrapper) && defined(__glibcxx_want_reference_wrapper) */ 2126 #undef __glibcxx_want_reference_wrapper 2127 2128 #if !defined(__cpp_lib_saturation_arithmetic) 2129 # if (__cplusplus > 202302L) 2130 # define __glibcxx_saturation_arithmetic 202311L 2131 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_saturation_arithmetic) 2132 # define __cpp_lib_saturation_arithmetic 202311L 2133 # endif 2134 # endif 2135 #endif /* !defined(__cpp_lib_saturation_arithmetic) && defined(__glibcxx_want_saturation_arithmetic) */ 2136 #undef __glibcxx_want_saturation_arithmetic 2137 2138 #if !defined(__cpp_lib_span_initializer_list) 2139 # if (__cplusplus > 202302L) 2140 # define __glibcxx_span_initializer_list 202311L 2141 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_span_initializer_list) 2142 # define __cpp_lib_span_initializer_list 202311L 2143 # endif 2144 # endif 2145 #endif /* !defined(__cpp_lib_span_initializer_list) && defined(__glibcxx_want_span_initializer_list) */ 2146 #undef __glibcxx_want_span_initializer_list 2147 2148 #if !defined(__cpp_lib_text_encoding) 2149 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_USE_NL_LANGINFO_L) 2150 # define __glibcxx_text_encoding 202306L 2151 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_text_encoding) 2152 # define __cpp_lib_text_encoding 202306L 2153 # endif 2154 # endif 2155 #endif /* !defined(__cpp_lib_text_encoding) && defined(__glibcxx_want_text_encoding) */ 2156 #undef __glibcxx_want_text_encoding 2157 2158 #if !defined(__cpp_lib_ranges_to_input) 2159 # if (__cplusplus > 202302L) 2160 # define __glibcxx_ranges_to_input 202502L 2161 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_input) 2162 # define __cpp_lib_ranges_to_input 202502L 2163 # endif 2164 # endif 2165 #endif /* !defined(__cpp_lib_ranges_to_input) && defined(__glibcxx_want_ranges_to_input) */ 2166 #undef __glibcxx_want_ranges_to_input 2167 2168 #if !defined(__cpp_lib_to_string) 2169 # if (__cplusplus > 202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars) 2170 # define __glibcxx_to_string 202306L 2171 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_string) 2172 # define __cpp_lib_to_string 202306L 2173 # endif 2174 # endif 2175 #endif /* !defined(__cpp_lib_to_string) && defined(__glibcxx_want_to_string) */ 2176 #undef __glibcxx_want_to_string 2177 2178 #if !defined(__cpp_lib_modules) 2179 # if (__cplusplus >= 202002L) && (__cpp_modules) 2180 # define __glibcxx_modules 202207L 2181 # if defined(__glibcxx_want_all) || defined(__glibcxx_want_modules) 2182 # define __cpp_lib_modules 202207L 2183 # endif 2184 # endif 2185 #endif /* !defined(__cpp_lib_modules) && defined(__glibcxx_want_modules) */ 2186 #undef __glibcxx_want_modules 2187 2188 #undef __glibcxx_want_all