30 #ifndef _GLIBCXX_CXX_CONFIG_H 31 #define _GLIBCXX_CXX_CONFIG_H 1 33 #ifdef _GLIBCXX_SYSHDR 34 #pragma GCC system_header 37 #pragma GCC diagnostic push 38 #pragma GCC diagnostic ignored "-Wvariadic-macros" 40 #pragma GCC diagnostic ignored "-Wc++11-extensions" 41 #pragma GCC diagnostic ignored "-Wc++23-extensions" // bf16 45 #define _GLIBCXX_RELEASE 16 49 #define __GLIBCXX__ 20260315 58 # define _GLIBCXX_PURE __attribute__ ((__pure__)) 61 #ifndef _GLIBCXX_CONST 62 # define _GLIBCXX_CONST __attribute__ ((__const__)) 65 #ifndef _GLIBCXX_NORETURN 66 # define _GLIBCXX_NORETURN __attribute__ ((__noreturn__)) 70 #ifndef _GLIBCXX_NOTHROW 72 # define _GLIBCXX_NOTHROW __attribute__((__nothrow__)) 79 # define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 1 81 #if _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY 82 # define _GLIBCXX_VISIBILITY(V) __attribute__ ((__visibility__ (#V))) 86 # define _GLIBCXX_VISIBILITY(V) _GLIBCXX_PSEUDO_VISIBILITY(V) 105 #ifndef _GLIBCXX_USE_DEPRECATED 106 # define _GLIBCXX_USE_DEPRECATED 1 109 #if defined(__DEPRECATED) 110 # define _GLIBCXX_DEPRECATED __attribute__ ((__deprecated__)) 111 # define _GLIBCXX_DEPRECATED_SUGGEST(ALT) \ 112 __attribute__ ((__deprecated__ ("use '" ALT "' instead"))) 114 # define _GLIBCXX_DEPRECATED 115 # define _GLIBCXX_DEPRECATED_SUGGEST(ALT) 118 #if defined(__DEPRECATED) && (__cplusplus >= 201103L) 119 # define _GLIBCXX11_DEPRECATED _GLIBCXX_DEPRECATED 120 # define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) 122 # define _GLIBCXX11_DEPRECATED 123 # define _GLIBCXX11_DEPRECATED_SUGGEST(ALT) 126 #if defined(__DEPRECATED) && (__cplusplus >= 201402L) 127 # define _GLIBCXX14_DEPRECATED _GLIBCXX_DEPRECATED 128 # define _GLIBCXX14_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) 130 # define _GLIBCXX14_DEPRECATED 131 # define _GLIBCXX14_DEPRECATED_SUGGEST(ALT) 134 #if defined(__DEPRECATED) && (__cplusplus >= 201703L) 135 # define _GLIBCXX17_DEPRECATED [[__deprecated__]] 136 # define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) 138 # define _GLIBCXX17_DEPRECATED 139 # define _GLIBCXX17_DEPRECATED_SUGGEST(ALT) 142 #if defined(__DEPRECATED) && (__cplusplus >= 202002L) 143 # define _GLIBCXX20_DEPRECATED [[__deprecated__]] 144 # define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) 146 # define _GLIBCXX20_DEPRECATED 147 # define _GLIBCXX20_DEPRECATED_SUGGEST(ALT) 150 #if defined(__DEPRECATED) && (__cplusplus >= 202100L) 151 # define _GLIBCXX23_DEPRECATED [[__deprecated__]] 152 # define _GLIBCXX23_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) 154 # define _GLIBCXX23_DEPRECATED 155 # define _GLIBCXX23_DEPRECATED_SUGGEST(ALT) 158 #if defined(__DEPRECATED) && (__cplusplus >= 202400L) 159 # define _GLIBCXX26_DEPRECATED [[__deprecated__]] 160 # define _GLIBCXX26_DEPRECATED_SUGGEST(ALT) _GLIBCXX_DEPRECATED_SUGGEST(ALT) 162 # define _GLIBCXX26_DEPRECATED 163 # define _GLIBCXX26_DEPRECATED_SUGGEST(ALT) 167 #ifndef _GLIBCXX_ABI_TAG_CXX11 168 # define _GLIBCXX_ABI_TAG_CXX11 __attribute ((__abi_tag__ ("cxx11"))) 172 #if __cplusplus >= 201103L 173 # define _GLIBCXX_NODISCARD [[__nodiscard__]] 175 # define _GLIBCXX_NODISCARD 183 #ifndef _GLIBCXX_CONSTEXPR 184 # if __cplusplus >= 201103L 185 # define _GLIBCXX_CONSTEXPR constexpr 186 # define _GLIBCXX_USE_CONSTEXPR constexpr 188 # define _GLIBCXX_CONSTEXPR 189 # define _GLIBCXX_USE_CONSTEXPR const 193 #ifndef _GLIBCXX14_CONSTEXPR 194 # if __cplusplus >= 201402L 195 # define _GLIBCXX14_CONSTEXPR constexpr 197 # define _GLIBCXX14_CONSTEXPR 201 #ifndef _GLIBCXX17_CONSTEXPR 202 # if __cplusplus >= 201703L 203 # define _GLIBCXX17_CONSTEXPR constexpr 205 # define _GLIBCXX17_CONSTEXPR 209 #ifndef _GLIBCXX20_CONSTEXPR 210 # if __cplusplus >= 202002L 211 # define _GLIBCXX20_CONSTEXPR constexpr 213 # define _GLIBCXX20_CONSTEXPR 217 #ifndef _GLIBCXX23_CONSTEXPR 218 # if __cplusplus >= 202100L 219 # define _GLIBCXX23_CONSTEXPR constexpr 221 # define _GLIBCXX23_CONSTEXPR 225 #ifndef _GLIBCXX26_CONSTEXPR 226 # if __cplusplus >= 202400L 227 # define _GLIBCXX26_CONSTEXPR constexpr 229 # define _GLIBCXX26_CONSTEXPR 233 #ifndef _GLIBCXX17_INLINE 234 # if __cplusplus >= 201703L 235 # define _GLIBCXX17_INLINE inline 237 # define _GLIBCXX17_INLINE 242 #ifndef _GLIBCXX_NOEXCEPT 243 # if __cplusplus >= 201103L 244 # define _GLIBCXX_NOEXCEPT noexcept 245 # define _GLIBCXX_NOEXCEPT_IF(...) noexcept(__VA_ARGS__) 246 # define _GLIBCXX_USE_NOEXCEPT noexcept 247 # define _GLIBCXX_THROW(_EXC) 249 # define _GLIBCXX_NOEXCEPT 250 # define _GLIBCXX_NOEXCEPT_IF(...) 251 # define _GLIBCXX_USE_NOEXCEPT throw() 252 # define _GLIBCXX_THROW(_EXC) throw(_EXC) 256 #ifndef _GLIBCXX_NOTHROW 257 # define _GLIBCXX_NOTHROW _GLIBCXX_USE_NOEXCEPT 260 #ifndef _GLIBCXX_THROW_OR_ABORT 261 # if __cpp_exceptions 262 # define _GLIBCXX_THROW_OR_ABORT(_EXC) (throw (_EXC)) 264 # define _GLIBCXX_THROW_OR_ABORT(_EXC) (__builtin_abort(), (void)(_EXC)) 268 #if __cpp_noexcept_function_type 269 #define _GLIBCXX_NOEXCEPT_PARM , bool _NE 270 #define _GLIBCXX_NOEXCEPT_QUAL noexcept (_NE) 272 #define _GLIBCXX_NOEXCEPT_PARM 273 #define _GLIBCXX_NOEXCEPT_QUAL 277 # define _GLIBCXX_AUTO_CAST(X) auto(X) 279 # define _GLIBCXX_AUTO_CAST(X) ::std::__decay_t<decltype((X))>(X) 292 # define _GLIBCXX_EXTERN_TEMPLATE 1 344 typedef __SIZE_TYPE__ size_t;
345 typedef __PTRDIFF_TYPE__ ptrdiff_t;
347 #if __cplusplus >= 201103L 348 typedef decltype(
nullptr) nullptr_t;
351 #pragma GCC visibility push(default) 354 extern "C++" __attribute__ ((__noreturn__, __always_inline__))
355 inline void __terminate() _GLIBCXX_USE_NOEXCEPT
357 void terminate() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__noreturn__,__cold__));
360 #pragma GCC visibility pop 363 # define _GLIBCXX_USE_DUAL_ABI 1 365 #if ! _GLIBCXX_USE_DUAL_ABI 367 # undef _GLIBCXX_USE_CXX11_ABI 370 #ifndef _GLIBCXX_USE_CXX11_ABI 371 # define _GLIBCXX_USE_CXX11_ABI 1 374 #if _GLIBCXX_USE_CXX11_ABI 377 inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
381 inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
383 # define _GLIBCXX_NAMESPACE_CXX11 __cxx11:: 384 # define _GLIBCXX_BEGIN_NAMESPACE_CXX11 namespace __cxx11 { 385 # define _GLIBCXX_END_NAMESPACE_CXX11 } 386 # define _GLIBCXX_DEFAULT_ABI_TAG _GLIBCXX_ABI_TAG_CXX11 388 # define _GLIBCXX_NAMESPACE_CXX11 389 # define _GLIBCXX_BEGIN_NAMESPACE_CXX11 390 # define _GLIBCXX_END_NAMESPACE_CXX11 391 # define _GLIBCXX_DEFAULT_ABI_TAG 395 # define _GLIBCXX_INLINE_VERSION 0 397 #if _GLIBCXX_INLINE_VERSION 399 # define _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace __8 { 400 # define _GLIBCXX_END_NAMESPACE_VERSION } 402 # define _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(X) 403 # define _GLIBCXX_END_INLINE_ABI_NAMESPACE(X) 407 inline _GLIBCXX_BEGIN_NAMESPACE_VERSION
408 #if __cplusplus >= 201402L 409 inline namespace literals {
410 inline namespace chrono_literals { }
411 inline namespace complex_literals { }
412 inline namespace string_literals { }
413 #if __cplusplus > 201402L 414 inline namespace string_view_literals { }
418 _GLIBCXX_END_NAMESPACE_VERSION
423 inline _GLIBCXX_BEGIN_NAMESPACE_VERSION
424 _GLIBCXX_END_NAMESPACE_VERSION
429 # define _GLIBCXX_BEGIN_NAMESPACE_VERSION 430 # define _GLIBCXX_END_NAMESPACE_VERSION 432 # define _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(X) inline namespace X { 433 # define _GLIBCXX_END_INLINE_ABI_NAMESPACE(X) } // inline namespace X 438 #if defined(_GLIBCXX_DEBUG) && !__STDC_HOSTED__ 439 #undef _GLIBCXX_DEBUG 440 #define _GLIBCXX_ASSERTIONS 1 444 #if defined(_GLIBCXX_DEBUG) || defined(_GLIBCXX_PARALLEL) 447 _GLIBCXX_BEGIN_NAMESPACE_VERSION
452 # if _GLIBCXX_USE_CXX11_ABI 453 inline namespace __cxx11 __attribute__((__abi_tag__ ("cxx11"))) { }
457 _GLIBCXX_END_NAMESPACE_VERSION
460 # ifdef _GLIBCXX_DEBUG 461 inline namespace __debug { }
465 # ifdef _GLIBCXX_PARALLEL 466 inline namespace __parallel { }
471 # if defined(_GLIBCXX_DEBUG) && defined(_GLIBCXX_PARALLEL) 472 # error illegal use of multiple inlined namespaces 476 # if __NO_INLINE__ && !__GXX_WEAK__ 477 # warning currently using inlined namespace mode which may fail \ 478 without inlining due to lack of weak symbols 492 #if defined(_GLIBCXX_DEBUG) 493 # define _GLIBCXX_STD_C __cxx1998 494 # define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER \ 495 namespace _GLIBCXX_STD_C { 496 # define _GLIBCXX_END_NAMESPACE_CONTAINER } 498 # define _GLIBCXX_STD_C std 499 # define _GLIBCXX_BEGIN_NAMESPACE_CONTAINER 500 # define _GLIBCXX_END_NAMESPACE_CONTAINER 503 #ifdef _GLIBCXX_PARALLEL 504 # define _GLIBCXX_STD_A __cxx1998 505 # define _GLIBCXX_BEGIN_NAMESPACE_ALGO \ 506 namespace _GLIBCXX_STD_A { 507 # define _GLIBCXX_END_NAMESPACE_ALGO } 509 # define _GLIBCXX_STD_A std 510 # define _GLIBCXX_BEGIN_NAMESPACE_ALGO 511 # define _GLIBCXX_END_NAMESPACE_ALGO 516 #undef _GLIBCXX_LONG_DOUBLE_COMPAT 521 #if !defined _GLIBCXX_CLANG && defined __clang__ 522 # define _GLIBCXX_CLANG __clang__ 525 #elif !_GLIBCXX_CLANG 526 # undef _GLIBCXX_CLANG 531 #ifndef _GLIBCXX_CLANG 532 #undef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT 536 #if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT \ 537 && defined __LONG_DOUBLE_IEEE128__ 541 inline namespace __gnu_cxx_ieee128 { }
542 inline namespace __gnu_cxx11_ieee128 { }
544 # define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ieee128:: 545 # define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ieee128 { 546 # define _GLIBCXX_END_NAMESPACE_LDBL } 547 # define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 __gnu_cxx11_ieee128:: 548 # define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 namespace __gnu_cxx11_ieee128 { 549 # define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 } 551 #else // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128 553 #if defined _GLIBCXX_LONG_DOUBLE_COMPAT && defined __LONG_DOUBLE_128__ 556 inline namespace __gnu_cxx_ldbl128 { }
558 # define _GLIBCXX_NAMESPACE_LDBL __gnu_cxx_ldbl128:: 559 # define _GLIBCXX_BEGIN_NAMESPACE_LDBL namespace __gnu_cxx_ldbl128 { 560 # define _GLIBCXX_END_NAMESPACE_LDBL } 562 # define _GLIBCXX_NAMESPACE_LDBL 563 # define _GLIBCXX_BEGIN_NAMESPACE_LDBL 564 # define _GLIBCXX_END_NAMESPACE_LDBL 567 #if _GLIBCXX_USE_CXX11_ABI 568 # define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_CXX11 569 # define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_CXX11 570 # define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_CXX11 572 # define _GLIBCXX_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_NAMESPACE_LDBL 573 # define _GLIBCXX_BEGIN_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_BEGIN_NAMESPACE_LDBL 574 # define _GLIBCXX_END_NAMESPACE_LDBL_OR_CXX11 _GLIBCXX_END_NAMESPACE_LDBL 577 #endif // _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && IEEE128 581 #pragma GCC visibility push(default) 586 __attribute__((__always_inline__))
587 _GLIBCXX_CONSTEXPR
inline bool 588 __is_constant_evaluated() _GLIBCXX_NOEXCEPT
590 #if __cpp_if_consteval >= 202106L 591 # define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1 592 if consteval {
return true; }
else {
return false; }
593 #elif __cplusplus >= 201103L && __has_builtin(__builtin_is_constant_evaluated) 594 # define _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 1 595 return __builtin_is_constant_evaluated();
600 #pragma GCC visibility pop 603 #ifndef _GLIBCXX_ASSERTIONS 604 # if defined(_GLIBCXX_DEBUG) 606 # define _GLIBCXX_ASSERTIONS 1 607 # elif ! defined(__OPTIMIZE__) && ! defined(_GLIBCXX_NO_ASSERTIONS) 609 # define _GLIBCXX_ASSERTIONS 1 614 #ifdef _GLIBCXX_ASSERTIONS 615 # undef _GLIBCXX_EXTERN_TEMPLATE 616 # define _GLIBCXX_EXTERN_TEMPLATE -1 619 #define _GLIBCXX_VERBOSE_ASSERT 1 622 #ifdef _GLIBCXX_VERBOSE_ASSERT 625 #pragma GCC visibility push(default) 627 extern "C++" _GLIBCXX_NORETURN __attribute__((__cold__))
629 __glibcxx_assert_fail
630 (
const char* __file,
int __line,
const char* __function,
631 const char* __condition)
633 #pragma GCC visibility pop 635 # define _GLIBCXX_ASSERT_FAIL(_Condition) \ 636 std::__glibcxx_assert_fail(__FILE__, __LINE__, __PRETTY_FUNCTION__, \ 638 #else // ! VERBOSE_ASSERT 639 # define _GLIBCXX_ASSERT_FAIL(_Condition) __builtin_abort() 642 #if defined(_GLIBCXX_ASSERTIONS) 645 # define __glibcxx_assert(cond) \ 647 if (__builtin_expect(!bool(cond), false)) \ 648 _GLIBCXX_ASSERT_FAIL(cond); \ 650 #elif _GLIBCXX_HAVE_IS_CONSTANT_EVALUATED 656 __attribute__((__always_inline__,__visibility__(
"default")))
658 __glibcxx_assert_fail()
661 # define __glibcxx_assert(cond) \ 663 if (std::__is_constant_evaluated() && !bool(cond)) \ 664 std::__glibcxx_assert_fail(); \ 669 # define __glibcxx_assert(cond) 673 #if __SANITIZE_THREAD__ 674 # define _GLIBCXX_TSAN 1 675 #elif defined __has_feature 676 # if __has_feature(thread_sanitizer) 677 # define _GLIBCXX_TSAN 1 702 #ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE 703 # define _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE(A) 705 #ifndef _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER 706 # define _GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER(A) 710 # define _GLIBCXX_BEGIN_EXTERN_C extern "C" { 711 # define _GLIBCXX_END_EXTERN_C } 713 # define _GLIBCXX_USE_ALLOCATOR_NEW 1 715 #ifdef __SIZEOF_INT128__ 716 #if ! defined __GLIBCXX_TYPE_INT_N_0 && ! defined __STRICT_ANSI__ 720 #warning "__STRICT_ANSI__ seems to have been undefined; this is not supported" 724 #else // !__cplusplus 725 # define _GLIBCXX_BEGIN_EXTERN_C 726 # define _GLIBCXX_END_EXTERN_C 740 #ifndef _GLIBCXX_PSEUDO_VISIBILITY 741 # define _GLIBCXX_PSEUDO_VISIBILITY(V) 747 #ifndef _GLIBCXX_WEAK_DEFINITION 748 # define _GLIBCXX_WEAK_DEFINITION 755 #ifndef _GLIBCXX_USE_WEAK_REF 756 # define _GLIBCXX_USE_WEAK_REF __GXX_WEAK__ 762 #if __cplusplus >= 201103L && _GLIBCXX_USE_CXX11_ABI \ 763 && _GLIBCXX_USE_DUAL_ABI && __cpp_transactional_memory >= 201500L \ 764 && !_GLIBCXX_FULLY_DYNAMIC_STRING && _GLIBCXX_USE_WEAK_REF \ 765 && _GLIBCXX_USE_ALLOCATOR_NEW 766 #define _GLIBCXX_TXN_SAFE transaction_safe 767 #define _GLIBCXX_TXN_SAFE_DYN transaction_safe_dynamic 769 #define _GLIBCXX_TXN_SAFE 770 #define _GLIBCXX_TXN_SAFE_DYN 773 #if __cplusplus > 201402L 775 # define _GLIBCXX_USE_STD_SPEC_FUNCS 1 776 #elif __cplusplus >= 201103L && __STDCPP_WANT_MATH_SPEC_FUNCS__ != 0 778 # define _GLIBCXX_USE_STD_SPEC_FUNCS 1 786 # define _GLIBCXX_FAST_MATH 1 788 # define _GLIBCXX_FAST_MATH 0 795 #define __N(msgid) (msgid) 803 #if __cplusplus >= 201103L 804 # ifndef _GLIBCXX_USE_C99_MATH 805 # define _GLIBCXX_USE_C99_MATH _GLIBCXX11_USE_C99_MATH 807 # ifndef _GLIBCXX_USE_C99_COMPLEX 808 # define _GLIBCXX_USE_C99_COMPLEX _GLIBCXX11_USE_C99_COMPLEX 810 # ifndef _GLIBCXX_USE_C99_STDIO 811 # define _GLIBCXX_USE_C99_STDIO _GLIBCXX11_USE_C99_STDIO 813 # ifndef _GLIBCXX_USE_C99_STDLIB 814 # define _GLIBCXX_USE_C99_STDLIB _GLIBCXX11_USE_C99_STDLIB 816 # ifndef _GLIBCXX_USE_C99_WCHAR 817 # define _GLIBCXX_USE_C99_WCHAR _GLIBCXX11_USE_C99_WCHAR 820 # ifndef _GLIBCXX_USE_C99_MATH 821 # define _GLIBCXX_USE_C99_MATH _GLIBCXX98_USE_C99_MATH 823 # ifndef _GLIBCXX_USE_C99_COMPLEX 824 # define _GLIBCXX_USE_C99_COMPLEX _GLIBCXX98_USE_C99_COMPLEX 826 # ifndef _GLIBCXX_USE_C99_STDIO 827 # define _GLIBCXX_USE_C99_STDIO _GLIBCXX98_USE_C99_STDIO 829 # ifndef _GLIBCXX_USE_C99_STDLIB 830 # define _GLIBCXX_USE_C99_STDLIB _GLIBCXX98_USE_C99_STDLIB 832 # ifndef _GLIBCXX_USE_C99_WCHAR 833 # define _GLIBCXX_USE_C99_WCHAR _GLIBCXX98_USE_C99_WCHAR 839 #ifndef _GLIBCXX_USE_CHAR8_T 840 # ifdef __cpp_char8_t 841 # define _GLIBCXX_USE_CHAR8_T 1 844 #ifdef _GLIBCXX_USE_CHAR8_T 845 # define __cpp_lib_char8_t 201907L 849 #if defined(__FLOAT128__) || defined(__SIZEOF_FLOAT128__) 851 # if !(defined(_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT) && defined(__LONG_DOUBLE_IEEE128__)) 852 # define _GLIBCXX_USE_FLOAT128 1 856 #if __FLT_MANT_DIG__ == 24 \ 857 && __FLT_MIN_EXP__ == -125 \ 858 && __FLT_MAX_EXP__ == 128 860 # define _GLIBCXX_FLOAT_IS_IEEE_BINARY32 1 863 #if __DBL_MANT_DIG__ == 53 \ 864 && __DBL_MIN_EXP__ == -1021 \ 865 && __DBL_MAX_EXP__ == 1024 867 # define _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 1 868 #elif __FLT_MANT_DIG__ == 24 \ 869 && __FLT_MIN_EXP__ == -125 \ 870 && __FLT_MAX_EXP__ == 128 872 # define _GLIBCXX_DOUBLE_IS_IEEE_BINARY32 1 875 #if __LDBL_MANT_DIG__ == 113 \ 876 && __LDBL_MIN_EXP__ == -16381 \ 877 && __LDBL_MAX_EXP__ == 16384 879 # define _GLIBCXX_LDOUBLE_IS_IEEE_BINARY128 1 880 #elif __LDBL_MANT_DIG__ == 53 \ 881 && __LDBL_MIN_EXP__ == -1021 \ 882 && __LDBL_MAX_EXP__ == 1024 884 # define _GLIBCXX_LDOUBLE_IS_IEEE_BINARY64 1 885 #elif __LDBL_MANT_DIG__ == 24 \ 886 && __LDBL_MIN_EXP__ == -125 \ 887 && __LDBL_MAX_EXP__ == 128 889 # define _GLIBCXX_LDOUBLE_IS_IEEE_BINARY32 1 892 #if defined __cplusplus && defined __BFLT16_DIG__ 895 typedef __decltype(0.0bf16) __bfloat16_t;
900 # ifdef __is_identifier 902 # define _GLIBCXX_HAS_BUILTIN(B) (__has_builtin(B) || ! __is_identifier(B)) 904 # define _GLIBCXX_HAS_BUILTIN(B) __has_builtin(B) 908 #if _GLIBCXX_HAS_BUILTIN(__has_unique_object_representations) 909 # define _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 1 912 #if _GLIBCXX_HAS_BUILTIN(__is_aggregate) 913 # define _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 1 916 #if _GLIBCXX_HAS_BUILTIN(__builtin_launder) 917 # define _GLIBCXX_HAVE_BUILTIN_LAUNDER 1 924 #ifndef _GLIBCXX_DO_NOT_USE_BUILTIN_TRAITS 925 # define _GLIBCXX_USE_BUILTIN_TRAIT(BT) _GLIBCXX_HAS_BUILTIN(BT) 927 # define _GLIBCXX_USE_BUILTIN_TRAIT(BT) 0 932 #if __cpp_explicit_this_parameter \ 933 || (__cplusplus >= 201103L && __GNUC__ >= 14 && !defined(_GLIBCXX_CLANG)) 934 # define _GLIBCXX_EXPLICIT_THIS_PARAMETER 202110L 938 #define _GLIBCXX_DOXYGEN_ONLY(X) 942 #if __cplusplus >= 201703L 944 #if __has_include(<pstl/pstl_config.h>) 949 # ifndef _GLIBCXX_USE_TBB_PAR_BACKEND 950 # define _GLIBCXX_USE_TBB_PAR_BACKEND __has_include(<tbb/tbb.h>) 953 # if _GLIBCXX_USE_TBB_PAR_BACKEND 954 # define _PSTL_PAR_BACKEND_TBB 956 # define _PSTL_PAR_BACKEND_SERIAL 959 # define _PSTL_ASSERT(_Condition) __glibcxx_assert(_Condition) 960 # define _PSTL_ASSERT_MSG(_Condition, _Message) __glibcxx_assert(_Condition) 962 #include <pstl/pstl_config.h> 963 #endif // __has_include 966 #pragma GCC diagnostic pop 973 #define _GLIBCXX_HAVE_ACOSF 1 976 #define _GLIBCXX_HAVE_ACOSL 1 979 #define _GLIBCXX_HAVE_ALIGNED_ALLOC 1 985 #define _GLIBCXX_HAVE_ARPA_INET_H 1 988 #define _GLIBCXX_HAVE_ASINF 1 991 #define _GLIBCXX_HAVE_ASINL 1 994 #define _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE 1 997 #define _GLIBCXX_HAVE_ATAN2F 1 1000 #define _GLIBCXX_HAVE_ATAN2L 1 1003 #define _GLIBCXX_HAVE_ATANF 1 1006 #define _GLIBCXX_HAVE_ATANL 1 1009 #define _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY 1 1012 #define _GLIBCXX_HAVE_AT_QUICK_EXIT 1 1016 #define _GLIBCXX_HAVE_C99_FLT_EVAL_TYPES 1 1022 #define _GLIBCXX_HAVE_CEILF 1 1025 #define _GLIBCXX_HAVE_CEILL 1 1028 #define _GLIBCXX_HAVE_COMPLEX_H 1 1031 #define _GLIBCXX_HAVE_COSF 1 1034 #define _GLIBCXX_HAVE_COSHF 1 1037 #define _GLIBCXX_HAVE_COSHL 1 1040 #define _GLIBCXX_HAVE_COSL 1 1047 #define _GLIBCXX_HAVE_DECL_STRNLEN 1 1050 #define _GLIBCXX_HAVE_DIRENT_H 1 1053 #define _GLIBCXX_HAVE_DIRFD 1 1056 #define _GLIBCXX_HAVE_DLFCN_H 1 1059 #define _GLIBCXX_HAVE_ENDIAN_H 1 1062 #define _GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46 1 1065 #define _GLIBCXX_HAVE_EXECINFO_H 1 1068 #define _GLIBCXX_HAVE_EXPF 1 1071 #define _GLIBCXX_HAVE_EXPL 1 1074 #define _GLIBCXX_HAVE_FABSF 1 1077 #define _GLIBCXX_HAVE_FABSL 1 1080 #define _GLIBCXX_HAVE_FCNTL_H 1 1083 #define _GLIBCXX_HAVE_FDOPENDIR 1 1086 #define _GLIBCXX_HAVE_FENV_H 1 1089 #define _GLIBCXX_HAVE_FINITE 1 1092 #define _GLIBCXX_HAVE_FINITEF 1 1095 #define _GLIBCXX_HAVE_FINITEL 1 1098 #define _GLIBCXX_HAVE_FLOAT_H 1 1101 #define _GLIBCXX_HAVE_FLOORF 1 1104 #define _GLIBCXX_HAVE_FLOORL 1 1107 #define _GLIBCXX_HAVE_FMODF 1 1110 #define _GLIBCXX_HAVE_FMODL 1 1119 #define _GLIBCXX_HAVE_FREXPF 1 1122 #define _GLIBCXX_HAVE_FREXPL 1 1125 #define _GLIBCXX_HAVE_FWRITE_UNLOCKED 1 1128 #define _GLIBCXX_HAVE_GETENTROPY 1 1131 #define _GLIBCXX_HAVE_GETIPINFO 1 1134 #define _GLIBCXX_HAVE_GETS 1 1137 #define _GLIBCXX_HAVE_HYPOT 1 1140 #define _GLIBCXX_HAVE_HYPOTF 1 1143 #define _GLIBCXX_HAVE_HYPOTL 1 1146 #define _GLIBCXX_HAVE_ICONV 1 1152 #define _GLIBCXX_HAVE_INTTYPES_H 1 1158 #define _GLIBCXX_HAVE_ISINFF 1 1161 #define _GLIBCXX_HAVE_ISINFL 1 1167 #define _GLIBCXX_HAVE_ISNANF 1 1170 #define _GLIBCXX_HAVE_ISNANL 1 1173 #define _GLIBCXX_HAVE_ISWBLANK 1 1176 #define _GLIBCXX_HAVE_LC_MESSAGES 1 1179 #define _GLIBCXX_HAVE_LDEXPF 1 1182 #define _GLIBCXX_HAVE_LDEXPL 1 1185 #define _GLIBCXX_HAVE_LIBINTL_H 1 1188 #define _GLIBCXX_HAVE_LIMIT_AS 1 1191 #define _GLIBCXX_HAVE_LIMIT_DATA 1 1194 #define _GLIBCXX_HAVE_LIMIT_FSIZE 1 1197 #define _GLIBCXX_HAVE_LIMIT_RSS 1 1200 #define _GLIBCXX_HAVE_LIMIT_VMEM 0 1203 #define _GLIBCXX_HAVE_LINK 1 1206 #define _GLIBCXX_HAVE_LINK_H 1 1209 #define _GLIBCXX_HAVE_LINUX_FUTEX 1 1212 #define _GLIBCXX_HAVE_LINUX_RANDOM_H 1 1215 #define _GLIBCXX_HAVE_LINUX_TYPES_H 1 1218 #define _GLIBCXX_HAVE_LOCALE_H 1 1221 #define _GLIBCXX_HAVE_LOG10F 1 1224 #define _GLIBCXX_HAVE_LOG10L 1 1227 #define _GLIBCXX_HAVE_LOGF 1 1230 #define _GLIBCXX_HAVE_LOGL 1 1233 #define _GLIBCXX_HAVE_LSEEK 1 1242 #define _GLIBCXX_HAVE_MBSTATE_T 1 1245 #define _GLIBCXX_HAVE_MEMALIGN 1 1248 #define _GLIBCXX_HAVE_MEMORY_H 1 1251 #define _GLIBCXX_HAVE_MODF 1 1254 #define _GLIBCXX_HAVE_MODFF 1 1257 #define _GLIBCXX_HAVE_MODFL 1 1263 #define _GLIBCXX_HAVE_NETDB_H 1 1266 #define _GLIBCXX_HAVE_NETINET_IN_H 1 1269 #define _GLIBCXX_HAVE_NETINET_TCP_H 1 1278 #define _GLIBCXX_HAVE_OPENAT 1 1281 #define _GLIBCXX_HAVE_O_NONBLOCK 1 1284 #define _GLIBCXX_HAVE_POLL 1 1287 #define _GLIBCXX_HAVE_POLL_H 1 1290 #define _GLIBCXX_HAVE_POSIX_MEMALIGN 1 1293 #define _GLIBCXX_HAVE_POWF 1 1296 #define _GLIBCXX_HAVE_POWL 1 1302 #define _GLIBCXX_HAVE_QUICK_EXIT 1 1305 #define _GLIBCXX_HAVE_READLINK 1 1308 #define _GLIBCXX_HAVE_SECURE_GETENV 1 1311 #define _GLIBCXX_HAVE_SETENV 1 1314 #define _GLIBCXX_HAVE_SINCOS 1 1317 #define _GLIBCXX_HAVE_SINCOSF 1 1320 #define _GLIBCXX_HAVE_SINCOSL 1 1323 #define _GLIBCXX_HAVE_SINF 1 1326 #define _GLIBCXX_HAVE_SINHF 1 1329 #define _GLIBCXX_HAVE_SINHL 1 1332 #define _GLIBCXX_HAVE_SINL 1 1338 #define _GLIBCXX_HAVE_SOCKATMARK 1 1341 #define _GLIBCXX_HAVE_SQRTF 1 1344 #define _GLIBCXX_HAVE_SQRTL 1 1347 #define _GLIBCXX_HAVE_STACKTRACE 1 1350 #define _GLIBCXX_HAVE_STDALIGN_H 1 1353 #define _GLIBCXX_HAVE_STDBOOL_H 1 1356 #define _GLIBCXX_HAVE_STDINT_H 1 1359 #define _GLIBCXX_HAVE_STDLIB_H 1 1362 #define _GLIBCXX_HAVE_STRERROR_L 1 1365 #define _GLIBCXX_HAVE_STRERROR_R 1 1368 #define _GLIBCXX_HAVE_STRINGS_H 1 1371 #define _GLIBCXX_HAVE_STRING_H 1 1374 #define _GLIBCXX_HAVE_STRTOF 1 1377 #define _GLIBCXX_HAVE_STRTOLD 1 1380 #define _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE 1 1383 #define _GLIBCXX_HAVE_STRXFRM_L 1 1386 #define _GLIBCXX_HAVE_SYMLINK 1 1390 #define _GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT 1 1396 #define _GLIBCXX_HAVE_SYS_IOCTL_H 1 1399 #define _GLIBCXX_HAVE_SYS_IPC_H 1 1408 #define _GLIBCXX_HAVE_SYS_MMAN_H 1 1411 #define _GLIBCXX_HAVE_SYS_PARAM_H 1 1414 #define _GLIBCXX_HAVE_SYS_PTRACE_H 1 1417 #define _GLIBCXX_HAVE_SYS_RESOURCE_H 1 1420 #define _GLIBCXX_HAVE_SYS_SDT_H 1 1423 #define _GLIBCXX_HAVE_SYS_SEM_H 1 1426 #define _GLIBCXX_HAVE_SYS_SOCKET_H 1 1429 #define _GLIBCXX_HAVE_SYS_STATVFS_H 1 1432 #define _GLIBCXX_HAVE_SYS_STAT_H 1 1435 #define _GLIBCXX_HAVE_SYS_SYSINFO_H 1 1438 #define _GLIBCXX_HAVE_SYS_TIME_H 1 1441 #define _GLIBCXX_HAVE_SYS_TYPES_H 1 1444 #define _GLIBCXX_HAVE_SYS_UIO_H 1 1450 #define _GLIBCXX_HAVE_S_ISREG 1 1453 #define _GLIBCXX_HAVE_TANF 1 1456 #define _GLIBCXX_HAVE_TANHF 1 1459 #define _GLIBCXX_HAVE_TANHL 1 1462 #define _GLIBCXX_HAVE_TANL 1 1465 #define _GLIBCXX_HAVE_TGMATH_H 1 1468 #define _GLIBCXX_HAVE_TIMESPEC_GET 1 1474 #define _GLIBCXX_HAVE_TLS 1 1477 #define _GLIBCXX_HAVE_TRUNCATE 1 1480 #define _GLIBCXX_HAVE_UCHAR_H 1 1483 #define _GLIBCXX_HAVE_UNISTD_H 1 1486 #define _GLIBCXX_HAVE_UNLINKAT 1 1489 #define _GLIBCXX_HAVE_USELOCALE 1 1495 #define _GLIBCXX_HAVE_UTIME_H 1 1498 #define _GLIBCXX_HAVE_VFWSCANF 1 1501 #define _GLIBCXX_HAVE_VSWSCANF 1 1504 #define _GLIBCXX_HAVE_VWSCANF 1 1507 #define _GLIBCXX_HAVE_WCHAR_H 1 1510 #define _GLIBCXX_HAVE_WCSTOF 1 1513 #define _GLIBCXX_HAVE_WCTYPE_H 1 1519 #define _GLIBCXX_HAVE_WRITEV 1 1534 #define _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL 1 1537 #define _GLIBCXX_ICONV_CONST 1541 #define _GLIBCXX_LT_OBJDIR ".libs/" 1571 #ifndef _GLIBCXX_DARWIN_USE_64_BIT_INODE 1572 # define _GLIBCXX_DARWIN_USE_64_BIT_INODE 1 1581 #define _GLIBCXX11_USE_C99_COMPLEX 1 1585 #define _GLIBCXX11_USE_C99_MATH 1 1589 #define _GLIBCXX11_USE_C99_STDIO 1 1593 #define _GLIBCXX11_USE_C99_STDLIB 1 1597 #define _GLIBCXX11_USE_C99_WCHAR 1 1602 #define _GLIBCXX98_USE_C99_COMPLEX 1 1606 #define _GLIBCXX98_USE_C99_MATH 1 1610 #define _GLIBCXX98_USE_C99_STDIO 1 1614 #define _GLIBCXX98_USE_C99_STDLIB 1 1618 #define _GLIBCXX98_USE_C99_WCHAR 1 1621 #define _GLIBCXX_ATOMIC_WORD_BUILTINS 1 1625 #define _GLIBCXX_CAN_ALIGNAS_DESTRUCTIVE_SIZE 1 1632 #define _GLIBCXX_FULLY_DYNAMIC_STRING 0 1635 #define _GLIBCXX_HAS_GTHREADS 1 1638 #define _GLIBCXX_HOSTED __STDC_HOSTED__ 1646 #define _GLIBCXX_MANGLE_SIZE_T m 1658 #define _GLIBCXX_RES_LIMITS 1 1664 #define _GLIBCXX_STATIC_TZDATA 1 1667 #define _GLIBCXX_STDIO_EOF -1 1670 #define _GLIBCXX_STDIO_SEEK_CUR 1 1673 #define _GLIBCXX_STDIO_SEEK_END 2 1676 #define _GLIBCXX_SYMVER 1 1682 #define _GLIBCXX_SYMVER_GNU 1 1692 #define _GLIBCXX_USE_C11_UCHAR_CXX11 1 1696 #define _GLIBCXX_USE_C99 1 1701 #define _GLIBCXX_USE_C99_COMPLEX_ARC 1 1706 #define _GLIBCXX_USE_C99_COMPLEX_TR1 1 1710 #define _GLIBCXX_USE_C99_CTYPE 1 1714 #define _GLIBCXX_USE_C99_CTYPE_TR1 1 1718 #define _GLIBCXX_USE_C99_FENV 1 1722 #define _GLIBCXX_USE_C99_FENV_TR1 1 1726 #define _GLIBCXX_USE_C99_INTTYPES 1 1730 #define _GLIBCXX_USE_C99_INTTYPES_TR1 1 1734 #define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T 1 1738 #define _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1 1 1742 #define _GLIBCXX_USE_C99_MATH_FUNCS 1 1746 #define _GLIBCXX_USE_C99_MATH_TR1 1 1750 #define _GLIBCXX_USE_C99_STDINT 1 1754 #define _GLIBCXX_USE_C99_STDINT_TR1 1 1757 #define _GLIBCXX_USE_CHDIR 1 1760 #define _GLIBCXX_USE_CHMOD 1 1767 #define _GLIBCXX_USE_CLOCK_MONOTONIC 1 1770 #define _GLIBCXX_USE_CLOCK_REALTIME 1 1777 #define _GLIBCXX_USE_DECIMAL_FLOAT 1 1781 #define _GLIBCXX_USE_DEV_RANDOM 1 1784 #define _GLIBCXX_USE_FCHMOD 1 1787 #define _GLIBCXX_USE_FCHMODAT 1 1790 #define _GLIBCXX_USE_FSEEKO_FTELLO 1 1793 #define _GLIBCXX_USE_GETCWD 1 1796 #define _GLIBCXX_USE_GETTIMEOFDAY 1 1799 #define _GLIBCXX_USE_GET_NPROCS 1 1802 #define _GLIBCXX_USE_GLIBC_STDIO_EXT 1 1805 #define _GLIBCXX_USE_INIT_PRIORITY_ATTRIBUTE 1 1808 #define _GLIBCXX_USE_LFS 1 1811 #define _GLIBCXX_USE_LONG_LONG 1 1814 #define _GLIBCXX_USE_LSTAT 1 1817 #define _GLIBCXX_USE_MKDIR 1 1820 #define _GLIBCXX_USE_NANOSLEEP 1 1823 #define _GLIBCXX_USE_NLS 1 1826 #define _GLIBCXX_USE_NL_LANGINFO_L 1 1829 #define _GLIBCXX_USE_PROC_SELF_STATUS 1 1845 #define _GLIBCXX_USE_PTHREAD_RWLOCK_T 1 1852 #define _GLIBCXX_USE_RANDOM_TR1 1 1855 #define _GLIBCXX_USE_REALPATH 1 1858 #define _GLIBCXX_USE_SCHED_YIELD 1 1861 #define _GLIBCXX_USE_SC_NPROCESSORS_ONLN 1 1867 #define _GLIBCXX_USE_SENDFILE 1 1870 #define _GLIBCXX_USE_STDIO_LOCKING 1 1876 #define _GLIBCXX_USE_STRUCT_TM_TM_ZONE 1 1879 #define _GLIBCXX_USE_ST_MTIM 1 1885 #define _GLIBCXX_USE_TMPNAM 1 1896 #define _GLIBCXX_USE_UTIME 1 1900 #define _GLIBCXX_USE_UTIMENSAT 1 1903 #define _GLIBCXX_USE_WCHAR_T 1 1912 #define _GLIBCXX_VERBOSE 1 1915 #define _GLIBCXX_X86_RDRAND 1 1918 #define _GLIBCXX_X86_RDSEED 1 1921 #define _GLIBCXX_ZONEINFO_DIR "/usr/share/zoneinfo" 1924 #define _GTHREAD_USE_MUTEX_TIMEDLOCK 1 1930 #if __cplusplus >= 201103L 1935 #if __cplusplus >= 201103L 1939 #endif // _GLIBCXX_CXX_CONFIG_H
GNU extensions for public use.
ISO C++ entities toplevel namespace is std.
void terminate() noexcept