File indexing completed on 2025-01-30 09:34:49
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026 #ifndef BOOST_CONFIG_SUFFIX_HPP
0027 #define BOOST_CONFIG_SUFFIX_HPP
0028
0029 #if defined(__GNUC__) && (__GNUC__ >= 4)
0030
0031
0032
0033
0034 #pragma GCC system_header
0035 #endif
0036
0037
0038
0039
0040 #ifndef BOOST_SYMBOL_EXPORT
0041 # define BOOST_SYMBOL_EXPORT
0042 #endif
0043 #ifndef BOOST_SYMBOL_IMPORT
0044 # define BOOST_SYMBOL_IMPORT
0045 #endif
0046 #ifndef BOOST_SYMBOL_VISIBLE
0047 # define BOOST_SYMBOL_VISIBLE
0048 #endif
0049
0050
0051
0052
0053 #if defined(BOOST_DISABLE_EXPLICIT_SYMBOL_VISIBILITY)
0054
0055 #undef BOOST_SYMBOL_EXPORT
0056 #define BOOST_SYMBOL_EXPORT
0057
0058 #undef BOOST_SYMBOL_IMPORT
0059 #define BOOST_SYMBOL_IMPORT
0060
0061 #undef BOOST_SYMBOL_VISIBLE
0062 #define BOOST_SYMBOL_VISIBLE
0063
0064 #endif
0065
0066
0067
0068
0069
0070
0071
0072 #if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG) \
0073 && !defined(BOOST_MSVC) && !defined(BOOST_BORLANDC)
0074 # include <limits.h>
0075 # if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
0076 # define BOOST_HAS_LONG_LONG
0077 # else
0078 # define BOOST_NO_LONG_LONG
0079 # endif
0080 #endif
0081
0082
0083
0084
0085 #if defined(__GNUC__) && (__GNUC__ >= 3) && defined(BOOST_NO_CTYPE_FUNCTIONS)
0086 # undef BOOST_NO_CTYPE_FUNCTIONS
0087 #endif
0088
0089
0090
0091
0092 # ifndef BOOST_STD_EXTENSION_NAMESPACE
0093 # define BOOST_STD_EXTENSION_NAMESPACE std
0094 # endif
0095
0096
0097
0098
0099 # if defined(BOOST_NO_CV_SPECIALIZATIONS) \
0100 && !defined(BOOST_NO_CV_VOID_SPECIALIZATIONS)
0101 # define BOOST_NO_CV_VOID_SPECIALIZATIONS
0102 # endif
0103
0104
0105
0106
0107
0108 # if defined(BOOST_NO_LIMITS) \
0109 && !defined(BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS)
0110 # define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
0111 # define BOOST_NO_MS_INT64_NUMERIC_LIMITS
0112 # define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
0113 # endif
0114
0115
0116
0117
0118
0119 #if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG_NUMERIC_LIMITS)
0120 # define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
0121 #endif
0122
0123
0124
0125
0126
0127 #if !defined(BOOST_HAS_MS_INT64) && !defined(BOOST_NO_MS_INT64_NUMERIC_LIMITS)
0128 # define BOOST_NO_MS_INT64_NUMERIC_LIMITS
0129 #endif
0130
0131
0132
0133
0134
0135 # if !defined(BOOST_NO_MEMBER_TEMPLATES) \
0136 && !defined(BOOST_MSVC6_MEMBER_TEMPLATES)
0137 # define BOOST_MSVC6_MEMBER_TEMPLATES
0138 # endif
0139
0140
0141
0142
0143 # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
0144 && !defined(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG)
0145 # define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
0146 # endif
0147
0148
0149
0150
0151 # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
0152 && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
0153 # define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
0154 # endif
0155
0156
0157
0158
0159 # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
0160 && !defined(BOOST_NO_STD_ITERATOR_TRAITS)
0161 # define BOOST_NO_STD_ITERATOR_TRAITS
0162 # endif
0163
0164
0165
0166
0167
0168 # if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
0169 && !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
0170 # define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
0171 # endif
0172
0173
0174
0175
0176
0177 # if defined(BOOST_NO_MEMBER_TEMPLATES) \
0178 && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
0179 && !defined(BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS)
0180 # define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
0181 # endif
0182
0183
0184
0185
0186
0187 # if defined(BOOST_NO_MEMBER_TEMPLATES) \
0188 && !defined(BOOST_MSVC6_MEMBER_TEMPLATES) \
0189 && !defined(BOOST_NO_STD_ALLOCATOR)
0190 # define BOOST_NO_STD_ALLOCATOR
0191 # endif
0192
0193
0194
0195
0196 #if defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
0197 # define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
0198 #endif
0199
0200
0201
0202
0203 #if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI)
0204 # define BOOST_NO_RTTI
0205 #endif
0206
0207
0208
0209
0210 #if !defined(BOOST_NO_STD_ALLOCATOR)
0211 # define BOOST_HAS_PARTIAL_STD_ALLOCATOR
0212 #endif
0213
0214
0215
0216
0217 # if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_USE_FACET)
0218 # define BOOST_NO_STD_USE_FACET
0219 # endif
0220
0221
0222
0223
0224 # if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_MESSAGES)
0225 # define BOOST_NO_STD_MESSAGES
0226 # endif
0227
0228
0229
0230
0231 # if defined(BOOST_NO_STD_LOCALE) && !defined(BOOST_NO_STD_WSTREAMBUF)
0232 # define BOOST_NO_STD_WSTREAMBUF
0233 # endif
0234
0235
0236
0237
0238 # if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_CWCTYPE)
0239 # define BOOST_NO_CWCTYPE
0240 # endif
0241
0242
0243
0244
0245 # if defined(BOOST_NO_CWCHAR) && !defined(BOOST_NO_SWPRINTF)
0246 # define BOOST_NO_SWPRINTF
0247 # endif
0248
0249
0250
0251
0252
0253
0254 #if defined(BOOST_DISABLE_WIN32) && defined(_WIN32) \
0255 && !defined(BOOST_DISABLE_THREADS) && !defined(BOOST_HAS_PTHREADS)
0256 # define BOOST_DISABLE_THREADS
0257 #endif
0258
0259
0260
0261
0262
0263
0264
0265 #if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
0266 || defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
0267 && !defined(BOOST_HAS_THREADS)
0268 # define BOOST_HAS_THREADS
0269 #endif
0270
0271
0272
0273
0274 #if defined(BOOST_DISABLE_THREADS) && defined(BOOST_HAS_THREADS)
0275 # undef BOOST_HAS_THREADS
0276 #endif
0277
0278
0279
0280
0281 #if defined(BOOST_HAS_THREADS) && !defined(BOOST_HAS_PTHREADS)\
0282 && !defined(BOOST_HAS_WINTHREADS) && !defined(BOOST_HAS_BETHREADS)\
0283 && !defined(BOOST_HAS_MPTASKS)
0284 # undef BOOST_HAS_THREADS
0285 #endif
0286
0287
0288
0289
0290 #ifndef BOOST_HAS_THREADS
0291 # undef BOOST_HAS_PTHREADS
0292 # undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
0293 # undef BOOST_HAS_PTHREAD_YIELD
0294 # undef BOOST_HAS_PTHREAD_DELAY_NP
0295 # undef BOOST_HAS_WINTHREADS
0296 # undef BOOST_HAS_BETHREADS
0297 # undef BOOST_HAS_MPTASKS
0298 #endif
0299
0300
0301
0302
0303
0304 # if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
0305 # define BOOST_HAS_STDINT_H
0306 # ifndef BOOST_HAS_LOG1P
0307 # define BOOST_HAS_LOG1P
0308 # endif
0309 # ifndef BOOST_HAS_EXPM1
0310 # define BOOST_HAS_EXPM1
0311 # endif
0312 # endif
0313
0314
0315
0316
0317
0318 # if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST)
0319 # define BOOST_NO_SLIST
0320 # endif
0321
0322 # if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH)
0323 # define BOOST_NO_HASH
0324 # endif
0325
0326
0327
0328
0329 #if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER)
0330 # define BOOST_SLIST_HEADER <slist>
0331 #endif
0332
0333
0334
0335
0336 #if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER)
0337 # define BOOST_HASH_SET_HEADER <hash_set>
0338 #endif
0339
0340
0341
0342
0343 #if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER)
0344 # define BOOST_HASH_MAP_HEADER <hash_map>
0345 #endif
0346
0347
0348
0349
0350 #if defined(BOOST_ABI_PREFIX) && defined(BOOST_ABI_SUFFIX) && !defined(BOOST_HAS_ABI_HEADERS)
0351 # define BOOST_HAS_ABI_HEADERS
0352 #endif
0353
0354 #if defined(BOOST_HAS_ABI_HEADERS) && defined(BOOST_DISABLE_ABI_HEADERS)
0355 # undef BOOST_HAS_ABI_HEADERS
0356 #endif
0357
0358
0359
0360
0361
0362
0363
0364
0365
0366
0367 # if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
0368 # include <cstddef>
0369 namespace std { using ::ptrdiff_t; using ::size_t; }
0370 # endif
0371
0372
0373
0374 #define BOOST_PREVENT_MACRO_SUBSTITUTION
0375
0376 #ifndef BOOST_USING_STD_MIN
0377 # define BOOST_USING_STD_MIN() using std::min
0378 #endif
0379
0380 #ifndef BOOST_USING_STD_MAX
0381 # define BOOST_USING_STD_MAX() using std::max
0382 #endif
0383
0384
0385
0386 # if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
0387
0388 namespace std {
0389 template <class _Tp>
0390 inline const _Tp& min BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
0391 return __b < __a ? __b : __a;
0392 }
0393 template <class _Tp>
0394 inline const _Tp& max BOOST_PREVENT_MACRO_SUBSTITUTION (const _Tp& __a, const _Tp& __b) {
0395 return __a < __b ? __b : __a;
0396 }
0397 }
0398
0399 # endif
0400
0401
0402
0403
0404
0405
0406
0407 # ifdef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
0408 # define BOOST_STATIC_CONSTANT(type, assignment) enum { assignment }
0409 # else
0410 # define BOOST_STATIC_CONSTANT(type, assignment) static const type assignment
0411 # endif
0412
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
0424
0425
0426 #if defined(BOOST_NO_STD_USE_FACET)
0427 # ifdef BOOST_HAS_TWO_ARG_USE_FACET
0428 # define BOOST_USE_FACET(Type, loc) std::use_facet(loc, static_cast<Type*>(0))
0429 # define BOOST_HAS_FACET(Type, loc) std::has_facet(loc, static_cast<Type*>(0))
0430 # elif defined(BOOST_HAS_MACRO_USE_FACET)
0431 # define BOOST_USE_FACET(Type, loc) std::_USE(loc, Type)
0432 # define BOOST_HAS_FACET(Type, loc) std::_HAS(loc, Type)
0433 # elif defined(BOOST_HAS_STLP_USE_FACET)
0434 # define BOOST_USE_FACET(Type, loc) (*std::_Use_facet<Type >(loc))
0435 # define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
0436 # endif
0437 #else
0438 # define BOOST_USE_FACET(Type, loc) std::use_facet< Type >(loc)
0439 # define BOOST_HAS_FACET(Type, loc) std::has_facet< Type >(loc)
0440 #endif
0441
0442
0443
0444
0445
0446
0447
0448
0449
0450
0451
0452 #ifndef BOOST_NO_MEMBER_TEMPLATE_KEYWORD
0453 # define BOOST_NESTED_TEMPLATE template
0454 #else
0455 # define BOOST_NESTED_TEMPLATE
0456 #endif
0457
0458
0459
0460
0461
0462
0463 #ifndef BOOST_UNREACHABLE_RETURN
0464 # ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION
0465 # define BOOST_UNREACHABLE_RETURN(x) return x;
0466 # else
0467 # define BOOST_UNREACHABLE_RETURN(x)
0468 # endif
0469 #endif
0470
0471
0472
0473
0474
0475
0476
0477
0478
0479
0480
0481
0482 #ifndef BOOST_NO_DEDUCED_TYPENAME
0483 # define BOOST_DEDUCED_TYPENAME typename
0484 #else
0485 # define BOOST_DEDUCED_TYPENAME
0486 #endif
0487
0488 #ifndef BOOST_NO_TYPENAME_WITH_CTOR
0489 # define BOOST_CTOR_TYPENAME typename
0490 #else
0491 # define BOOST_CTOR_TYPENAME
0492 #endif
0493
0494
0495
0496
0497 #if defined(__CUDA_ARCH__) && defined(BOOST_HAS_FLOAT128)
0498 # undef BOOST_HAS_FLOAT128
0499 #endif
0500 #if defined(__CUDA_ARCH__) && defined(BOOST_HAS_INT128)
0501 # undef BOOST_HAS_INT128
0502 #endif
0503
0504
0505
0506
0507
0508
0509 #if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus)
0510 namespace boost{
0511 # ifdef __GNUC__
0512 __extension__ typedef long long long_long_type;
0513 __extension__ typedef unsigned long long ulong_long_type;
0514 # else
0515 typedef long long long_long_type;
0516 typedef unsigned long long ulong_long_type;
0517 # endif
0518 }
0519 #endif
0520
0521 #if defined(BOOST_HAS_INT128) && defined(__cplusplus)
0522 namespace boost{
0523 # ifdef __GNUC__
0524 __extension__ typedef __int128 int128_type;
0525 __extension__ typedef unsigned __int128 uint128_type;
0526 # else
0527 typedef __int128 int128_type;
0528 typedef unsigned __int128 uint128_type;
0529 # endif
0530 }
0531 #endif
0532
0533 #if defined(BOOST_HAS_FLOAT128) && defined(__cplusplus)
0534 namespace boost {
0535 # ifdef __GNUC__
0536 __extension__ typedef __float128 float128_type;
0537 # else
0538 typedef __float128 float128_type;
0539 # endif
0540 }
0541 #endif
0542
0543
0544
0545
0546
0547 # define BOOST_EXPLICIT_TEMPLATE_TYPE(t)
0548 # define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
0549 # define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
0550 # define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
0551
0552 # define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t)
0553 # define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
0554 # define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
0555 # define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
0556
0557
0558
0559
0560 #if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus) && defined(BOOST_MSVC)
0561 #include <typeinfo>
0562 namespace std{ using ::type_info; }
0563
0564 #undef BOOST_NO_STD_TYPEINFO
0565 #endif
0566
0567
0568
0569
0570
0571
0572 #include <boost/config/helper_macros.hpp>
0573
0574
0575
0576
0577
0578 # ifndef BOOST_COMPILER
0579 # define BOOST_COMPILER "Unknown ISO C++ Compiler"
0580 # endif
0581 # ifndef BOOST_STDLIB
0582 # define BOOST_STDLIB "Unknown ISO standard library"
0583 # endif
0584 # ifndef BOOST_PLATFORM
0585 # if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
0586 || defined(_POSIX_SOURCE)
0587 # define BOOST_PLATFORM "Generic Unix"
0588 # else
0589 # define BOOST_PLATFORM "Unknown"
0590 # endif
0591 # endif
0592
0593
0594
0595
0596 # ifndef BOOST_GPU_ENABLED
0597 # define BOOST_GPU_ENABLED
0598 # endif
0599
0600
0601
0602 #if !defined(BOOST_RESTRICT)
0603 # if defined(_MSC_VER)
0604 # define BOOST_RESTRICT __restrict
0605 # if !defined(BOOST_NO_RESTRICT_REFERENCES) && (_MSC_FULL_VER < 190023026)
0606 # define BOOST_NO_RESTRICT_REFERENCES
0607 # endif
0608 # elif defined(__GNUC__) && __GNUC__ > 3
0609
0610 # define BOOST_RESTRICT __restrict__
0611 # else
0612 # define BOOST_RESTRICT
0613 # if !defined(BOOST_NO_RESTRICT_REFERENCES)
0614 # define BOOST_NO_RESTRICT_REFERENCES
0615 # endif
0616 # endif
0617 #endif
0618
0619
0620
0621
0622 #if !defined(BOOST_MAY_ALIAS)
0623 # define BOOST_NO_MAY_ALIAS
0624 # define BOOST_MAY_ALIAS
0625 #endif
0626
0627
0628
0629 #if !defined(BOOST_FORCEINLINE)
0630 # if defined(_MSC_VER)
0631 # define BOOST_FORCEINLINE __forceinline
0632 # elif defined(__GNUC__) && __GNUC__ > 3
0633
0634 # define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
0635 # else
0636 # define BOOST_FORCEINLINE inline
0637 # endif
0638 #endif
0639
0640
0641
0642 #if !defined(BOOST_NOINLINE)
0643 # if defined(_MSC_VER)
0644 # define BOOST_NOINLINE __declspec(noinline)
0645 # elif defined(__GNUC__) && __GNUC__ > 3
0646
0647 # if defined(__CUDACC__)
0648
0649
0650 # define BOOST_NOINLINE __attribute__ ((noinline))
0651 # elif defined(__HIP__)
0652
0653 # define BOOST_NOINLINE __attribute__ ((noinline))
0654 # else
0655 # define BOOST_NOINLINE __attribute__ ((__noinline__))
0656 # endif
0657 # else
0658 # define BOOST_NOINLINE
0659 # endif
0660 #endif
0661
0662
0663
0664
0665
0666 #if !defined(BOOST_NORETURN)
0667 # if defined(_MSC_VER)
0668 # define BOOST_NORETURN __declspec(noreturn)
0669 # elif defined(__GNUC__) || defined(__CODEGEARC__) && defined(__clang__)
0670 # define BOOST_NORETURN __attribute__ ((__noreturn__))
0671 # elif defined(__has_attribute) && defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x5130)
0672 # if __has_attribute(noreturn)
0673 # define BOOST_NORETURN [[noreturn]]
0674 # endif
0675 # elif defined(__has_cpp_attribute)
0676 # if __has_cpp_attribute(noreturn)
0677 # define BOOST_NORETURN [[noreturn]]
0678 # endif
0679 # endif
0680 #endif
0681
0682 #if !defined(BOOST_NORETURN)
0683 # define BOOST_NO_NORETURN
0684 # define BOOST_NORETURN
0685 #endif
0686
0687
0688
0689
0690
0691
0692 #if !defined(BOOST_DEPRECATED) && __cplusplus >= 201402
0693 #define BOOST_DEPRECATED(msg) [[deprecated(msg)]]
0694 #endif
0695
0696 #if defined(BOOST_ALLOW_DEPRECATED_SYMBOLS) || defined(BOOST_ALLOW_DEPRECATED)
0697 #undef BOOST_DEPRECATED
0698 #endif
0699
0700 #if !defined(BOOST_DEPRECATED)
0701 #define BOOST_DEPRECATED(msg)
0702 #endif
0703
0704
0705
0706
0707
0708
0709
0710
0711
0712 #if !defined(BOOST_LIKELY)
0713 # define BOOST_LIKELY(x) x
0714 #endif
0715 #if !defined(BOOST_UNLIKELY)
0716 # define BOOST_UNLIKELY(x) x
0717 #endif
0718
0719 #if !defined(BOOST_NO_CXX11_OVERRIDE)
0720 # define BOOST_OVERRIDE override
0721 #else
0722 # define BOOST_OVERRIDE
0723 #endif
0724
0725
0726
0727 #if !defined(BOOST_ALIGNMENT)
0728 # if !defined(BOOST_NO_CXX11_ALIGNAS)
0729 # define BOOST_ALIGNMENT(x) alignas(x)
0730 # elif defined(_MSC_VER)
0731 # define BOOST_ALIGNMENT(x) __declspec(align(x))
0732 # elif defined(__GNUC__)
0733 # define BOOST_ALIGNMENT(x) __attribute__ ((__aligned__(x)))
0734 # else
0735 # define BOOST_NO_ALIGNMENT
0736 # define BOOST_ALIGNMENT(x)
0737 # endif
0738 #endif
0739
0740
0741 #if !defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS) && defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS)
0742 # define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
0743 #endif
0744
0745
0746 #if !defined(BOOST_NO_CXX11_DEFAULTED_MOVES) && (defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_RVALUE_REFERENCES))
0747 # define BOOST_NO_CXX11_DEFAULTED_MOVES
0748 #endif
0749
0750
0751
0752
0753
0754
0755
0756
0757
0758
0759
0760
0761
0762
0763
0764
0765
0766
0767
0768
0769 #if !(defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) || defined(BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS))
0770 # define BOOST_DEFAULTED_FUNCTION(fun, body) fun = default;
0771 #else
0772 # define BOOST_DEFAULTED_FUNCTION(fun, body) fun body
0773 #endif
0774
0775 #if !defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
0776 # define BOOST_DELETED_FUNCTION(fun) fun = delete;
0777 #else
0778 # define BOOST_DELETED_FUNCTION(fun) private: fun;
0779 #endif
0780
0781
0782
0783
0784 #if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
0785 #define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
0786 #endif
0787
0788
0789
0790
0791
0792
0793 #if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET)
0794 # ifndef BOOST_NO_CXX11_STD_UNORDERED
0795 # define BOOST_NO_CXX11_STD_UNORDERED
0796 # endif
0797 #endif
0798
0799
0800 #if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
0801 # define BOOST_NO_INITIALIZER_LISTS
0802 #endif
0803
0804
0805 #if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_0X_HDR_ARRAY)
0806 # define BOOST_NO_0X_HDR_ARRAY
0807 #endif
0808
0809 #if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO)
0810 # define BOOST_NO_0X_HDR_CHRONO
0811 #endif
0812
0813 #if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT)
0814 # define BOOST_NO_0X_HDR_CODECVT
0815 #endif
0816
0817 #if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE)
0818 # define BOOST_NO_0X_HDR_CONDITION_VARIABLE
0819 #endif
0820
0821 #if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST)
0822 # define BOOST_NO_0X_HDR_FORWARD_LIST
0823 #endif
0824
0825 #if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE)
0826 # define BOOST_NO_0X_HDR_FUTURE
0827 #endif
0828
0829
0830
0831 #ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
0832 # ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
0833 # define BOOST_NO_0X_HDR_INITIALIZER_LIST
0834 # endif
0835 # ifndef BOOST_NO_INITIALIZER_LISTS
0836 # define BOOST_NO_INITIALIZER_LISTS
0837 # endif
0838 #endif
0839
0840
0841 #if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX)
0842 # define BOOST_NO_0X_HDR_MUTEX
0843 #endif
0844
0845 #if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM)
0846 # define BOOST_NO_0X_HDR_RANDOM
0847 #endif
0848
0849 #if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO)
0850 # define BOOST_NO_0X_HDR_RATIO
0851 #endif
0852
0853 #if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX)
0854 # define BOOST_NO_0X_HDR_REGEX
0855 #endif
0856
0857 #if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR)
0858 # define BOOST_NO_0X_HDR_SYSTEM_ERROR
0859 #endif
0860
0861 #if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD)
0862 # define BOOST_NO_0X_HDR_THREAD
0863 #endif
0864
0865 #if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE)
0866 # define BOOST_NO_0X_HDR_TUPLE
0867 #endif
0868
0869 #if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS)
0870 # define BOOST_NO_0X_HDR_TYPE_TRAITS
0871 #endif
0872
0873 #if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX)
0874 # define BOOST_NO_0X_HDR_TYPEINDEX
0875 #endif
0876
0877 #if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP)
0878 # define BOOST_NO_0X_HDR_UNORDERED_MAP
0879 #endif
0880
0881 #if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET)
0882 # define BOOST_NO_0X_HDR_UNORDERED_SET
0883 #endif
0884
0885
0886
0887
0888
0889
0890
0891 #if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS)
0892 # define BOOST_NO_AUTO_DECLARATIONS
0893 #endif
0894
0895 #if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS)
0896 # define BOOST_NO_AUTO_MULTIDECLARATIONS
0897 #endif
0898
0899 #if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T)
0900 # define BOOST_NO_CHAR16_T
0901 #endif
0902
0903 #if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T)
0904 # define BOOST_NO_CHAR32_T
0905 #endif
0906
0907 #if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES)
0908 # define BOOST_NO_TEMPLATE_ALIASES
0909 #endif
0910
0911 #if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR)
0912 # define BOOST_NO_CONSTEXPR
0913 #endif
0914
0915 #if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276)
0916 # define BOOST_NO_DECLTYPE_N3276
0917 #endif
0918
0919 #if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE)
0920 # define BOOST_NO_DECLTYPE
0921 #endif
0922
0923 #if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS)
0924 # define BOOST_NO_DEFAULTED_FUNCTIONS
0925 #endif
0926
0927 #if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS)
0928 # define BOOST_NO_DELETED_FUNCTIONS
0929 #endif
0930
0931 #if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
0932 # define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
0933 #endif
0934
0935 #if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE)
0936 # define BOOST_NO_EXTERN_TEMPLATE
0937 #endif
0938
0939 #if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
0940 # define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
0941 #endif
0942
0943 #if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS)
0944 # define BOOST_NO_LAMBDAS
0945 #endif
0946
0947 #if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
0948 # define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
0949 #endif
0950
0951 #if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT)
0952 # define BOOST_NO_NOEXCEPT
0953 #endif
0954
0955 #if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR)
0956 # define BOOST_NO_NULLPTR
0957 #endif
0958
0959 #if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS)
0960 # define BOOST_NO_RAW_LITERALS
0961 #endif
0962
0963 #if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES)
0964 # define BOOST_NO_RVALUE_REFERENCES
0965 #endif
0966
0967 #if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS)
0968 # define BOOST_NO_SCOPED_ENUMS
0969 #endif
0970
0971 #if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT)
0972 # define BOOST_NO_STATIC_ASSERT
0973 #endif
0974
0975 #if defined(BOOST_NO_CXX11_STD_UNORDERED) && !defined(BOOST_NO_STD_UNORDERED)
0976 # define BOOST_NO_STD_UNORDERED
0977 #endif
0978
0979 #if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS)
0980 # define BOOST_NO_UNICODE_LITERALS
0981 #endif
0982
0983 #if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
0984 # define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
0985 #endif
0986
0987 #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES)
0988 # define BOOST_NO_VARIADIC_TEMPLATES
0989 #endif
0990
0991 #if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS)
0992 # define BOOST_NO_VARIADIC_MACROS
0993 #endif
0994
0995 #if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST)
0996 # define BOOST_NO_NUMERIC_LIMITS_LOWEST
0997 #endif
0998
0999
1000
1001
1002
1003
1004 #if !defined(BOOST_NO_CXX11_FINAL)
1005 # define BOOST_FINAL final
1006 #else
1007 # define BOOST_FINAL
1008 #endif
1009
1010
1011
1012
1013
1014 #ifdef BOOST_NO_CXX11_NOEXCEPT
1015 # define BOOST_NOEXCEPT
1016 # define BOOST_NOEXCEPT_OR_NOTHROW throw()
1017 # define BOOST_NOEXCEPT_IF(Predicate)
1018 # define BOOST_NOEXCEPT_EXPR(Expression) false
1019 #else
1020 # define BOOST_NOEXCEPT noexcept
1021 # define BOOST_NOEXCEPT_OR_NOTHROW noexcept
1022 # define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
1023 # define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
1024 #endif
1025
1026
1027
1028
1029
1030
1031
1032 #ifndef BOOST_FALLTHROUGH
1033 # define BOOST_FALLTHROUGH ((void)0)
1034 #endif
1035
1036
1037
1038
1039 #if defined(BOOST_NO_CXX11_CONSTEXPR)
1040 #define BOOST_CONSTEXPR
1041 #define BOOST_CONSTEXPR_OR_CONST const
1042 #else
1043 #define BOOST_CONSTEXPR constexpr
1044 #define BOOST_CONSTEXPR_OR_CONST constexpr
1045 #endif
1046 #if defined(BOOST_NO_CXX14_CONSTEXPR)
1047 #define BOOST_CXX14_CONSTEXPR
1048 #else
1049 #define BOOST_CXX14_CONSTEXPR constexpr
1050 #endif
1051 #if !defined(BOOST_NO_CXX17_STRUCTURED_BINDINGS) && defined(BOOST_NO_CXX11_HDR_TUPLE)
1052 # define BOOST_NO_CXX17_STRUCTURED_BINDINGS
1053 #endif
1054
1055
1056
1057
1058 #if !defined(BOOST_NO_CXX17_INLINE_VARIABLES)
1059 #define BOOST_INLINE_VARIABLE inline
1060 #else
1061 #define BOOST_INLINE_VARIABLE
1062 #endif
1063
1064
1065
1066 #if !defined(BOOST_NO_CXX17_IF_CONSTEXPR)
1067 # define BOOST_IF_CONSTEXPR if constexpr
1068 #else
1069 # define BOOST_IF_CONSTEXPR if
1070 #endif
1071
1072 #define BOOST_INLINE_CONSTEXPR BOOST_INLINE_VARIABLE BOOST_CONSTEXPR_OR_CONST
1073
1074
1075
1076
1077 #ifndef BOOST_ATTRIBUTE_UNUSED
1078 # if defined(__has_attribute) && defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x5130)
1079 # if __has_attribute(maybe_unused)
1080 # define BOOST_ATTRIBUTE_UNUSED [[maybe_unused]]
1081 # endif
1082 # elif defined(__has_cpp_attribute)
1083 # if __has_cpp_attribute(maybe_unused)
1084 # define BOOST_ATTRIBUTE_UNUSED [[maybe_unused]]
1085 # endif
1086 # endif
1087 #endif
1088
1089 #ifndef BOOST_ATTRIBUTE_UNUSED
1090 # define BOOST_ATTRIBUTE_UNUSED
1091 #endif
1092
1093
1094
1095
1096 #if defined(__has_attribute) && defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x5130)
1097 #if __has_attribute(nodiscard)
1098 # define BOOST_ATTRIBUTE_NODISCARD [[nodiscard]]
1099 #endif
1100 #if __has_attribute(no_unique_address)
1101 # define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS [[no_unique_address]]
1102 #endif
1103 #elif defined(__has_cpp_attribute)
1104
1105 #if __has_cpp_attribute(nodiscard) && !(defined(__clang__) && (__cplusplus < 201703L)) && !(defined(__GNUC__) && (__cplusplus < 201100))
1106 # define BOOST_ATTRIBUTE_NODISCARD [[nodiscard]]
1107 #endif
1108 #if __has_cpp_attribute(no_unique_address) && !(defined(__GNUC__) && (__cplusplus < 201100))
1109 # define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS [[no_unique_address]]
1110 #endif
1111 #endif
1112 #ifndef BOOST_ATTRIBUTE_NODISCARD
1113 # define BOOST_ATTRIBUTE_NODISCARD
1114 #endif
1115 #ifndef BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS
1116 # define BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS
1117 #endif
1118
1119 #define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
1120
1121 #if !defined(BOOST_NO_CXX11_NULLPTR)
1122 # define BOOST_NULLPTR nullptr
1123 #else
1124 # define BOOST_NULLPTR 0
1125 #endif
1126
1127
1128
1129
1130 #if !defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
1131 # define BOOST_HAS_STATIC_ASSERT
1132 #endif
1133
1134
1135
1136
1137 #if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
1138 #define BOOST_HAS_RVALUE_REFS
1139 #endif
1140
1141
1142
1143
1144 #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
1145 #define BOOST_HAS_VARIADIC_TMPL
1146 #endif
1147
1148
1149
1150
1151 #if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS)
1152 # define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
1153 #endif
1154
1155
1156 #if !defined(_YVALS) && !defined(_CPPLIB_VER)
1157 #if (!defined(__has_include) || (__cplusplus < 201700))
1158 # define BOOST_NO_CXX17_HDR_OPTIONAL
1159 # define BOOST_NO_CXX17_HDR_STRING_VIEW
1160 # define BOOST_NO_CXX17_HDR_VARIANT
1161 # define BOOST_NO_CXX17_HDR_ANY
1162 # define BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
1163 # define BOOST_NO_CXX17_HDR_CHARCONV
1164 # define BOOST_NO_CXX17_HDR_EXECUTION
1165 # define BOOST_NO_CXX17_HDR_FILESYSTEM
1166 #else
1167 #if !__has_include(<optional>)
1168 # define BOOST_NO_CXX17_HDR_OPTIONAL
1169 #endif
1170 #if !__has_include(<string_view>)
1171 # define BOOST_NO_CXX17_HDR_STRING_VIEW
1172 #endif
1173 #if !__has_include(<variant>)
1174 # define BOOST_NO_CXX17_HDR_VARIANT
1175 #endif
1176 #if !__has_include(<any>)
1177 # define BOOST_NO_CXX17_HDR_ANY
1178 #endif
1179 #if !__has_include(<memory_resource>)
1180 # define BOOST_NO_CXX17_HDR_MEMORY_RESOURCE
1181 #endif
1182 #if !__has_include(<charconv>)
1183 # define BOOST_NO_CXX17_HDR_CHARCONV
1184 #endif
1185 #if !__has_include(<execution>)
1186 # define BOOST_NO_CXX17_HDR_EXECUTION
1187 #endif
1188 #if !__has_include(<filesystem>)
1189 # define BOOST_NO_CXX17_HDR_FILESYSTEM
1190 #endif
1191 #endif
1192 #endif
1193
1194
1195
1196 #ifndef BOOST_CXX_VERSION
1197 # define BOOST_CXX_VERSION __cplusplus
1198 #endif
1199
1200 #if (!defined(__has_include) || (BOOST_CXX_VERSION < 201704))
1201 # define BOOST_NO_CXX20_HDR_BARRIER
1202 # define BOOST_NO_CXX20_HDR_FORMAT
1203 # define BOOST_NO_CXX20_HDR_SOURCE_LOCATION
1204 # define BOOST_NO_CXX20_HDR_BIT
1205 # define BOOST_NO_CXX20_HDR_LATCH
1206 # define BOOST_NO_CXX20_HDR_SPAN
1207 # define BOOST_NO_CXX20_HDR_COMPARE
1208 # define BOOST_NO_CXX20_HDR_NUMBERS
1209 # define BOOST_NO_CXX20_HDR_STOP_TOKEN
1210 # define BOOST_NO_CXX20_HDR_CONCEPTS
1211 # define BOOST_NO_CXX20_HDR_RANGES
1212 # define BOOST_NO_CXX20_HDR_SYNCSTREAM
1213 # define BOOST_NO_CXX20_HDR_COROUTINE
1214 # define BOOST_NO_CXX20_HDR_SEMAPHORE
1215 #else
1216 #if (!__has_include(<barrier>) || !defined(__cpp_lib_barrier) || (__cpp_lib_barrier < 201907L)) && !defined(BOOST_NO_CXX20_HDR_BARRIER)
1217 # define BOOST_NO_CXX20_HDR_BARRIER
1218 #endif
1219 #if (!__has_include(<format>) || !defined(__cpp_lib_format) || (__cpp_lib_format < 201907L)) && !defined(BOOST_NO_CXX20_HDR_FORMAT)
1220 # define BOOST_NO_CXX20_HDR_FORMAT
1221 #endif
1222 #if (!__has_include(<source_location>) || !defined(__cpp_lib_source_location) || (__cpp_lib_source_location < 201907L)) && !defined(BOOST_NO_CXX20_HDR_SOURCE_LOCATION)
1223 # define BOOST_NO_CXX20_HDR_SOURCE_LOCATION
1224 #endif
1225 #if (!__has_include(<bit>) || !defined(__cpp_lib_bit_cast) || (__cpp_lib_bit_cast < 201806L) || !defined(__cpp_lib_bitops) || (__cpp_lib_bitops < 201907L) || !defined(__cpp_lib_endian) || (__cpp_lib_endian < 201907L)) && !defined(BOOST_NO_CXX20_HDR_BIT)
1226 # define BOOST_NO_CXX20_HDR_BIT
1227 #endif
1228 #if (!__has_include(<latch>) || !defined(__cpp_lib_latch) || (__cpp_lib_latch < 201907L)) && !defined(BOOST_NO_CXX20_HDR_LATCH)
1229 # define BOOST_NO_CXX20_HDR_LATCH
1230 #endif
1231 #if (!__has_include(<span>) || !defined(__cpp_lib_span) || (__cpp_lib_span < 202002L)) && !defined(BOOST_NO_CXX20_HDR_SPAN)
1232 # define BOOST_NO_CXX20_HDR_SPAN
1233 #endif
1234 #if (!__has_include(<compare>) || !defined(__cpp_lib_three_way_comparison) || (__cpp_lib_three_way_comparison < 201907L)) && !defined(BOOST_NO_CXX20_HDR_COMPARE)
1235 # define BOOST_NO_CXX20_HDR_COMPARE
1236 #endif
1237 #if (!__has_include(<numbers>) || !defined(__cpp_lib_math_constants) || (__cpp_lib_math_constants < 201907L)) && !defined(BOOST_NO_CXX20_HDR_NUMBERS)
1238 # define BOOST_NO_CXX20_HDR_NUMBERS
1239 #endif
1240 #if (!__has_include(<stop_token>) || !defined(__cpp_lib_jthread) || (__cpp_lib_jthread < 201911L)) && !defined(BOOST_NO_CXX20_HDR_STOP_TOKEN)
1241 # define BOOST_NO_CXX20_HDR_STOP_TOKEN
1242 #endif
1243 #if (!__has_include(<concepts>) || !defined(__cpp_lib_concepts) || (__cpp_lib_concepts < 202002L)) && !defined(_YVALS) && !defined(_CPPLIB_VER) && !defined(BOOST_NO_CXX20_HDR_CONCEPTS)
1244 # define BOOST_NO_CXX20_HDR_CONCEPTS
1245 #endif
1246 #if (!__has_include(<ranges>) || !defined(__cpp_lib_ranges) || (__cpp_lib_ranges < 201911L)) && !defined(BOOST_NO_CXX20_HDR_RANGES)
1247 # define BOOST_NO_CXX20_HDR_RANGES
1248 #endif
1249 #if (!__has_include(<syncstream>) || !defined(__cpp_lib_syncbuf) || (__cpp_lib_syncbuf < 201803L)) && !defined(BOOST_NO_CXX20_HDR_SYNCSTREAM)
1250 # define BOOST_NO_CXX20_HDR_SYNCSTREAM
1251 #endif
1252 #if (!__has_include(<coroutine>) || !defined(__cpp_lib_coroutine) || (__cpp_lib_coroutine < 201902L)) && !defined(BOOST_NO_CXX20_HDR_COROUTINE)
1253 # define BOOST_NO_CXX20_HDR_COROUTINE
1254 #endif
1255 #if (!__has_include(<semaphore>) || !defined(__cpp_lib_semaphore) || (__cpp_lib_semaphore < 201907L)) && !defined(BOOST_NO_CXX20_HDR_SEMAPHORE)
1256 # define BOOST_NO_CXX20_HDR_SEMAPHORE
1257 #endif
1258 #endif
1259
1260 #if (!defined(__has_include) || (BOOST_CXX_VERSION < 202003L))
1261 # define BOOST_NO_CXX23_HDR_EXPECTED
1262 # define BOOST_NO_CXX23_HDR_FLAT_MAP
1263 # define BOOST_NO_CXX23_HDR_FLAT_SET
1264 # define BOOST_NO_CXX23_HDR_GENERATOR
1265 # define BOOST_NO_CXX23_HDR_MDSPAN
1266 # define BOOST_NO_CXX23_HDR_PRINT
1267 # define BOOST_NO_CXX23_HDR_SPANSTREAM
1268 # define BOOST_NO_CXX23_HDR_STACKTRACE
1269 # define BOOST_NO_CXX23_HDR_STDFLOAT
1270 #else
1271 #if (!__has_include(<expected>) || !defined(__cpp_lib_expected) || (__cpp_lib_expected < 202211L)) && !defined(BOOST_NO_CXX23_HDR_EXPECTED)
1272 # define BOOST_NO_CXX23_HDR_EXPECTED
1273 #endif
1274 #if (!__has_include(<flat_map>) || !defined(__cpp_lib_flat_map) || (__cpp_lib_flat_map < 202207L)) && !defined(BOOST_NO_CXX23_HDR_FLAT_MAP)
1275 # define BOOST_NO_CXX23_HDR_FLAT_MAP
1276 #endif
1277 #if (!__has_include(<flat_set>) || !defined(__cpp_lib_flat_set) || (__cpp_lib_flat_set < 202207L)) && !defined(BOOST_NO_CXX23_HDR_FLAT_SET)
1278 # define BOOST_NO_CXX23_HDR_FLAT_SET
1279 #endif
1280 #if (!__has_include(<generator>) || !defined(__cpp_lib_generator) || (__cpp_lib_generator < 202207L)) && !defined(BOOST_NO_CXX23_HDR_GENERATOR)
1281 # define BOOST_NO_CXX23_HDR_GENERATOR
1282 #endif
1283 #if (!__has_include(<mdspan>) || !defined(__cpp_lib_mdspan) || (__cpp_lib_mdspan < 202207L)) && !defined(BOOST_NO_CXX23_HDR_MDSPAN)
1284 # define BOOST_NO_CXX23_HDR_MDSPAN
1285 #endif
1286 #if (!__has_include(<print>) || !defined(__cpp_lib_print) || (__cpp_lib_print < 202207L)) && !defined(BOOST_NO_CXX23_HDR_PRINT)
1287 # define BOOST_NO_CXX23_HDR_PRINT
1288 #endif
1289 #if (!__has_include(<spanstream>) || !defined(__cpp_lib_spanstream) || (__cpp_lib_spanstream < 202106L)) && !defined(BOOST_NO_CXX23_HDR_SPANSTREAM)
1290 # define BOOST_NO_CXX23_HDR_SPANSTREAM
1291 #endif
1292 #if (!__has_include(<stacktrace>) || !defined(__cpp_lib_stacktrace) || (__cpp_lib_stacktrace < 202011L)) && !defined(BOOST_NO_CXX23_HDR_STACKTRACE)
1293 # define BOOST_NO_CXX23_HDR_STACKTRACE
1294 #endif
1295 #if !__has_include(<stdfloat>) && !defined(BOOST_NO_CXX23_HDR_STDFLOAT)
1296 # define BOOST_NO_CXX23_HDR_STDFLOAT
1297 #endif
1298 #endif
1299
1300 #if defined(__cplusplus) && defined(__has_include)
1301 #if !__has_include(<version>)
1302 # define BOOST_NO_CXX20_HDR_VERSION
1303 #else
1304
1305 # include <version>
1306 #endif
1307 #else
1308 # define BOOST_NO_CXX20_HDR_VERSION
1309 #endif
1310
1311 #if defined(BOOST_MSVC)
1312 #if (BOOST_MSVC < 1914) || (_MSVC_LANG < 201703)
1313 # define BOOST_NO_CXX17_DEDUCTION_GUIDES
1314 #endif
1315 #elif !defined(__cpp_deduction_guides) || (__cpp_deduction_guides < 201606)
1316 # define BOOST_NO_CXX17_DEDUCTION_GUIDES
1317 #endif
1318
1319
1320
1321
1322 #include <boost/config/detail/cxx_composite.hpp>
1323
1324
1325
1326
1327
1328
1329
1330 #if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_CONFIG_ALLOW_DEPRECATED)
1331 # error "You are using a compiler which lacks features which are now a minimum requirement in order to use Boost, define BOOST_CONFIG_ALLOW_DEPRECATED if you want to continue at your own risk!!!"
1332 #endif
1333
1334 #endif