diff options
| author | robot-contrib <[email protected]> | 2022-09-21 13:56:33 +0300 | 
|---|---|---|
| committer | robot-contrib <[email protected]> | 2022-09-21 13:56:33 +0300 | 
| commit | 3c4e9491da8a5ee5d6aab7fd6511531cd6c83ca9 (patch) | |
| tree | 05b5de849368df51bb91c6144cba01ceddf20e91 /contrib | |
| parent | 9e6e5a589e03344f0f03afeee39dbb214b6ddd11 (diff) | |
Update contrib/restricted/boost/config to 1.80.0
Diffstat (limited to 'contrib')
52 files changed, 1293 insertions, 224 deletions
diff --git a/contrib/restricted/boost/config/CMakeLists.txt b/contrib/restricted/boost/config/CMakeLists.txt index 905ca86bd75..84d7078ab96 100644 --- a/contrib/restricted/boost/config/CMakeLists.txt +++ b/contrib/restricted/boost/config/CMakeLists.txt @@ -8,6 +8,9 @@  add_library(restricted-boost-config INTERFACE) +target_compile_options(restricted-boost-config INTERFACE +  -DBOOST_ALL_NO_LIB +)  target_include_directories(restricted-boost-config INTERFACE    ${CMAKE_SOURCE_DIR}/contrib/restricted/boost/config/include  ) diff --git a/contrib/restricted/boost/config/README.md b/contrib/restricted/boost/config/README.md new file mode 100644 index 00000000000..228b0962014 --- /dev/null +++ b/contrib/restricted/boost/config/README.md @@ -0,0 +1,43 @@ +Boost Config Library +============================ + +This library provides configuration support for the Boost C++ libraries. + +The full documentation is available on [boost.org](http://www.boost.org/doc/libs/release/libs/config/index.html). + +|                  |  Master  |   Develop   | +|------------------|----------|-------------| +| Drone            |  [](https://drone.cpp.al/boostorg/config) | [](https://drone.cpp.al/boostorg/config) | +| Travis           | [](https://travis-ci.org/boostorg/config)  |  [](https://travis-ci.org/boostorg/config) | +| Appveyor         | [](https://ci.appveyor.com/project/jzmaddock/config/branch/master) | [](https://ci.appveyor.com/project/jzmaddock/config/branch/develop) | + +## Support, bugs and feature requests ## + +Bugs and feature requests can be reported through the [Gitub issue tracker](https://github.com/boostorg/config/issues) +(see [open issues](https://github.com/boostorg/config/issues) and +[closed issues](https://github.com/boostorg/config/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aclosed)). + +You can submit your changes through a [pull request](https://github.com/boostorg/config/pulls). + +There is no mailing-list specific to Boost Config, although you can use the general-purpose Boost [mailing-list](http://lists.boost.org/mailman/listinfo.cgi/boost-users) using the tag [config]. + + +## Development ## + +Clone the whole boost project, which includes the individual Boost projects as submodules ([see boost+git doc](https://github.com/boostorg/boost/wiki/Getting-Started)):  + +    git clone https://github.com/boostorg/boost +    cd boost +    git submodule update --init + +The Boost Config Library is located in `libs/config/`.  + +### Running tests ### +First, make sure you are in `libs/config/test`.  +You can either run all the tests listed in `Jamfile.v2` or run a single test: + +    ../../../b2                        <- run all tests +    ../../../b2 config_info            <- single test + +### For developers ### +Please check the [Guidelines for Boost Authors](http://www.boost.org/doc/libs/release/libs/config/doc/html/boost_config/guidelines_for_boost_authors.html). from the full documentation. diff --git a/contrib/restricted/boost/config/include/boost/config/abi_prefix.hpp b/contrib/restricted/boost/config/include/boost/config/abi_prefix.hpp index 3b1347492ca..bcdc26d9dc8 100644 --- a/contrib/restricted/boost/config/include/boost/config/abi_prefix.hpp +++ b/contrib/restricted/boost/config/include/boost/config/abi_prefix.hpp @@ -19,7 +19,7 @@  #  include BOOST_ABI_PREFIX  #endif -#if defined( __BORLANDC__ ) +#if defined( BOOST_BORLANDC )  #pragma nopushoptwarn  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/abi_suffix.hpp b/contrib/restricted/boost/config/include/boost/config/abi_suffix.hpp index 939161662ae..a1eb78db90a 100644 --- a/contrib/restricted/boost/config/include/boost/config/abi_suffix.hpp +++ b/contrib/restricted/boost/config/include/boost/config/abi_suffix.hpp @@ -20,8 +20,6 @@  #  include BOOST_ABI_SUFFIX  #endif -#if defined( __BORLANDC__ ) +#if defined( BOOST_BORLANDC )  #pragma nopushoptwarn  #endif - - diff --git a/contrib/restricted/boost/config/include/boost/config/auto_link.hpp b/contrib/restricted/boost/config/include/boost/config/auto_link.hpp index 2b6be37f4ba..64dee1ef16f 100644 --- a/contrib/restricted/boost/config/include/boost/config/auto_link.hpp +++ b/contrib/restricted/boost/config/include/boost/config/auto_link.hpp @@ -28,6 +28,9 @@ BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,  BOOST_AUTO_LINK_TAGGED:   Specifies that we link to libraries built with the --layout=tagged option.                            This is essentially the same as the default name-mangled version, but without                            the compiler name and version, or the Boost version.  Just the build options. +BOOST_AUTO_LINK_SYSTEM:   Specifies that we link to libraries built with the --layout=system option. +                          This is essentially the same as the non-name-mangled version, but with +                          the prefix to differentiate static and dll builds  These macros will be undef'ed at the end of the header, further this header  has no include guards - so be sure to include it only once from your library! @@ -48,6 +51,7 @@ BOOST_LIB_PREFIX     + BOOST_LIB_ARCH_AND_MODEL_OPT     "-"     + BOOST_LIB_VERSION +   + BOOST_LIB_SUFFIX  These are defined as: @@ -75,6 +79,7 @@ BOOST_LIB_ARCH_AND_MODEL_OPT: The architecture and address model  BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y. +BOOST_LIB_SUFFIX:     Static/import libraries extension (".lib", ".a") for the compiler.  ***************************************************************************/ @@ -94,9 +99,11 @@ BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.  // Only include what follows for known and supported compilers:  //  #if defined(BOOST_MSVC) \ -    || defined(__BORLANDC__) \ +    || defined(BOOST_EMBTC_WINDOWS) \ +    || defined(BOOST_BORLANDC) \      || (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \ -    || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) +    || (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200)) \ +    || (defined(BOOST_CLANG) && defined(BOOST_WINDOWS) && defined(_MSC_VER) && (__clang_major__ >= 4))  #ifndef BOOST_VERSION_HPP  #  include <boost/version.hpp> @@ -170,12 +177,27 @@ BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.       // vc14:  #    define BOOST_LIB_TOOLSET "vc140" -#  elif defined(BOOST_MSVC) +#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1920)       // vc14.1:  #    define BOOST_LIB_TOOLSET "vc141" -#  elif defined(__BORLANDC__) +#  elif defined(BOOST_MSVC) && (BOOST_MSVC < 1930) + +     // vc14.2: +#    define BOOST_LIB_TOOLSET "vc142" + +#  elif defined(BOOST_MSVC) + +     // vc14.3: +#    define BOOST_LIB_TOOLSET "vc143" + +#  elif defined(BOOST_EMBTC_WINDOWS) + +     // Embarcadero Clang based compilers: +#    define BOOST_LIB_TOOLSET "embtc" + +#  elif defined(BOOST_BORLANDC)       // CBuilder 6:  #    define BOOST_LIB_TOOLSET "bcb" @@ -195,6 +217,11 @@ BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.       // Metrowerks CodeWarrior 9.x  #    define BOOST_LIB_TOOLSET "cw9" +#  elif defined(BOOST_CLANG) && defined(BOOST_WINDOWS) && defined(_MSC_VER) && (__clang_major__ >= 4) + +     // Clang on Windows +#    define BOOST_LIB_TOOLSET "clangw" BOOST_STRINGIZE(__clang_major__) +  #  endif  #endif // BOOST_LIB_TOOLSET @@ -320,12 +347,32 @@ BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.  #  endif -#elif defined(__BORLANDC__) +#elif defined(BOOST_EMBTC_WINDOWS) + +#  ifdef _RTLDLL + +#     if defined(_DEBUG) +#         define BOOST_LIB_RT_OPT "-d" +#     else +#         define BOOST_LIB_RT_OPT +#     endif + +#  else + +#     if defined(_DEBUG) +#         define BOOST_LIB_RT_OPT "-sd" +#     else +#         define BOOST_LIB_RT_OPT "-s" +#     endif + +#  endif + +#elif defined(BOOST_BORLANDC)  //  // figure out whether we want the debug builds or not:  // -#if __BORLANDC__ > 0x561 +#if BOOST_BORLANDC > 0x561  #pragma defineonoption BOOST_BORLAND_DEBUG -v  #endif  // @@ -343,7 +390,7 @@ BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.  #     elif defined(BOOST_BORLAND_DEBUG)  #         define BOOST_LIB_RT_OPT "-d"  #     elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON) -#         define BOOST_LIB_RT_OPT -y +#         define BOOST_LIB_RT_OPT "-y"  #     else  #         define BOOST_LIB_RT_OPT  #     endif @@ -401,27 +448,38 @@ BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.        && defined(BOOST_LIB_ARCH_AND_MODEL_OPT) \        && defined(BOOST_LIB_VERSION) -/*#ifdef BOOST_AUTO_LINK_TAGGED -#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") +#if defined(BOOST_EMBTC_WIN64) +#  define BOOST_LIB_SUFFIX ".a" +#else +#  define BOOST_LIB_SUFFIX ".lib" +#endif + +#ifdef BOOST_AUTO_LINK_NOMANGLE +#  pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX) +#  ifdef BOOST_LIB_DIAGNOSTIC +#     pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX) +#  endif +#elif defined(BOOST_AUTO_LINK_TAGGED) +#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT BOOST_LIB_SUFFIX)  #  ifdef BOOST_LIB_DIAGNOSTIC -#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib") +#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT BOOST_LIB_SUFFIX)  #  endif -#elif defined(BOOST_AUTO_LINK_NOMANGLE) -#  pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") +#elif defined(BOOST_AUTO_LINK_SYSTEM) +#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX)  #  ifdef BOOST_LIB_DIAGNOSTIC -#     pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib") +#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_SUFFIX)  #  endif  #elif defined(BOOST_LIB_BUILDID) -#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib") +#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) BOOST_LIB_SUFFIX)  #  ifdef BOOST_LIB_DIAGNOSTIC -#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib") +#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) BOOST_LIB_SUFFIX)  #  endif  #else -#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib") +#  pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION BOOST_LIB_SUFFIX)  #  ifdef BOOST_LIB_DIAGNOSTIC -#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION ".lib") +#     pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT BOOST_LIB_ARCH_AND_MODEL_OPT "-" BOOST_LIB_VERSION BOOST_LIB_SUFFIX)  #  endif -#endif*/ +#endif  #else  #  error "some required macros where not defined (internal logic error)." @@ -462,5 +520,6 @@ BOOST_LIB_VERSION:    The Boost version, in the form x_y, for Boost version x.y.  #if defined(BOOST_DYN_LINK)  #  undef BOOST_DYN_LINK  #endif - - +#if defined(BOOST_LIB_SUFFIX) +#  undef BOOST_LIB_SUFFIX +#endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/borland.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/borland.hpp index 6190e390e6c..c5113b71510 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/borland.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/borland.hpp @@ -19,9 +19,9 @@  // last known compiler version:  #if (__BORLANDC__ > 0x613)  //#  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  //#  else -//#     pragma message( "Unknown compiler version - please run the configure tests and report the results") +//#     pragma message( "boost: Unknown compiler version - please run the configure tests and report the results")  //#  endif  #elif (__BORLANDC__ == 0x600)  #  error "CBuilderX preview compiler is no longer supported" @@ -198,7 +198,9 @@  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE  #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -239,6 +241,9 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif  #if __BORLANDC__ >= 0x590  #  define BOOST_HAS_TR1_HASH @@ -329,4 +334,5 @@  // (Niels Dekker, LKEB, April 2010)  #define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) +#define BOOST_BORLANDC __BORLANDC__ +#define BOOST_COMPILER "Classic Borland C++ version " BOOST_STRINGIZE(__BORLANDC__) diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/clang.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/clang.hpp index 6cd91c8a554..11eecce09bb 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/clang.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/clang.hpp @@ -57,6 +57,14 @@  #  define BOOST_HAS_STDINT_H  #endif +#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC) +#if (__clang_major__ >= 4) && defined(__has_include) +#if __has_include(<quadmath.h>) +#  define BOOST_HAS_FLOAT128 +#endif +#endif +#endif +  #define BOOST_HAS_NRVO @@ -106,13 +114,13 @@  #  ifndef BOOST_SYMBOL_EXPORT  #    define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))  #  endif -#  ifndef BOOST_SYMBOL_EXPORT +#  ifndef BOOST_SYMBOL_VISIBLE +#    define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) +#  endif +#  ifndef BOOST_SYMBOL_IMPORT  #    define BOOST_SYMBOL_IMPORT  #  endif  #endif -#ifndef BOOST_SYMBOL_VISIBLE -#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) -#endif  //  // The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through @@ -248,6 +256,11 @@  #if !__has_feature(cxx_override_control)  #  define BOOST_NO_CXX11_FINAL +#  define BOOST_NO_CXX11_OVERRIDE +#endif + +#if !__has_feature(cxx_unrestricted_unions) +#  define BOOST_NO_CXX11_UNRESTRICTED_UNION  #endif  #if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) @@ -300,6 +313,10 @@  #  define BOOST_NO_CXX17_STRUCTURED_BINDINGS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif +  // Clang 3.9+ in c++1z  #if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L  #  define BOOST_NO_CXX17_INLINE_VARIABLES @@ -340,3 +357,5 @@  // Macro used to identify the Clang compiler.  #define BOOST_CLANG 1 +// BOOST_CLANG_VERSION +#include <boost/config/compiler/clang_version.hpp> diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/clang_version.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/clang_version.hpp new file mode 100644 index 00000000000..9e5b408ae02 --- /dev/null +++ b/contrib/restricted/boost/config/include/boost/config/compiler/clang_version.hpp @@ -0,0 +1,77 @@ +// Copyright 2021 Peter Dimov +// Distributed under the Boost Software License, Version 1.0. +// https://www.boost.org/LICENSE_1_0.txt) + +#if !defined(__APPLE__) + +# define BOOST_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) + +#else +# define BOOST_CLANG_REPORTED_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) + +// https://en.wikipedia.org/wiki/Xcode#Toolchain_versions + +# if BOOST_CLANG_REPORTED_VERSION >= 130000 +#   define BOOST_CLANG_VERSION 120000 + +# elif BOOST_CLANG_REPORTED_VERSION >= 120005 +#   define BOOST_CLANG_VERSION 110100 + +# elif BOOST_CLANG_REPORTED_VERSION >= 120000 +#   define BOOST_CLANG_VERSION 100000 + +# elif BOOST_CLANG_REPORTED_VERSION >= 110003 +#   define BOOST_CLANG_VERSION 90000 + +# elif BOOST_CLANG_REPORTED_VERSION >= 110000 +#   define BOOST_CLANG_VERSION 80000 + +# elif BOOST_CLANG_REPORTED_VERSION >= 100001 +#   define BOOST_CLANG_VERSION 70000 + +# elif BOOST_CLANG_REPORTED_VERSION >= 100000 +#   define BOOST_CLANG_VERSION 60001 + +# elif BOOST_CLANG_REPORTED_VERSION >= 90100 +#   define BOOST_CLANG_VERSION 50002 + +# elif BOOST_CLANG_REPORTED_VERSION >= 90000 +#   define BOOST_CLANG_VERSION 40000 + +# elif BOOST_CLANG_REPORTED_VERSION >= 80000 +#   define BOOST_CLANG_VERSION 30900 + +# elif BOOST_CLANG_REPORTED_VERSION >= 70300 +#   define BOOST_CLANG_VERSION 30800 + +# elif BOOST_CLANG_REPORTED_VERSION >= 70000 +#   define BOOST_CLANG_VERSION 30700 + +# elif BOOST_CLANG_REPORTED_VERSION >= 60100 +#   define BOOST_CLANG_VERSION 30600 + +# elif BOOST_CLANG_REPORTED_VERSION >= 60000 +#   define BOOST_CLANG_VERSION 30500 + +# elif BOOST_CLANG_REPORTED_VERSION >= 50100 +#   define BOOST_CLANG_VERSION 30400 + +# elif BOOST_CLANG_REPORTED_VERSION >= 50000 +#   define BOOST_CLANG_VERSION 30300 + +# elif BOOST_CLANG_REPORTED_VERSION >= 40200 +#   define BOOST_CLANG_VERSION 30200 + +# elif BOOST_CLANG_REPORTED_VERSION >= 30100 +#   define BOOST_CLANG_VERSION 30100 + +# elif BOOST_CLANG_REPORTED_VERSION >= 20100 +#   define BOOST_CLANG_VERSION 30000 + +# else +#   define BOOST_CLANG_VERSION 20900 + +# endif + +# undef BOOST_CLANG_REPORTED_VERSION +#endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/codegear.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/codegear.hpp index 44ca8428e47..77949aaf46c 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/codegear.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/codegear.hpp @@ -9,6 +9,155 @@  //  CodeGear C++ compiler setup: +// +// versions check: +// last known and checked version is 0x740 +#if (__CODEGEARC__ > 0x740) +#  if defined(BOOST_ASSERT_CONFIG) +#     error "boost: Unknown compiler version - please run the configure tests and report the results" +#  else +#     pragma message( "boost: Unknown compiler version - please run the configure tests and report the results") +#  endif +#endif + +#ifdef __clang__ // Clang enhanced Windows compiler + +#  include "clang.hpp" +#  define BOOST_NO_CXX11_THREAD_LOCAL +#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR + +// This bug has been reported to Embarcadero + +#if defined(BOOST_HAS_INT128) +#undef BOOST_HAS_INT128 +#endif +#if defined(BOOST_HAS_FLOAT128) +#undef BOOST_HAS_FLOAT128 +#endif + +// The clang-based compilers can not do 128 atomic exchanges + +#define BOOST_ATOMIC_NO_CMPXCHG16B + +// 32 functions are missing from the current RTL in cwchar, so it really can not be used even if it exists + +#  define BOOST_NO_CWCHAR + +#  ifndef __MT__  /* If compiling in single-threaded mode, assume there is no CXX11_HDR_ATOMIC */ +#    define BOOST_NO_CXX11_HDR_ATOMIC +#  endif + +/* temporarily disable this until we can link against fegetround fesetround feholdexcept */ + +#define BOOST_NO_FENV_H + +/* Reported this bug to Embarcadero with the latest C++ Builder Rio release */ + +#define BOOST_NO_CXX11_HDR_EXCEPTION + +// +// check for exception handling support: +// +#if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS) +#  define BOOST_NO_EXCEPTIONS +#endif + +/* + +// On non-Win32 platforms let the platform config figure this out: +#ifdef _WIN32 +#  define BOOST_HAS_STDINT_H +#endif + +// +// __int64: +// +#if !defined(__STRICT_ANSI__) +#  define BOOST_HAS_MS_INT64 +#endif +// +// all versions have a <dirent.h>: +// +#if !defined(__STRICT_ANSI__) +#  define BOOST_HAS_DIRENT_H +#endif +// +// Disable Win32 support in ANSI mode: +// +#  pragma defineonoption BOOST_DISABLE_WIN32 -A +// +// MSVC compatibility mode does some nasty things: +// TODO: look up if this doesn't apply to the whole 12xx range +// +#if defined(_MSC_VER) && (_MSC_VER <= 1200) +#  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP +#  define BOOST_NO_VOID_RETURNS +#endif +// + +*/ + +// Specific settings for Embarcadero drivers +#  define BOOST_EMBTC          __CODEGEARC__ +#  define BOOST_EMBTC_FULL_VER ((__clang_major__      << 16) | \ +                                (__clang_minor__      <<  8) | \ +                                 __clang_patchlevel__         ) + +// Detecting which Embarcadero driver is being used +#if defined(BOOST_EMBTC) +#  if defined(_WIN64) +#    define BOOST_EMBTC_WIN64 1 +#    define BOOST_EMBTC_WINDOWS 1 +#    ifndef BOOST_USE_WINDOWS_H +#      define BOOST_USE_WINDOWS_H +#    endif +#  elif defined(_WIN32) +#    define BOOST_EMBTC_WIN32C 1 +#    define BOOST_EMBTC_WINDOWS 1 +#    ifndef BOOST_USE_WINDOWS_H +#      define BOOST_USE_WINDOWS_H +#    endif +#  elif defined(__APPLE__) && defined(__arm__) +#    define BOOST_EMBTC_IOSARM 1 +#    define BOOST_EMBTC_IOS 1 +#  elif defined(__APPLE__) && defined(__aarch64__) +#    define BOOST_EMBTC_IOSARM64 1 +#    define BOOST_EMBTC_IOS 1 +#  elif defined(__ANDROID__) && defined(__arm__) +#    define BOOST_EMBTC_AARM 1 +#    define BOOST_EMBTC_ANDROID 1 +#  elif +#    if defined(BOOST_ASSERT_CONFIG) +#       error "Unknown Embarcadero driver" +#    else +#       warning "Unknown Embarcadero driver" +#    endif /* defined(BOOST_ASSERT_CONFIG) */ +#  endif +#endif /* defined(BOOST_EMBTC) */ + +#if defined(BOOST_EMBTC_WINDOWS) + +#if !defined(_chdir) +#define _chdir(x) chdir(x) +#endif + +#if !defined(_dup2) +#define _dup2(x,y) dup2(x,y) +#endif + +#endif + +#  undef BOOST_COMPILER +#  define BOOST_COMPILER "Embarcadero-Clang C++ version " BOOST_STRINGIZE(__CODEGEARC__) " clang: " __clang_version__ +// #  define __CODEGEARC_CLANG__ __CODEGEARC__ +// #  define __EMBARCADERO_CLANG__ __CODEGEARC__ +// #  define __BORLANDC_CLANG__ __BORLANDC__ + +#else // #if !defined(__clang__) + +# define BOOST_CODEGEARC  __CODEGEARC__ +# define BOOST_BORLANDC   __BORLANDC__ +  #if !defined( BOOST_WITH_CODEGEAR_WARNINGS )  // these warnings occur frequently in optimized template code  # pragma warn -8004 // var assigned value, but never used @@ -17,16 +166,6 @@  # pragma warn -8104 // static members with ctors not threadsafe  # pragma warn -8105 // reference member in class without ctors  #endif -// -// versions check: -// last known and checked version is 0x621 -#if (__CODEGEARC__ > 0x621) -#  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" -#  else -#     pragma message( "Unknown compiler version - please run the configure tests and report the results") -#  endif -#endif  // CodeGear C++ Builder 2009  #if (__CODEGEARC__ <= 0x613) @@ -78,6 +217,8 @@  #  define BOOST_HAS_PRAGMA_ONCE  #endif +#define BOOST_NO_FENV_H +  //  // C++0x macros:  // @@ -123,7 +264,10 @@  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE  #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -167,6 +311,10 @@  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif +  //  // TR1 macros:  // @@ -233,3 +381,4 @@  #define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__) +#endif // #if !defined(__clang__) diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/comeau.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/comeau.hpp index 09841604f90..ca80fac37a2 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/comeau.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/comeau.hpp @@ -50,7 +50,7 @@  // last known and checked version is 4245:  #if (__COMO_VERSION__ > 4245)  #  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/common_edg.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/common_edg.hpp index d49ceb68e2b..7887b30a291 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/common_edg.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/common_edg.hpp @@ -77,37 +77,59 @@  #define BOOST_NO_CXX11_AUTO_DECLARATIONS  #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_NO_CXX11_CHAR16_T -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_DECLTYPE_N3276  #define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS  #define BOOST_NO_CXX11_DELETED_FUNCTIONS  #define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS  #define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_LAMBDAS  #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS  #define BOOST_NO_CXX11_NOEXCEPT  #define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS  #define BOOST_NO_CXX11_RVALUE_REFERENCES  #define BOOST_NO_CXX11_SCOPED_ENUMS  #define BOOST_NO_SFINAE_EXPR  #define BOOST_NO_CXX11_SFINAE_EXPR  #define BOOST_NO_CXX11_STATIC_ASSERT  #define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES  #define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS  #define BOOST_NO_CXX11_ALIGNAS  #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE  #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION + +//__cpp_decltype 200707 possibly? +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 + +#if !defined(__cpp_unicode_characters) || (__cpp_unicode_characters < 200704) +#   define BOOST_NO_CXX11_CHAR16_T +#   define BOOST_NO_CXX11_CHAR32_T +#endif +#if !defined(__cpp_unicode_literals) || (__cpp_unicode_literals < 200710) +#   define BOOST_NO_CXX11_UNICODE_LITERALS +#endif +#if !defined(__cpp_user_defined_literals) || (__cpp_user_defined_literals < 200809) +#   define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#endif +#if !defined(__cpp_variadic_templates) || (__cpp_variadic_templates < 200704) +#   define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#endif +#if !defined(__cpp_constexpr) || (__cpp_constexpr < 200907) +#   define BOOST_NO_CXX11_CONSTEXPR +#endif +#if !defined(__cpp_lambdas) || (__cpp_lambdas < 200907) +#   define BOOST_NO_CXX11_LAMBDAS +#endif +#if !defined(__cpp_range_based_for) || (__cpp_range_based_for < 200710) +#   define BOOST_NO_CXX11_RANGE_BASED_FOR +#endif +#if !defined(__cpp_raw_strings) || (__cpp_raw_strings < 200610) +#   define BOOST_NO_CXX11_RAW_LITERALS +#endif +  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -149,6 +171,10 @@  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif +  #ifdef c_plusplus  // EDG has "long long" in non-strict mode  // However, some libraries have insufficient "long long" support diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/cray.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/cray.hpp index 5f810781701..2f1e9e8e184 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/cray.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/cray.hpp @@ -1,68 +1,229 @@ -//  (C) Copyright John Maddock 2011. -//  (C) Copyright Cray, Inc. 2013 +//  Copyright 2011 John Maddock +//  Copyright 2013, 2017-2018 Cray, Inc.  //  Use, modification and distribution are subject to the  //  Boost Software License, Version 1.0. (See accompanying file  //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)  //  See http://www.boost.org for most recent version. -//  Greenhills C compiler setup: +// Cray C++ compiler setup. +// +// There are a few parameters that affect the macros defined in this file: +// +// - What version of CCE (Cray Compiling Environment) are we running? This +//   comes from the '_RELEASE_MAJOR', '_RELEASE_MINOR', and +//   '_RELEASE_PATCHLEVEL' macros. +// - What C++ standards conformance level are we using (e.g. '-h +//   std=c++14')? This comes from the '__cplusplus' macro. +// - Are we using GCC extensions ('-h gnu' or '-h nognu')? If we have '-h +//   gnu' then CCE emulates GCC, and the macros '__GNUC__', +//   '__GNUC_MINOR__', and '__GNUC_PATCHLEVEL__' are defined. +// +// This file is organized as follows: +// +// - Verify that the combination of parameters listed above is supported. +//   If we have an unsupported combination, we abort with '#error'. +// - Establish baseline values for all Boost macros. +// - Apply changes to the baseline macros based on compiler version. These +//   changes are cummulative so each version section only describes the +//   changes since the previous version. +//   - Within each version section, we may also apply changes based on +//     other parameters (i.e. C++ standards conformance level and GCC +//     extensions). +// +// To test changes to this file: +// +// ``` +// module load cce/8.6.5 # Pick the version you want to test. +// cd boost/libs/config/test/all +// b2 -j 8 toolset=cray cxxstd=03 cxxstd=11 cxxstd=14 cxxstd-dialect=gnu linkflags=-lrt +// ``` +// Note: Using 'cxxstd-dialect=iso' is not supported at this time (the +// tests run, but many tests fail). +// +// Note: 'linkflags=-lrt' is needed in Cray Linux Environment. Otherwise +// you get an 'undefined reference to clock_gettime' error. +// +// Note: If a test '*_fail.cpp' file compiles, but fails to run, then it is +// reported as a defect. However, this is not actually a defect. This is an +// area where the test system is somewhat broken. Tests that are failing +// because of this problem are noted in the comments. +// +// Pay attention to the macro definitions for the macros you wish to +// modify. For example, only macros categorized as compiler macros should +// appear in this file; platform macros should not appear in this file. +// Also, some macros have to be defined to specific values; it is not +// always enough to define or undefine a macro. +// +// Macro definitions are available in the source code at: +// +// `boost/libs/config/doc/html/boost_config/boost_macro_reference.html` +// +// Macro definitions are also available online at: +// +// http://www.boost.org/doc/libs/master/libs/config/doc/html/boost_config/boost_macro_reference.html +// +// Typically, if you enable a feature, and the tests pass, then you have +// nothing to worry about. However, it's sometimes hard to figure out if a +// disabled feature needs to stay disabled. To get a list of disabled +// features, run 'b2' in 'boost/libs/config/checks'. These are the macros +// you should pay attention to (in addition to macros that cause test +// failures). -#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE) +//// +//// Front matter +//// -#if _RELEASE_MAJOR < 8 -#  error "Boost is not configured for Cray compilers prior to version 8, please try the configure script." +// In a developer build of the Cray compiler (i.e. a compiler built by a +// Cray employee), the release patch level is reported as "x". This gives +// versions that look like e.g. "8.6.x". +// +// To accomplish this, the the Cray compiler preprocessor inserts: +// +// #define _RELEASE_PATCHLEVEL x +// +// If we are using a developer build of the compiler, we want to use the +// configuration macros for the most recent patch level of the release. To +// accomplish this, we'll pretend that _RELEASE_PATCHLEVEL is 99. +// +// However, it's difficult to detect if _RELEASE_PATCHLEVEL is x. We must +// consider that the x will be expanded if x is defined as a macro +// elsewhere. For example, imagine if someone put "-D x=3" on the command +// line, and _RELEASE_PATCHLEVEL is x. Then _RELEASE_PATCHLEVEL would +// expand to 3, and we could not distinguish it from an actual +// _RELEASE_PATCHLEVEL of 3. This problem only affects developer builds; in +// production builds, _RELEASE_PATCHLEVEL is always an integer. +// +// IMPORTANT: In developer builds, if x is defined as a macro, you will get +// an incorrect configuration. The behavior in this case is undefined. +// +// Even if x is not defined, we have to use some trickery to detect if +// _RELEASE_PATCHLEVEL is x. First we define BOOST_CRAY_x to some arbitrary +// magic value, 9867657. Then we use BOOST_CRAY_APPEND to append the +// expanded value of _RELEASE_PATCHLEVEL to the string "BOOST_CRAY_". +// +// - If _RELEASE_PATCHLEVEL is undefined, we get "BOOST_CRAY_". +// - If _RELEASE_PATCHLEVEL is 5, we get "BOOST_CRAY_5". +// - If _RELEASE_PATCHLEVEL is x (and x is not defined) we get +//   "BOOST_CRAY_x": +// +// Then we check if BOOST_CRAY_x is equal to the output of +// BOOST_CRAY_APPEND. In other words, the output of BOOST_CRAY_APPEND is +// treated as a macro name, and expanded again. If we can safely assume +// that BOOST_CRAY_ is not a macro defined as our magic number, and +// BOOST_CRAY_5 is not a macro defined as our magic number, then the only +// way the equality test can pass is if _RELEASE_PATCHLEVEL expands to x. +// +// So, that is how we detect if we are using a developer build of the Cray +// compiler. + +#define BOOST_CRAY_x 9867657 // Arbitrary number +#define BOOST_CRAY_APPEND(MACRO) BOOST_CRAY_APPEND_INTERNAL(MACRO) +#define BOOST_CRAY_APPEND_INTERNAL(MACRO) BOOST_CRAY_##MACRO + +#if BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL) + +    // This is a developer build. +    // +    // - _RELEASE_PATCHLEVEL is defined as x, and x is not defined as a macro. + +    // Pretend _RELEASE_PATCHLEVEL is 99, so we get the configuration for the +    // most recent patch level in this release. + +    #define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + 99) + +#else + +    // This is a production build. +    // +    // _RELEASE_PATCHLEVEL is not defined as x, or x is defined as a macro. + +    #define BOOST_CRAY_VERSION (_RELEASE_MAJOR * 10000 + _RELEASE_MINOR * 100 + _RELEASE_PATCHLEVEL) + +#endif // BOOST_CRAY_x == BOOST_CRAY_APPEND(_RELEASE_PATCHLEVEL) + +#undef BOOST_CRAY_APPEND_INTERNAL +#undef BOOST_CRAY_APPEND +#undef BOOST_CRAY_x + + +#ifdef __GNUC__ +#   define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)  #endif +#ifndef BOOST_COMPILER +#   define BOOST_COMPILER "Cray C++ version " BOOST_STRINGIZE(_RELEASE_MAJOR) "." BOOST_STRINGIZE(_RELEASE_MINOR) "." BOOST_STRINGIZE(_RELEASE_PATCHLEVEL) +#endif + +// Since the Cray compiler defines '__GNUC__', we have to emulate some +// additional GCC macros in order to make everything work.  // -// Check this is a recent EDG based compiler, otherwise we don't support it here: -// -#ifndef __EDG_VERSION__ +// FIXME: Perhaps Cray should fix the compiler to define these additional +// macros for GCC emulation? + +#if __cplusplus >= 201103L && defined(__GNUC__) && !defined(__GXX_EXPERIMENTAL_CXX0X__) +#   define __GXX_EXPERIMENTAL_CXX0X__ 1 +#endif + +//// +//// Parameter validation +//// + +// FIXME: Do we really need to support compilers before 8.5? Do they pass +// the Boost.Config tests? + +#if BOOST_CRAY_VERSION < 80000 +#  error "Boost is not configured for Cray compilers prior to version 8, please try the configure script." +#endif + +// We only support recent EDG based compilers. + +#ifndef __EDG__  #  error "Unsupported Cray compiler, please try running the configure script."  #endif -#if _RELEASE_MINOR < 5 || __cplusplus < 201100 +//// +//// Baseline values +//// +  #include <boost/config/compiler/common_edg.hpp> -// -// -#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_HAS_NRVO +#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION  #define BOOST_NO_CXX11_AUTO_DECLARATIONS  #define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS -#define BOOST_HAS_NRVO -#define BOOST_NO_CXX11_VARIADIC_MACROS -#define BOOST_NO_CXX11_VARIADIC_TEMPLATES -#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX -#define BOOST_NO_CXX11_UNICODE_LITERALS -#define BOOST_NO_TWO_PHASE_NAME_LOOKUP -#define BOOST_HAS_NRVO -#define BOOST_NO_CXX11_TEMPLATE_ALIASES -#define BOOST_NO_CXX11_STATIC_ASSERT -#define BOOST_NO_SFINAE_EXPR -#define BOOST_NO_CXX11_SFINAE_EXPR -#define BOOST_NO_CXX11_SCOPED_ENUMS -#define BOOST_NO_CXX11_RVALUE_REFERENCES -#define BOOST_NO_CXX11_RANGE_BASED_FOR -#define BOOST_NO_CXX11_RAW_LITERALS -#define BOOST_NO_CXX11_NULLPTR -#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_CHAR32_T +#define BOOST_NO_CXX11_CONSTEXPR +#define BOOST_NO_CXX11_DECLTYPE +#define BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#define BOOST_NO_CXX11_DELETED_FUNCTIONS +#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE +#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS  #define BOOST_NO_CXX11_LAMBDAS  #define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS -#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS -#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS -#define BOOST_NO_CXX11_DELETED_FUNCTIONS -#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS -#define BOOST_NO_CXX11_DECLTYPE_N3276 -#define BOOST_NO_CXX11_DECLTYPE -#define BOOST_NO_CXX11_CONSTEXPR -#define BOOST_NO_CXX11_USER_DEFINED_LITERALS -#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION -#define BOOST_NO_CXX11_CHAR32_T -#define BOOST_NO_CXX11_CHAR16_T +#define BOOST_NO_CXX11_NOEXCEPT +#define BOOST_NO_CXX11_NULLPTR +#define BOOST_NO_CXX11_RANGE_BASED_FOR +#define BOOST_NO_CXX11_RAW_LITERALS  #define BOOST_NO_CXX11_REF_QUALIFIERS -#define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_RVALUE_REFERENCES +#define BOOST_NO_CXX11_SCOPED_ENUMS +#define BOOST_NO_CXX11_SFINAE_EXPR +#define BOOST_NO_CXX11_STATIC_ASSERT +#define BOOST_NO_CXX11_TEMPLATE_ALIASES  #define BOOST_NO_CXX11_THREAD_LOCAL - +#define BOOST_NO_CXX11_UNICODE_LITERALS +#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#define BOOST_NO_CXX11_USER_DEFINED_LITERALS +#define BOOST_NO_CXX11_VARIADIC_MACROS +#define BOOST_NO_CXX11_VARIADIC_TEMPLATES +#define BOOST_NO_CXX11_UNRESTRICTED_UNION +#define BOOST_NO_SFINAE_EXPR +#define BOOST_NO_TWO_PHASE_NAME_LOOKUP  //#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG  #define BOOST_MATH_DISABLE_STD_FPCLASSIFY @@ -71,15 +232,15 @@  #define BOOST_SP_USE_PTHREADS   #define BOOST_AC_USE_PTHREADS  -/* everything that follows is working around what are thought to be - * compiler shortcomings.  Revist all of these regularly. - */ +// +// Everything that follows is working around what are thought to be +// compiler shortcomings. Revist all of these regularly. +//  //#define BOOST_USE_ENUM_STATIC_ASSERT  //#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS //(this may be implied by the previous #define -// These constants should be provided by the  -// compiler, at least when -hgnu is asserted on the command line. +// These constants should be provided by the compiler.  #ifndef __ATOMIC_RELAXED  #define __ATOMIC_RELAXED 0 @@ -90,7 +251,57 @@  #define __ATOMIC_SEQ_CST 5  #endif -#else  /* _RELEASE_MINOR */ +//// +//// Version changes +//// + +// +// 8.5.0 +// + +#if BOOST_CRAY_VERSION >= 80500 + +#if __cplusplus >= 201103L + +#undef BOOST_HAS_NRVO +#undef BOOST_NO_COMPLETE_VALUE_INITIALIZATION +#undef BOOST_NO_CXX11_AUTO_DECLARATIONS +#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS +#undef BOOST_NO_CXX11_CHAR16_T +#undef BOOST_NO_CXX11_CHAR32_T +#undef BOOST_NO_CXX11_CONSTEXPR +#undef BOOST_NO_CXX11_DECLTYPE +#undef BOOST_NO_CXX11_DECLTYPE_N3276 +#undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS +#undef BOOST_NO_CXX11_DELETED_FUNCTIONS +#undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS +#undef BOOST_NO_CXX11_FINAL +#undef BOOST_NO_CXX11_OVERRIDE +#undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#undef BOOST_NO_CXX11_LAMBDAS +#undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS +#undef BOOST_NO_CXX11_NOEXCEPT +#undef BOOST_NO_CXX11_NULLPTR +#undef BOOST_NO_CXX11_RANGE_BASED_FOR +#undef BOOST_NO_CXX11_RAW_LITERALS +#undef BOOST_NO_CXX11_REF_QUALIFIERS +#undef BOOST_NO_CXX11_RVALUE_REFERENCES +#undef BOOST_NO_CXX11_SCOPED_ENUMS +#undef BOOST_NO_CXX11_SFINAE_EXPR +#undef BOOST_NO_CXX11_STATIC_ASSERT +#undef BOOST_NO_CXX11_TEMPLATE_ALIASES +#undef BOOST_NO_CXX11_THREAD_LOCAL +#undef BOOST_NO_CXX11_UNICODE_LITERALS +#undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#undef BOOST_NO_CXX11_USER_DEFINED_LITERALS +#undef BOOST_NO_CXX11_VARIADIC_MACROS +#undef BOOST_NO_CXX11_VARIADIC_TEMPLATES +#undef BOOST_NO_CXX11_UNRESTRICTED_UNION +#undef BOOST_NO_SFINAE_EXPR +#undef BOOST_NO_TWO_PHASE_NAME_LOOKUP +#undef BOOST_MATH_DISABLE_STD_FPCLASSIFY +#undef BOOST_SP_USE_PTHREADS  +#undef BOOST_AC_USE_PTHREADS   #define BOOST_HAS_VARIADIC_TMPL  #define BOOST_HAS_UNISTD_H @@ -114,11 +325,121 @@  #define BOOST_HAS_LONG_LONG  #define BOOST_HAS_FLOAT128 -#if __cplusplus < 201400 +#if __cplusplus < 201402L  #define BOOST_NO_CXX11_DECLTYPE_N3276 -#endif /* __cpluspus */ +#endif // __cplusplus < 201402L + +#endif // __cplusplus >= 201103L + +#endif // BOOST_CRAY_VERSION >= 80500 + +// +// 8.6.4 +// (versions prior to 8.6.5 do not define _RELEASE_PATCHLEVEL) +// + +#if BOOST_CRAY_VERSION >= 80600 + +#if __cplusplus >= 199711L +#define BOOST_HAS_FLOAT128 +#define BOOST_HAS_PTHREAD_YIELD // This is a platform macro, but it improves test results. +#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION // This is correct. Test compiles, but fails to run. +#undef  BOOST_NO_CXX11_CHAR16_T +#undef  BOOST_NO_CXX11_CHAR32_T +#undef  BOOST_NO_CXX11_INLINE_NAMESPACES +#undef  BOOST_NO_CXX11_FINAL +#undef BOOST_NO_CXX11_OVERRIDE +#undef  BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS +#undef  BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS +#define BOOST_NO_CXX11_SFINAE_EXPR // This is correct, even though '*_fail.cpp' test fails. +#undef  BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX +#undef  BOOST_NO_CXX11_VARIADIC_MACROS +#undef  BOOST_NO_CXX11_VARIADIC_TEMPLATES +// 'BOOST_NO_DEDUCED_TYPENAME' test is broken. The test files are enabled / +// disabled with an '#ifdef BOOST_DEDUCED_TYPENAME'. However, +// 'boost/libs/config/include/boost/config/detail/suffix.hpp' ensures that +// 'BOOST_DEDUCED_TYPENAME' is always defined (the value it is defined as +// depends on 'BOOST_NO_DEDUCED_TYPENAME'). So, modifying +// 'BOOST_NO_DEDUCED_TYPENAME' has no effect on which tests are run. +// +// The 'no_ded_typename_pass.cpp' test should always compile and run +// successfully, because 'BOOST_DEDUCED_TYPENAME' must always have an +// appropriate value (it's not just something that you turn on or off). +// Therefore, if you wish to test changes to 'BOOST_NO_DEDUCED_TYPENAME', +// you have to modify 'no_ded_typename_pass.cpp' to unconditionally include +// 'boost_no_ded_typename.ipp'. +#undef  BOOST_NO_DEDUCED_TYPENAME // This is correct. Test is broken. +#undef  BOOST_NO_SFINAE_EXPR +#undef  BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif // __cplusplus >= 199711L + +#if __cplusplus >= 201103L +#undef  BOOST_NO_CXX11_ALIGNAS +#undef  BOOST_NO_CXX11_DECLTYPE_N3276 +#define BOOST_NO_CXX11_HDR_ATOMIC +#undef  BOOST_NO_CXX11_HDR_FUNCTIONAL +#define BOOST_NO_CXX11_HDR_REGEX // This is correct. Test compiles, but fails to run. +#undef  BOOST_NO_CXX11_SFINAE_EXPR +#undef  BOOST_NO_CXX11_SMART_PTR +#undef  BOOST_NO_CXX11_TRAILING_RESULT_TYPES +#endif // __cplusplus >= 201103L + +#if __cplusplus >= 201402L +#undef  BOOST_NO_CXX14_CONSTEXPR +#define BOOST_NO_CXX14_DIGIT_SEPARATORS +#endif // __cplusplus == 201402L + +#endif // BOOST_CRAY_VERSION >= 80600 + +// +// 8.6.5 +// (no change from 8.6.4) +// + +// +// 8.7.0 +// + +#if BOOST_CRAY_VERSION >= 80700 + +#if __cplusplus >= 199711L +#endif // __cplusplus >= 199711L + +#if __cplusplus >= 201103L +#undef  BOOST_NO_CXX11_HDR_ATOMIC +#undef  BOOST_NO_CXX11_HDR_REGEX +#endif // __cplusplus >= 201103L + +#if __cplusplus >= 201402L +#endif // __cplusplus == 201402L + +#endif // BOOST_CRAY_VERSION >= 80700 + +// +// Next release +// + +#if BOOST_CRAY_VERSION > 80799 + +#if __cplusplus >= 199711L +#endif // __cplusplus >= 199711L + +#if __cplusplus >= 201103L +#endif // __cplusplus >= 201103L + +#if __cplusplus >= 201402L +#endif // __cplusplus == 201402L -#endif /* _RELEASE_MINOR */ +#endif // BOOST_CRAY_VERSION > 80799 +//// +//// Remove temporary macros +//// +// I've commented out some '#undef' statements to signify that we purposely +// want to keep certain macros. +//#undef __GXX_EXPERIMENTAL_CXX0X__ +//#undef BOOST_COMPILER +#undef BOOST_GCC_VERSION +#undef BOOST_CRAY_VERSION diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/digitalmars.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/digitalmars.hpp index e4c5afddd2d..7641ee8a6d7 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/digitalmars.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/digitalmars.hpp @@ -83,7 +83,9 @@  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE  #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -124,6 +126,9 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif  #if (__DMC__ <= 0x840)  #error "Compiler not supported or configured - please reconfigure" @@ -132,6 +137,6 @@  // last known and checked version is ...:  #if (__DMC__ > 0x848)  #  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/gcc.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/gcc.hpp index 42e59e08c10..d4cf0e9c884 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/gcc.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/gcc.hpp @@ -107,16 +107,10 @@  #    define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))  #    define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))  #  else -#    ifndef BOOST_SYMBOL_EXPORT -#      define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) -#    endif -#    ifndef BOOST_SYMBOL_IMPORT -#      define BOOST_SYMBOL_IMPORT -#    endif -#  endif -#  ifndef BOOST_SYMBOL_VISIBLE -#    define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default"))) +#    define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default"))) +#    define BOOST_SYMBOL_IMPORT  #  endif +#  define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))  #else  // config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined  #  define BOOST_SYMBOL_EXPORT @@ -238,7 +232,6 @@  // C++0x features in 4.6.n and later  //  #if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11) -#define BOOST_NO_CXX11_CONSTEXPR  #define BOOST_NO_CXX11_DEFAULTED_MOVES  #define BOOST_NO_CXX11_NOEXCEPT  #define BOOST_NO_CXX11_NULLPTR @@ -249,16 +242,19 @@  // C++0x features in 4.7.n and later  //  #if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11) +// Note that while constexpr is partly supported in gcc-4.6 it's a  +// pre-std version with several bugs: +#  define BOOST_NO_CXX11_CONSTEXPR  #  define BOOST_NO_CXX11_FINAL  #  define BOOST_NO_CXX11_TEMPLATE_ALIASES  #  define BOOST_NO_CXX11_USER_DEFINED_LITERALS  #  define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS +#  define BOOST_NO_CXX11_OVERRIDE  #endif  // C++0x features in 4.8.n and later  //  #if (BOOST_GCC_VERSION < 40800) || !defined(BOOST_GCC_CXX11) -#  define BOOST_NO_CXX11_ALIGNAS  #  define BOOST_NO_CXX11_THREAD_LOCAL  #  define BOOST_NO_CXX11_SFINAE_EXPR  #endif @@ -271,6 +267,20 @@  #  define BOOST_NO_CXX14_BINARY_LITERALS  #endif +// C++0x features in 4.9.n and later +// +#if (BOOST_GCC_VERSION < 40900) || !defined(BOOST_GCC_CXX11) +// Although alignas support is added in gcc 4.8, it does not accept +// dependent constant expressions as an argument until gcc 4.9. +#  define BOOST_NO_CXX11_ALIGNAS +#endif + +// C++0x features in 5.1 and later +// +#if (BOOST_GCC_VERSION < 50100) || !defined(BOOST_GCC_CXX11) +#  define BOOST_NO_CXX11_UNRESTRICTED_UNION +#endif +  // C++14 features in 4.9.0 and later  //  #if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300) @@ -305,14 +315,18 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif  #if __GNUC__ >= 7  #  define BOOST_FALLTHROUGH __attribute__((fallthrough))  #endif -#ifdef __MINGW32__ -// Currently (June 2017) thread_local is broken on mingw for all current compiler releases, see +#if (__GNUC__ < 11) && defined(__MINGW32__) && !defined(__MINGW64__) +// thread_local was broken on mingw for all 32bit compiler releases prior to 11.x, see  // https://sourceforge.net/p/mingw-w64/bugs/527/ +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83562  // Not setting this causes program termination on thread exit.  #define BOOST_NO_CXX11_THREAD_LOCAL  #endif @@ -328,7 +342,7 @@  //  // __builtin_unreachable: -#if BOOST_GCC_VERSION >= 40800 +#if BOOST_GCC_VERSION >= 40500  #define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();  #endif @@ -349,14 +363,14 @@  #  error "Compiler not configured - please reconfigure"  #endif  // -// last known and checked version is 7.1: -#if (BOOST_GCC_VERSION > 70100) +// last known and checked version is 8.1: +#if (BOOST_GCC_VERSION > 80100)  #  if defined(BOOST_ASSERT_CONFIG)  #     error "Boost.Config is older than your compiler - please check for an updated Boost release."  #  else  // we don't emit warnings here anymore since there are no defect macros defined for  // gcc post 3.4, so any failures are gcc regressions... -//#     warning "Unknown compiler version - please run the configure tests and report the results" +//#     warning "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/gcc_xml.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/gcc_xml.hpp index 2b47585ab86..fd6896a8119 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/gcc_xml.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/gcc_xml.hpp @@ -61,7 +61,9 @@  #  define BOOST_NO_CXX11_INLINE_NAMESPACES  #  define BOOST_NO_CXX11_REF_QUALIFIERS  #  define BOOST_NO_CXX11_FINAL +#  define BOOST_NO_CXX11_OVERRIDE  #  define BOOST_NO_CXX11_THREAD_LOCAL +#  define BOOST_NO_CXX11_UNRESTRICTED_UNION  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -102,6 +104,9 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif  #define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__ diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/greenhills.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/greenhills.hpp index a76a07cf4a6..39112c2c1cf 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/greenhills.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/greenhills.hpp @@ -21,7 +21,7 @@  // last known and checked version is 0:  #if (__ghs > 0)  #  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/hp_acc.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/hp_acc.hpp index 9df18eaf672..cf5667b5200 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/hp_acc.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/hp_acc.hpp @@ -125,6 +125,7 @@  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  /*    See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and @@ -142,6 +143,6 @@  // last known and checked version for PA-RISC is 38000  #if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))  #  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/intel.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/intel.hpp index 0eea05b9166..9a06d2fe3d1 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/intel.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/intel.hpp @@ -46,12 +46,17 @@  #undef BOOST_GCC_VERSION  #undef BOOST_GCC_CXX11  #undef BOOST_GCC +#undef BOOST_FALLTHROUGH  // Broken in all versions up to 17 (newer versions not tested)  #if (__INTEL_COMPILER <= 1700) && !defined(BOOST_NO_CXX14_CONSTEXPR)  #  define BOOST_NO_CXX14_CONSTEXPR  #endif +#if (__INTEL_COMPILER >= 1800) && (__cplusplus >= 201703) +#  define BOOST_FALLTHROUGH [[fallthrough]] +#endif +  #endif // defined(_MSC_VER)  #undef BOOST_COMPILER @@ -496,8 +501,15 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};  #endif  // BOOST_NO_CXX11_FINAL +// BOOST_NO_CXX11_OVERRIDE  #if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))  #  undef BOOST_NO_CXX11_FINAL +#  undef BOOST_NO_CXX11_OVERRIDE +#endif + +// BOOST_NO_CXX11_UNRESTRICTED_UNION +#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 50100)) && (!defined(_MSC_VER)) +#  undef BOOST_NO_CXX11_UNRESTRICTED_UNION  #endif  #endif // defined(BOOST_INTEL_STDCXX0X) @@ -558,7 +570,7 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};  //      We don't emit this warning any more, since we have so few  //      defect macros set anyway (just the one).  // -//#     pragma message("Unknown compiler version - please run the configure tests and report the results") +//#     pragma message("boost: Unknown compiler version - please run the configure tests and report the results")  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/kai.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/kai.hpp index 960d501c860..0b22ec1d6c5 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/kai.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/kai.hpp @@ -25,7 +25,7 @@  // last known and checked version is 4001:  #if (__KCC_VERSION > 4001)  #  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/metrowerks.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/metrowerks.hpp index 99ff0f5eeaf..32c1ca9a2ab 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/metrowerks.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/metrowerks.hpp @@ -126,7 +126,9 @@  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE  #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -167,6 +169,9 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif  #define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION) @@ -180,7 +185,7 @@  // last known and checked version:  #if (__MWERKS__ > 0x3205)  #  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/mpw.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/mpw.hpp index d9544345ac0..750d5884156 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/mpw.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/mpw.hpp @@ -75,7 +75,9 @@  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE  #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -116,6 +118,9 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif  //  // versions check: @@ -127,7 +132,7 @@  // last known and checked version is 0x890:  #if (MPW_CPLUS > 0x890)  #  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/nvcc.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/nvcc.hpp index f21b9b54fe0..419dd724ac1 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/nvcc.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/nvcc.hpp @@ -12,7 +12,7 @@  #endif  #if defined(__CUDACC_VER_MAJOR__) && defined(__CUDACC_VER_MINOR__) && defined(__CUDACC_VER_BUILD__) -#  define BOOST_CUDA_VERSION __CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__ +#  define BOOST_CUDA_VERSION (__CUDACC_VER_MAJOR__ * 1000000 + __CUDACC_VER_MINOR__ * 10000 + __CUDACC_VER_BUILD__)  #else  // We don't really know what the CUDA version is, but it's definitely before 7.5:  #  define BOOST_CUDA_VERSION 7000000 @@ -22,6 +22,7 @@  // BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device  #define BOOST_GPU_ENABLED __host__ __device__ +#if !defined(__clang__) || defined(__NVCC__)  // A bug in version 7.0 of CUDA prevents use of variadic templates in some occasions  // https://svn.boost.org/trac/boost/ticket/11897  // This is fixed in 7.5. As the following version macro was introduced in 7.5 an existance @@ -33,11 +34,13 @@  #if (BOOST_CUDA_VERSION > 8000000) && (BOOST_CUDA_VERSION < 8010000)  #   define BOOST_NO_CXX11_VARIADIC_TEMPLATES  #endif -// Most recent CUDA (8.0) has no constexpr support in msvc mode: -#if defined(_MSC_VER) +// CUDA (8.0) has no constexpr support in msvc mode: +#if defined(_MSC_VER) && (BOOST_CUDA_VERSION < 9000000)  #  define BOOST_NO_CXX11_CONSTEXPR  #endif +#endif +  #ifdef __CUDACC__  //  // When compiing .cu files, there's a bunch of stuff that doesn't work with msvc: diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/pathscale.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/pathscale.hpp index 94b3f91d07c..683b0d31ba7 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/pathscale.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/pathscale.hpp @@ -88,7 +88,9 @@  #  define BOOST_NO_CXX11_INLINE_NAMESPACES  #  define BOOST_NO_CXX11_REF_QUALIFIERS  #  define BOOST_NO_CXX11_FINAL +#  define BOOST_NO_CXX11_OVERRIDE  #  define BOOST_NO_CXX11_THREAD_LOCAL +#  define BOOST_NO_CXX11_UNRESTRICTED_UNION  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -129,4 +131,7 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/sunpro_cc.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/sunpro_cc.hpp index 54ad77a3c68..c674e8ab58c 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/sunpro_cc.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/sunpro_cc.hpp @@ -123,6 +123,8 @@  #define BOOST_NO_CXX11_TRAILING_RESULT_TYPES  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  #endif  #if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103) @@ -182,6 +184,9 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif  // Turn on threading support for Solaris 12.  // Ticket #11972 diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/vacpp.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/vacpp.hpp index c8400a34d3b..0280fe2958d 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/vacpp.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/vacpp.hpp @@ -56,7 +56,7 @@  // last known and checked version is 1210:  #if (__IBMCPP__ > 1210)  #  if defined(BOOST_ASSERT_CONFIG) -#     error "Unknown compiler version - please run the configure tests and report the results" +#     error "boost: Unknown compiler version - please run the configure tests and report the results"  #  endif  #endif @@ -137,7 +137,9 @@  #define BOOST_NO_CXX11_INLINE_NAMESPACES  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE  #define BOOST_NO_CXX11_THREAD_LOCAL +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  // C++ 14:  #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304) @@ -178,3 +180,6 @@  #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)  #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/visualc.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/visualc.hpp index c533c50dfc7..4859c7c8129 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/visualc.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/visualc.hpp @@ -43,6 +43,9 @@  #  error "Compiler not supported or configured - please reconfigure"  #endif +// VS2005 (VC8) docs: __assume has been in Visual C++ for multiple releases +#define BOOST_UNREACHABLE_RETURN(x) __assume(0); +  #if _MSC_FULL_VER < 180020827  #  define BOOST_NO_FENV_H  #endif @@ -108,8 +111,8 @@  // TR1 features:  //  #if (_MSC_VER >= 1700) && defined(_HAS_CXX17) && (_HAS_CXX17 > 0) -// # define BOOST_HAS_TR1_HASH			// don't know if this is true yet. -// # define BOOST_HAS_TR1_TYPE_TRAITS	// don't know if this is true yet. +// # define BOOST_HAS_TR1_HASH          // don't know if this is true yet. +// # define BOOST_HAS_TR1_TYPE_TRAITS   // don't know if this is true yet.  # define BOOST_HAS_TR1_UNORDERED_MAP  # define BOOST_HAS_TR1_UNORDERED_SET  #endif @@ -141,6 +144,7 @@  #  define BOOST_NO_CXX11_FINAL  #  define BOOST_NO_CXX11_RANGE_BASED_FOR  #  define BOOST_NO_CXX11_SCOPED_ENUMS +#  define BOOST_NO_CXX11_OVERRIDE  #endif // _MSC_VER < 1700  // C++11 features supported by VC++ 12 (aka 2013). @@ -182,6 +186,7 @@  #  define BOOST_NO_CXX14_GENERIC_LAMBDAS  #  define BOOST_NO_CXX14_DIGIT_SEPARATORS  #  define BOOST_NO_CXX11_THREAD_LOCAL +#  define BOOST_NO_CXX11_UNRESTRICTED_UNION  #endif  // C++11 features supported by VC++ 14 update 3 (aka 2015)  // @@ -201,6 +206,10 @@  //  #if (_MSC_VER < 1911) || (_MSVC_LANG < 201703)  #  define BOOST_NO_CXX17_STRUCTURED_BINDINGS +#  define BOOST_NO_CXX17_IF_CONSTEXPR +// Let the defaults handle these now: +//#  define BOOST_NO_CXX17_HDR_OPTIONAL +//#  define BOOST_NO_CXX17_HDR_STRING_VIEW  #endif  // MSVC including version 14 has not yet completely @@ -227,15 +236,19 @@  // if this is in effect or not, in any case nothing in Boost is currently using this, so we'll just go  // on defining it for now:  // +#if (_MSC_FULL_VER < 193030705)  || (_MSVC_LANG < 202004)  #  define BOOST_NO_TWO_PHASE_NAME_LOOKUP +#endif  #if (_MSC_VER < 1912) || (_MSVC_LANG < 201402)  // Supported from msvc-15.5 onwards:  #define BOOST_NO_CXX11_SFINAE_EXPR  #endif +#if (_MSC_VER < 1915) || (_MSVC_LANG < 201402)  // C++ 14:  // Still gives internal compiler error for msvc-15.5:  #  define BOOST_NO_CXX14_CONSTEXPR +#endif  // C++ 17:  #if (_MSC_VER < 1912) || (_MSVC_LANG < 201703)  #define BOOST_NO_CXX17_INLINE_VARIABLES @@ -272,6 +285,17 @@  #  define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"  #endif +// +// Approximate compiler conformance version +// +#ifdef _MSVC_LANG +#  define BOOST_CXX_VERSION _MSVC_LANG +#elif defined(_HAS_CXX17) +#  define BOOST_CXX_VERSION 201703L +#elif BOOST_MSVC >= 1916 +#  define BOOST_CXX_VERSION 201402L +#endif +  #ifndef BOOST_COMPILER  // TODO:  // these things are mostly bogus. 1200 means version 12.0 of the compiler. The @@ -283,9 +307,9 @@  #   if _MSC_VER < 1400        // Note: I'm not aware of any CE compiler with version 13xx  #      if defined(BOOST_ASSERT_CONFIG) -#         error "Unknown EVC++ compiler version - please run the configure tests and report the results" +#         error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results"  #      else -#         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") +#         pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results")  #      endif  #   elif _MSC_VER < 1500  #     define BOOST_COMPILER_VERSION evc8 @@ -301,14 +325,14 @@  #     define BOOST_COMPILER_VERSION evc14  #   else  #      if defined(BOOST_ASSERT_CONFIG) -#         error "Unknown EVC++ compiler version - please run the configure tests and report the results" +#         error "boost: Unknown EVC++ compiler version - please run the configure tests and report the results"  #      else -#         pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results") +#         pragma message("boost: Unknown EVC++ compiler version - please run the configure tests and report the results")  #      endif  #   endif  # else  #   if _MSC_VER < 1200 -      // Note: Versions up to 7.0 aren't supported. +      // Note: Versions up to 10.0 aren't supported.  #     define BOOST_COMPILER_VERSION 5.0  #   elif _MSC_VER < 1300  #     define BOOST_COMPILER_VERSION 6.0 @@ -330,6 +354,8 @@  #     define BOOST_COMPILER_VERSION 14.0  #   elif _MSC_VER < 1920  #     define BOOST_COMPILER_VERSION 14.1 +#   elif _MSC_VER < 1930 +#     define BOOST_COMPILER_VERSION 14.2  #   else  #     define BOOST_COMPILER_VERSION _MSC_VER  #   endif @@ -341,8 +367,8 @@  #include <boost/config/pragma_message.hpp>  // -// last known and checked version is 19.12.25830.2 (VC++ 2017.3): -#if (_MSC_VER > 1912) +// last known and checked version is 19.20.27508 (VC++ 2019 RC3): +#if (_MSC_VER > 1920)  #  if defined(BOOST_ASSERT_CONFIG)  #     error "Boost.Config is older than your current compiler version."  #  elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE) diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/xlcpp.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/xlcpp.hpp index a4c66e402cd..6e868817146 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/xlcpp.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/xlcpp.hpp @@ -194,6 +194,11 @@  #if !__has_feature(cxx_override_control)  #  define BOOST_NO_CXX11_FINAL +#  define BOOST_NO_CXX11_OVERRIDE +#endif + +#if !__has_feature(cxx_unrestricted_unions) +#  define BOOST_NO_CXX11_UNRESTRICTED_UNION  #endif  #if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__)) @@ -246,6 +251,10 @@  #  define BOOST_NO_CXX17_STRUCTURED_BINDINGS  #endif +#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606) +#  define BOOST_NO_CXX17_IF_CONSTEXPR +#endif +  // Clang 3.9+ in c++1z  #if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L  #  define BOOST_NO_CXX17_INLINE_VARIABLES @@ -279,3 +288,4 @@  // Macro used to identify the Clang compiler.  #define BOOST_CLANG 1 +#define BOOST_CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) diff --git a/contrib/restricted/boost/config/include/boost/config/compiler/xlcpp_zos.hpp b/contrib/restricted/boost/config/include/boost/config/compiler/xlcpp_zos.hpp index bc785b8ab01..bc5b7e831fc 100644 --- a/contrib/restricted/boost/config/include/boost/config/compiler/xlcpp_zos.hpp +++ b/contrib/restricted/boost/config/include/boost/config/compiler/xlcpp_zos.hpp @@ -140,7 +140,9 @@  #define BOOST_NO_CXX11_THREAD_LOCAL  #define BOOST_NO_CXX11_REF_QUALIFIERS  #define BOOST_NO_CXX11_FINAL +#define BOOST_NO_CXX11_OVERRIDE  #define BOOST_NO_CXX11_ALIGNAS +#define BOOST_NO_CXX11_UNRESTRICTED_UNION  #define BOOST_NO_CXX14_VARIABLE_TEMPLATES  #define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION  #define BOOST_NO_CXX14_AGGREGATE_NSDMI @@ -153,6 +155,7 @@  #define BOOST_NO_CXX17_STRUCTURED_BINDINGS  #define BOOST_NO_CXX17_INLINE_VARIABLES  #define BOOST_NO_CXX17_FOLD_EXPRESSIONS +#define BOOST_NO_CXX17_IF_CONSTEXPR  // ------------------------------------- diff --git a/contrib/restricted/boost/config/include/boost/config/detail/cxx_composite.hpp b/contrib/restricted/boost/config/include/boost/config/detail/cxx_composite.hpp index 618be6b9396..a243d41f8e7 100644 --- a/contrib/restricted/boost/config/include/boost/config/detail/cxx_composite.hpp +++ b/contrib/restricted/boost/config/include/boost/config/detail/cxx_composite.hpp @@ -1,4 +1,4 @@ -//  This file was automatically generated on Tue Aug 17 16:27:31 2021 +//  This file was automatically generated on Sun Jun  5 16:50:18 2022  //  by libs/config/tools/generate.cpp  //  Copyright John Maddock 2002-21.  //  Use, modification and distribution are subject to the  @@ -163,6 +163,7 @@  #endif  #if defined(BOOST_NO_CXX14)\ +   || defined(BOOST_NO_CXX17_DEDUCTION_GUIDES)\     || defined(BOOST_NO_CXX17_FOLD_EXPRESSIONS)\     || defined(BOOST_NO_CXX17_HDR_ANY)\     || defined(BOOST_NO_CXX17_HDR_CHARCONV)\ @@ -195,7 +196,8 @@     || defined(BOOST_NO_CXX20_HDR_SOURCE_LOCATION)\     || defined(BOOST_NO_CXX20_HDR_SPAN)\     || defined(BOOST_NO_CXX20_HDR_STOP_TOKEN)\ -   || defined(BOOST_NO_CXX20_HDR_SYNCSTREAM) +   || defined(BOOST_NO_CXX20_HDR_SYNCSTREAM)\ +   || defined(BOOST_NO_CXX20_HDR_VERSION)  #    define BOOST_NO_CXX20  #endif diff --git a/contrib/restricted/boost/config/include/boost/config/detail/select_compiler_config.hpp b/contrib/restricted/boost/config/include/boost/config/detail/select_compiler_config.hpp index 727f11bff60..fc857ea385c 100644 --- a/contrib/restricted/boost/config/include/boost/config/detail/select_compiler_config.hpp +++ b/contrib/restricted/boost/config/include/boost/config/detail/select_compiler_config.hpp @@ -39,8 +39,7 @@  //  Intel  #   define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp" -#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__) && !defined(_MSC_VER) -// when using clang and cuda at same time, you want to appear as gcc +#elif defined __clang__ && !defined(__ibmxl__) && !defined(__CODEGEARC__) && !defined(_MSC_VER)  //  Clang C++ emulates GCC, so it has to appear early.  #   define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp" diff --git a/contrib/restricted/boost/config/include/boost/config/detail/select_platform_config.hpp b/contrib/restricted/boost/config/include/boost/config/detail/select_platform_config.hpp index e292f1bb59b..a4c18fd72d8 100644 --- a/contrib/restricted/boost/config/include/boost/config/detail/select_platform_config.hpp +++ b/contrib/restricted/boost/config/include/boost/config/detail/select_platform_config.hpp @@ -88,6 +88,11 @@  #elif defined(__CloudABI__)  // Nuxi CloudABI:  #  define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp" + +#elif defined (__wasm__) +// Web assembly: +#  define BOOST_PLATFORM_CONFIG "boost/config/platform/wasm.hpp" +  #else  #  if defined(unix) \ diff --git a/contrib/restricted/boost/config/include/boost/config/detail/select_stdlib_config.hpp b/contrib/restricted/boost/config/include/boost/config/detail/select_stdlib_config.hpp index 8db778c86ba..1a09dda1261 100644 --- a/contrib/restricted/boost/config/include/boost/config/detail/select_stdlib_config.hpp +++ b/contrib/restricted/boost/config/include/boost/config/detail/select_stdlib_config.hpp @@ -11,10 +11,21 @@  // locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed: -// First include <cstddef> to determine if some version of STLport is in use as the std lib +// First, check if __has_include is available and <version> include can be located, +// otherwise include <cstddef> to determine if some version of STLport is in use as the std lib  // (do not rely on this header being included since users can short-circuit this header   //  if they know whose std lib they are using.) -#ifdef __cplusplus +#if defined(__cplusplus) && defined(__has_include) +#  if __has_include(<version>) +// It should be safe to include `<version>` when it is present without checking +// the actual C++ language version as it consists solely of macro definitions. +// [version.syn] p1: The header <version> supplies implementation-dependent +// information about the C++ standard library (e.g., version number and release date). +#    include <version> +#  else +#    include <cstddef> +#  endif +#elif defined(__cplusplus)  #  include <cstddef>  #else  #  include <stddef.h> diff --git a/contrib/restricted/boost/config/include/boost/config/detail/suffix.hpp b/contrib/restricted/boost/config/include/boost/config/detail/suffix.hpp index e5d97856976..13d4bb6a682 100644 --- a/contrib/restricted/boost/config/include/boost/config/detail/suffix.hpp +++ b/contrib/restricted/boost/config/include/boost/config/detail/suffix.hpp @@ -476,11 +476,14 @@ namespace std {  #endif  // -// If we're on a CUDA device (note DEVICE not HOST, irrespective of compiler) then disable __float128 support if present: +// If we're on a CUDA device (note DEVICE not HOST, irrespective of compiler) then disable __int128 and __float128 support if present:  //  #if defined(__CUDA_ARCH__) && defined(BOOST_HAS_FLOAT128)  #  undef BOOST_HAS_FLOAT128  #endif +#if defined(__CUDA_ARCH__) && defined(BOOST_HAS_INT128) +#  undef BOOST_HAS_INT128 +#endif  // long long workaround ------------------------------------------//  // On gcc (and maybe other compilers?) long long is alway supported @@ -629,7 +632,7 @@ namespace std{ using ::type_info; }         // nvcc doesn't always parse __noinline__,         // see: https://svn.boost.org/trac/boost/ticket/9392  #      define BOOST_NOINLINE __attribute__ ((noinline)) -#    elif defined(HIP_VERSION) +#    elif defined(__HIP__)         // See https://github.com/boostorg/config/issues/392  #      define BOOST_NOINLINE __attribute__ ((noinline))  #    else @@ -994,7 +997,7 @@ namespace std{ using ::type_info; }  // on unsupported compilers.  //  #ifndef BOOST_FALLTHROUGH -#  define BOOST_FALLTHROUGH [[fallthrough]] +#  define BOOST_FALLTHROUGH ((void)0)  #endif  // @@ -1066,6 +1069,12 @@ namespace std{ using ::type_info; }  #define BOOST_STATIC_CONSTEXPR  static BOOST_CONSTEXPR_OR_CONST +#if !defined(BOOST_NO_CXX11_NULLPTR) +# define BOOST_NULLPTR nullptr +#else +# define BOOST_NULLPTR 0 +#endif +  //  // Set BOOST_HAS_STATIC_ASSERT when BOOST_NO_CXX11_STATIC_ASSERT is not defined  // @@ -1132,9 +1141,14 @@ namespace std{ using ::type_info; }  #endif  #endif  #endif +// +// Define the std level that the compiler claims to support: +// +#ifndef BOOST_CXX_VERSION +#  define BOOST_CXX_VERSION __cplusplus +#endif -#if !defined(_YVALS) && !defined(_CPPLIB_VER)  // msvc std lib already configured -#if (!defined(__has_include) || (__cplusplus < 201704)) +#if (!defined(__has_include) || (BOOST_CXX_VERSION < 201704))  #  define BOOST_NO_CXX20_HDR_BARRIER  #  define BOOST_NO_CXX20_HDR_FORMAT  #  define BOOST_NO_CXX20_HDR_SOURCE_LOCATION @@ -1150,49 +1164,67 @@ namespace std{ using ::type_info; }  #  define BOOST_NO_CXX20_HDR_COROUTINE  #  define BOOST_NO_CXX20_HDR_SEMAPHORE  #else -#if !__has_include(<barrier>) +#if (!__has_include(<barrier>) || !defined(__cpp_lib_barrier) || (__cpp_lib_barrier < 201907L)) && !defined(BOOST_NO_CXX20_HDR_BARRIER)  #  define BOOST_NO_CXX20_HDR_BARRIER  #endif -#if !__has_include(<format>) +#if (!__has_include(<format>) || !defined(__cpp_lib_format) || (__cpp_lib_format < 201907L)) && !defined(BOOST_NO_CXX20_HDR_FORMAT)  #  define BOOST_NO_CXX20_HDR_FORMAT  #endif -#if !__has_include(<source_Location>) +#if (!__has_include(<source_location>) || !defined(__cpp_lib_source_location) || (__cpp_lib_source_location < 201907L)) && !defined(BOOST_NO_CXX20_HDR_SOURCE_LOCATION)  #  define BOOST_NO_CXX20_HDR_SOURCE_LOCATION  #endif -#if !__has_include(<bit>) +#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)  #  define BOOST_NO_CXX20_HDR_BIT  #endif -#if !__has_include(<latch>) +#if (!__has_include(<latch>) || !defined(__cpp_lib_latch) || (__cpp_lib_latch < 201907L)) && !defined(BOOST_NO_CXX20_HDR_LATCH)  #  define BOOST_NO_CXX20_HDR_LATCH  #endif -#if !__has_include(<span>) +#if (!__has_include(<span>) || !defined(__cpp_lib_span) || (__cpp_lib_span < 202002L)) && !defined(BOOST_NO_CXX20_HDR_SPAN)  #  define BOOST_NO_CXX20_HDR_SPAN  #endif -#if !__has_include(<compare>) +#if (!__has_include(<compare>) || !defined(__cpp_lib_three_way_comparison) || (__cpp_lib_three_way_comparison < 201907L)) && !defined(BOOST_NO_CXX20_HDR_COMPARE)  #  define BOOST_NO_CXX20_HDR_COMPARE  #endif -#if !__has_include(<numbers>) +#if (!__has_include(<numbers>) || !defined(__cpp_lib_math_constants) || (__cpp_lib_math_constants < 201907L)) && !defined(BOOST_NO_CXX20_HDR_NUMBERS)  #  define BOOST_NO_CXX20_HDR_NUMBERS  #endif -#if !__has_include(<stop_token>) +#if (!__has_include(<stop_token>) || !defined(__cpp_lib_jthread) || (__cpp_lib_jthread < 201911L)) && !defined(BOOST_NO_CXX20_HDR_STOP_TOKEN)  #  define BOOST_NO_CXX20_HDR_STOP_TOKEN  #endif -#if !__has_include(<concepts>) +#if (!__has_include(<concepts>) || !defined(__cpp_lib_concepts) || (__cpp_lib_concepts < 202002L)) && !defined(_YVALS) && !defined(_CPPLIB_VER) && !defined(BOOST_NO_CXX20_HDR_CONCEPTS)  #  define BOOST_NO_CXX20_HDR_CONCEPTS  #endif -#if !__has_include(<ranges>) +#if (!__has_include(<ranges>) || !defined(__cpp_lib_ranges) || (__cpp_lib_ranges < 201911L)) && !defined(BOOST_NO_CXX20_HDR_RANGES)  #  define BOOST_NO_CXX20_HDR_RANGES  #endif -#if !__has_include(<syncstream>) +#if (!__has_include(<syncstream>) || !defined(__cpp_lib_syncbuf) || (__cpp_lib_syncbuf < 201803L)) && !defined(BOOST_NO_CXX20_HDR_SYNCSTREAM)  #  define BOOST_NO_CXX20_HDR_SYNCSTREAM  #endif -#if !__has_include(<coroutine>) +#if (!__has_include(<coroutine>) || !defined(__cpp_lib_coroutine) || (__cpp_lib_coroutine < 201902L)) && !defined(BOOST_NO_CXX20_HDR_COROUTINE)  #  define BOOST_NO_CXX20_HDR_COROUTINE  #endif -#if !__has_include(<semaphore>) +#if (!__has_include(<semaphore>) || !defined(__cpp_lib_semaphore) || (__cpp_lib_semaphore < 201907L)) && !defined(BOOST_NO_CXX20_HDR_SEMAPHORE)  #  define BOOST_NO_CXX20_HDR_SEMAPHORE  #endif  #endif + +#if defined(__cplusplus) && defined(__has_include) +#if !__has_include(<version>) +#  define BOOST_NO_CXX20_HDR_VERSION +#else +// For convenience, this is always included: +#  include <version> +#endif +#else +#  define BOOST_NO_CXX20_HDR_VERSION +#endif + +#if defined(BOOST_MSVC) +#if (BOOST_MSVC < 1914) || (_MSVC_LANG < 201703) +#  define BOOST_NO_CXX17_DEDUCTION_GUIDES +#endif +#elif !defined(__cpp_deduction_guides) || (__cpp_deduction_guides < 201606) +#  define BOOST_NO_CXX17_DEDUCTION_GUIDES  #endif  // @@ -1201,13 +1233,6 @@ namespace std{ using ::type_info; }  #include <boost/config/detail/cxx_composite.hpp>  // -// Define the std level that the compiler claims to support: -// -#ifndef BOOST_CXX_VERSION -#  define BOOST_CXX_VERSION __cplusplus -#endif - -//  // Finish off with checks for macros that are depricated / no longer supported,  // if any of these are set then it's very likely that much of Boost will no  // longer work.  So stop with a #error for now, but give the user a chance diff --git a/contrib/restricted/boost/config/include/boost/config/platform/bsd.hpp b/contrib/restricted/boost/config/include/boost/config/platform/bsd.hpp index 79e74a080a8..ccc7eb05ad2 100644 --- a/contrib/restricted/boost/config/include/boost/config/platform/bsd.hpp +++ b/contrib/restricted/boost/config/include/boost/config/platform/bsd.hpp @@ -28,7 +28,8 @@  // FreeBSD has <nl_types.h> but does not  // advertise the fact in <unistd.h>:  // -#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__) +#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) \ +   || defined(__OpenBSD__) || defined(__DragonFly__)  #  define BOOST_HAS_NL_TYPES_H  #endif @@ -56,7 +57,8 @@  #endif  #if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \ -      || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__)) +      || (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) \ +      || defined(__OpenBSD__) || defined(__DragonFly__))  #  define BOOST_NO_CWCHAR  #endif  // @@ -74,13 +76,8 @@  #define BOOST_HAS_GETTIMEOFDAY  #define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE  #define BOOST_HAS_SIGACTION +#define BOOST_HAS_CLOCK_GETTIME  // boilerplate code:  #define BOOST_HAS_UNISTD_H  #include <boost/config/detail/posix_features.hpp> - - - - - - diff --git a/contrib/restricted/boost/config/include/boost/config/platform/cygwin.hpp b/contrib/restricted/boost/config/include/boost/config/platform/cygwin.hpp index 6dd7e57cfd1..d0052d8b45f 100644 --- a/contrib/restricted/boost/config/include/boost/config/platform/cygwin.hpp +++ b/contrib/restricted/boost/config/include/boost/config/platform/cygwin.hpp @@ -42,8 +42,11 @@  #   define BOOST_HAS_STDINT_H  #endif +#include <cygwin/version.h> +#if (CYGWIN_VERSION_API_MAJOR == 0 && CYGWIN_VERSION_API_MINOR < 231)  /// Cygwin has no fenv.h  #define BOOST_NO_FENV_H +#endif  // Cygwin has it's own <pthread.h> which breaks <shared_mutex> unless the correct compiler flags are used:  #ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX diff --git a/contrib/restricted/boost/config/include/boost/config/requires_threads.hpp b/contrib/restricted/boost/config/include/boost/config/requires_threads.hpp index cfaff23027c..c23a2ce3c9e 100644 --- a/contrib/restricted/boost/config/include/boost/config/requires_threads.hpp +++ b/contrib/restricted/boost/config/include/boost/config/requires_threads.hpp @@ -54,7 +54,7 @@  //  Compaq Tru64 Unix cxx  #   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -pthread" -#elif defined __BORLANDC__ +#elif defined BOOST_BORLANDC  //  Borland  #   error "Compiler threading support is not turned on. Please set the correct command line options for threading: -tWM" diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/dinkumware.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/dinkumware.hpp index 641c2ae2e89..8feccc65af4 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/dinkumware.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/dinkumware.hpp @@ -22,7 +22,7 @@  #if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 306)     // full dinkumware 3.06 and above     // fully conforming provided the compiler supports it: -#  if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(__BORLANDC__) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700))   // can be defined in yvals.h +#  if !(defined(_GLOBAL_USING) && (_GLOBAL_USING+0 > 0)) && !defined(BOOST_BORLANDC) && !defined(_STD) && !(defined(__ICC) && (__ICC >= 700))   // can be defined in yvals.h  #     define BOOST_NO_STDC_NAMESPACE  #  endif  #  if !(defined(_HAS_MEMBER_TEMPLATES_REBIND) && (_HAS_MEMBER_TEMPLATES_REBIND+0 > 0)) && !(defined(_MSC_VER) && (_MSC_VER > 1300)) && defined(BOOST_MSVC) @@ -68,12 +68,12 @@  // the same applies to other compilers that sit on top  // of vc7.1 (Intel and Comeau):  // -#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(__BORLANDC__) +#if defined(_MSC_VER) && (_MSC_VER >= 1310) && !defined(BOOST_BORLANDC)  #  define BOOST_STD_EXTENSION_NAMESPACE stdext  #endif -#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__BORLANDC__)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306) +#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(BOOST_BORLANDC)) || !defined(_CPPLIB_VER) || (_CPPLIB_VER < 306)     // if we're using a dinkum lib that's     // been configured for VC6/7 then there is     // no iterator traits (true even for icl) @@ -86,20 +86,24 @@  #  define BOOST_NO_STD_LOCALE  #endif +#if ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER))) && (_MSC_VER < 1800)  // Fix for VC++ 8.0 on up ( I do not have a previous version to test )  // or clang-cl. If exceptions are off you must manually include the   // <exception> header before including the <typeinfo> header. Admittedly   // trying to use Boost libraries or the standard C++ libraries without   // exception support is not suggested but currently clang-cl ( v 3.4 )   // does not support exceptions and must be compiled with exceptions off. -#if !_HAS_EXCEPTIONS && ((defined(BOOST_MSVC) && BOOST_MSVC >= 1400) || (defined(__clang__) && defined(_MSC_VER))) +#if !_HAS_EXCEPTIONS  #include <exception>  #endif  #include <typeinfo> -#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__) \ -	&& !defined(__VXWORKS__) +#if !_HAS_EXCEPTIONS  #  define BOOST_NO_STD_TYPEINFO  #endif   +#endif +#if defined(__ghs__) && !_HAS_NAMESPACE +#  define BOOST_NO_STD_TYPEINFO +#endif  //  C++0x headers implemented in 520 (as shipped by Microsoft)  // @@ -136,6 +140,7 @@  #  define BOOST_NO_CXX11_HDR_RATIO  #  define BOOST_NO_CXX11_HDR_THREAD  #  define BOOST_NO_CXX11_ATOMIC_SMART_PTR +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #endif  //  C++0x headers implemented in 610 (as shipped by Microsoft) @@ -171,14 +176,29 @@  #endif  // C++17 features -#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) +#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) \ + || ((!defined(BOOST_MSVC) || (BOOST_MSVC < 1910))) && (!defined(__clang__) || !defined(_MSC_VER) || (_MSC_VER < 1929))\ + || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)  #  define BOOST_NO_CXX17_STD_APPLY  #  define BOOST_NO_CXX17_ITERATOR_TRAITS -#endif -#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) +#  define BOOST_NO_CXX17_HDR_STRING_VIEW +#  define BOOST_NO_CXX17_HDR_OPTIONAL +#  define BOOST_NO_CXX17_HDR_VARIANT +#  define BOOST_NO_CXX17_HDR_ANY +#  define BOOST_NO_CXX17_HDR_MEMORY_RESOURCE +#  define BOOST_NO_CXX17_HDR_CHARCONV +#  define BOOST_NO_CXX17_HDR_EXECUTION +#  define BOOST_NO_CXX17_HDR_FILESYSTEM +#endif +#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0) || !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 201709)  #  define BOOST_NO_CXX17_STD_INVOKE  #endif +// C++20 features which aren't configured in suffix.hpp correctly: +#if !defined(_MSVC_STL_UPDATE) || (_MSVC_STL_UPDATE < 202008L) || !defined(_HAS_CXX20) || (_HAS_CXX20 == 0) +#  define BOOST_NO_CXX20_HDR_CONCEPTS +#endif +  #if !(!defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1912) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0))  // Deprecated std::iterator:  #  define BOOST_NO_STD_ITERATOR @@ -199,7 +219,15 @@  // Bug specific to VC14,   // See https://connect.microsoft.com/VisualStudio/feedback/details/1348277/link-error-when-using-std-codecvt-utf8-utf16-char16-t  // and discussion here: http://blogs.msdn.com/b/vcblog/archive/2014/11/12/visual-studio-2015-preview-now-available.aspx?PageIndex=2 -#if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650) +#if defined(_CPPLIB_VER) && (_CPPLIB_VER == 650) && (!defined(_MSVC_STL_VERSION) || (_MSVC_STL_VERSION < 142)) +#  define BOOST_NO_CXX11_HDR_CODECVT +#endif + +#if (_MSVC_LANG > 201700) && !defined(BOOST_NO_CXX11_HDR_CODECVT) +// +// <codecvt> is deprected as of C++17, and by default MSVC emits hard errors +// if you try to use it, so mark it as unavailable: +//  #  define BOOST_NO_CXX11_HDR_CODECVT  #endif @@ -214,6 +242,12 @@  #    define BOOST_NO_CXX98_BINDERS  #  endif  #endif +// +// Things deprecated in C++20: +// +#if defined(_HAS_CXX20) +#  define BOOST_NO_CXX11_ATOMIC_SMART_PTR +#endif  // diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/libcomo.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/libcomo.hpp index 75ac2bb76a2..6a8a1619625 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/libcomo.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/libcomo.hpp @@ -39,6 +39,7 @@  #  define BOOST_NO_CXX11_HDR_CHRONO  #  define BOOST_NO_CXX11_HDR_CODECVT  #  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #  define BOOST_NO_CXX11_HDR_FORWARD_LIST  #  define BOOST_NO_CXX11_HDR_FUTURE  #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/libcpp.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/libcpp.hpp index 1e77dca3365..bc8536eadde 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/libcpp.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/libcpp.hpp @@ -41,6 +41,7 @@  #  define BOOST_NO_CXX11_HDR_CODECVT  #  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST  #  define BOOST_NO_CXX11_HDR_MUTEX  #  define BOOST_NO_CXX11_HDR_RANDOM @@ -87,11 +88,11 @@  #endif  // C++17 features -#if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L) -#  define BOOST_NO_CXX17_STD_INVOKE -#endif  #if (_LIBCPP_VERSION < 4000) || (__cplusplus <= 201402L)  #  define BOOST_NO_CXX17_STD_APPLY +#  define BOOST_NO_CXX17_HDR_OPTIONAL +#  define BOOST_NO_CXX17_HDR_STRING_VIEW +#  define BOOST_NO_CXX17_HDR_VARIANT  #endif  #if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)  #  define BOOST_NO_AUTO_PTR @@ -103,7 +104,34 @@  #  define BOOST_NO_CXX98_BINDERS  #endif +#if defined(__cplusplus) && defined(__has_include) +#if __has_include(<version>) +#include <version> + +#if !defined(__cpp_lib_execution) || (__cpp_lib_execution < 201603L) +#  define BOOST_NO_CXX17_HDR_EXECUTION +#endif +#if !defined(__cpp_lib_invoke) || (__cpp_lib_invoke < 201411L) +#define BOOST_NO_CXX17_STD_INVOKE +#endif + +#if(_LIBCPP_VERSION < 9000) +// as_writable_bytes is missing. +#  define BOOST_NO_CXX20_HDR_SPAN +#endif + +#else +#define BOOST_NO_CXX17_STD_INVOKE      // Invoke support is incomplete (no invoke_result) +#define BOOST_NO_CXX17_HDR_EXECUTION +#endif +#else +#define BOOST_NO_CXX17_STD_INVOKE      // Invoke support is incomplete (no invoke_result) +#define BOOST_NO_CXX17_HDR_EXECUTION +#endif + +#if _LIBCPP_VERSION < 10000  // What's the correct version check here?  #define BOOST_NO_CXX17_ITERATOR_TRAITS +#endif  #if (_LIBCPP_VERSION <= 1101) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)  // This is a bit of a sledgehammer, because really it's just libc++abi that has no @@ -113,10 +141,16 @@  #  define BOOST_NO_CXX11_THREAD_LOCAL  #endif -#if defined(__linux__) && !defined(BOOST_NO_CXX11_THREAD_LOCAL) +#if defined(__linux__) && (_LIBCPP_VERSION < 6000) && !defined(BOOST_NO_CXX11_THREAD_LOCAL)  // After libc++-dev is installed on Trusty, clang++-libc++ almost works,  // except uses of `thread_local` fail with undefined reference to  // `__cxa_thread_atexit`. +// +// clang's libc++abi provides an implementation by deferring to the glibc +// implementation, which may or may not be available (it is not on Trusty). +// clang 4's libc++abi will provide an implementation if one is not in glibc +// though, so thread local support should work with clang 4 and above as long +// as libc++abi is linked in.  #  define BOOST_NO_CXX11_THREAD_LOCAL  #endif @@ -130,4 +164,8 @@  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX  #endif +#if !defined(BOOST_NO_CXX14_HDR_SHARED_MUTEX) && (_LIBCPP_VERSION < 5000) +#  define BOOST_NO_CXX14_HDR_SHARED_MUTEX +#endif +  //  --- end --- diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/libstdcpp3.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/libstdcpp3.hpp index e99fe316df3..2219883606e 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/libstdcpp3.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/libstdcpp3.hpp @@ -94,6 +94,20 @@  #endif  #endif +#if defined(__has_include) +#if defined(BOOST_HAS_HASH) +#if !__has_include(BOOST_HASH_SET_HEADER) || (__GNUC__ >= 10) +#undef BOOST_HAS_HASH +#undef BOOST_HAS_SET_HEADER +#undef BOOST_HAS_MAP_HEADER +#endif +#if !__has_include(BOOST_SLIST_HEADER) +#undef BOOST_HAS_SLIST +#undef BOOST_HAS_SLIST_HEADER +#endif +#endif +#endif +  //  // Decide whether we have C++11 support turned on:  // @@ -125,7 +139,17 @@  //  #ifdef __clang__ -#if __has_include(<experimental/memory_resource>) +#if __has_include(<source_location>) +#  define BOOST_LIBSTDCXX_VERSION 110100 +#elif __has_include(<compare>) +#  define BOOST_LIBSTDCXX_VERSION 100100 +#elif __has_include(<memory_resource>) +#  define BOOST_LIBSTDCXX_VERSION 90100 +#elif __has_include(<charconv>) +#  define BOOST_LIBSTDCXX_VERSION 80100 +#elif __has_include(<variant>) +#  define BOOST_LIBSTDCXX_VERSION 70100 +#elif __has_include(<experimental/memory_resource>)  #  define BOOST_LIBSTDCXX_VERSION 60100  #elif __has_include(<experimental/any>)  #  define BOOST_LIBSTDCXX_VERSION 50100 @@ -144,6 +168,33 @@  #elif __has_include(<array>)  #  define BOOST_LIBSTDCXX_VERSION 40300  #endif +// +// If BOOST_HAS_FLOAT128 is set, now that we know the std lib is libstdc++3, check to see if the std lib is +// configured to support this type.  If not disable it: +// +#if defined(BOOST_HAS_FLOAT128) && !defined(_GLIBCXX_USE_FLOAT128) +#  undef BOOST_HAS_FLOAT128 +#endif + +#if (BOOST_LIBSTDCXX_VERSION >= 100000) && defined(BOOST_HAS_HASH) +// +// hash_set/hash_map deprecated and have terminal bugs: +// +#undef BOOST_HAS_HASH +#undef BOOST_HAS_SET_HEADER +#undef BOOST_HAS_MAP_HEADER +#endif + + +#if (BOOST_LIBSTDCXX_VERSION >= 100000) && defined(BOOST_HAS_HASH) +// +// hash_set/hash_map deprecated and have terminal bugs: +// +#undef BOOST_HAS_HASH +#undef BOOST_HAS_SET_HEADER +#undef BOOST_HAS_MAP_HEADER +#endif +  #if (BOOST_LIBSTDCXX_VERSION < 50100)  // libstdc++ does not define this function as it's deprecated in C++11, but clang still looks for it, @@ -208,6 +259,7 @@ extern "C" char *gets (char *__s);  #     endif  #  elif !_GLIBCXX_USE_DEPRECATED  #     define BOOST_NO_AUTO_PTR +#     define BOOST_NO_CXX98_BINDERS  #  endif  #endif @@ -231,6 +283,7 @@ extern "C" char *gets (char *__s);  #  define BOOST_NO_CXX11_HDR_RATIO  #  define BOOST_NO_CXX11_HDR_SYSTEM_ERROR  #  define BOOST_NO_CXX11_SMART_PTR +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #else  #  define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG   #  define BOOST_HAS_TR1_COMPLEX_OVERLOADS  @@ -279,10 +332,6 @@ extern "C" char *gets (char *__s);  #  define BOOST_NO_CXX14_STD_EXCHANGE  #endif -#if defined(__clang_major__) && ((__clang_major__ < 3) || ((__clang_major__ == 3) && (__clang_minor__ < 7))) -// As of clang-3.6, libstdc++ header <atomic> throws up errors with clang: -#  define BOOST_NO_CXX11_HDR_ATOMIC -#endif  //  //  C++0x features in GCC 5.1 and later  // @@ -294,13 +343,14 @@ extern "C" char *gets (char *__s);  #endif  // -//  C++17 features in GCC 6.1 and later +//  C++17 features in GCC 7.1 and later  // -#if (BOOST_LIBSTDCXX_VERSION < 60100) || (__cplusplus <= 201402L) -#  define BOOST_NO_CXX17_STD_INVOKE -#endif  #if (BOOST_LIBSTDCXX_VERSION < 70100) || (__cplusplus <= 201402L) +#  define BOOST_NO_CXX17_STD_INVOKE  #  define BOOST_NO_CXX17_STD_APPLY +#  define BOOST_NO_CXX17_HDR_OPTIONAL +#  define BOOST_NO_CXX17_HDR_STRING_VIEW +#  define BOOST_NO_CXX17_HDR_VARIANT  #endif  #if defined(__has_include) @@ -309,10 +359,76 @@ extern "C" char *gets (char *__s);  #elif __cplusplus <= 201103  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX  #endif +// +// <execution> has a dependency to Intel's thread building blocks: +// unless these are installed seperately, including <execution> leads +// to inscrutable errors inside libstdc++'s own headers. +// +#if (BOOST_LIBSTDCXX_VERSION < 100100) +#if !__has_include(<tbb/tbb.h>) +#define BOOST_NO_CXX17_HDR_EXECUTION +#endif +#endif  #elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)  #  define BOOST_NO_CXX14_HDR_SHARED_MUTEX  #endif +#if BOOST_LIBSTDCXX_VERSION < 100100 +// +// The header may be present but is incomplete: +// +#  define BOOST_NO_CXX17_HDR_CHARCONV +#endif + +#if BOOST_LIBSTDCXX_VERSION < 110000 +// +// Header <bit> may be present but lacks std::bit_cast: +// +#define BOOST_NO_CXX20_HDR_BIT +#endif + +#if BOOST_LIBSTDCXX_VERSION >= 120000 +// +// Unary function is now deprecated in C++11 and later: +// +#if __cplusplus >= 201103L +#define BOOST_NO_CXX98_FUNCTION_BASE +#endif +#endif + +#ifndef __cpp_impl_coroutine +#  define BOOST_NO_CXX20_HDR_COROUTINE +#endif + +// +// These next defines are mostly for older clang versions with a newer libstdc++ : +// +#if !defined(__cpp_lib_concepts) +#if !defined(BOOST_NO_CXX20_HDR_COMPARE) +#  define BOOST_NO_CXX20_HDR_COMPARE +#endif +#if !defined(BOOST_NO_CXX20_HDR_CONCEPTS) +#  define BOOST_NO_CXX20_HDR_CONCEPTS +#endif +#if !defined(BOOST_NO_CXX20_HDR_SPAN) +#  define BOOST_NO_CXX20_HDR_SPAN +#endif +#if !defined(BOOST_NO_CXX20_HDR_RANGES) +#  define BOOST_NO_CXX20_HDR_RANGES +#endif +#endif + +#if defined(__clang__) +#if (__clang_major__ < 11) && !defined(BOOST_NO_CXX20_HDR_RANGES) +#  define BOOST_NO_CXX20_HDR_RANGES +#endif +#if (__clang_major__ < 10) && (BOOST_LIBSTDCXX_VERSION >= 110000) && !defined(BOOST_NO_CXX11_HDR_CHRONO) +// Old clang can't parse <chrono>: +#  define BOOST_NO_CXX11_HDR_CHRONO +#  define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE +#endif +#endif +  //  // Headers not present on Solaris with the Oracle compiler:  #if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5140) diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/modena.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/modena.hpp index 81919e01801..31a26c856a2 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/modena.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/modena.hpp @@ -51,6 +51,7 @@  #  define BOOST_NO_CXX11_HDR_ATOMIC  #  define BOOST_NO_CXX11_STD_ALIGN  #  define BOOST_NO_CXX11_ADDRESSOF +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #if defined(__has_include)  #if !__has_include(<shared_mutex>) diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/msl.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/msl.hpp index 0e2e2afee8b..f2f825983be 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/msl.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/msl.hpp @@ -75,6 +75,7 @@  #  define BOOST_NO_CXX11_HDR_ATOMIC  #  define BOOST_NO_CXX11_STD_ALIGN  #  define BOOST_NO_CXX11_ADDRESSOF +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #if defined(__has_include)  #if !__has_include(<shared_mutex>) diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/roguewave.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/roguewave.hpp index df6021551a3..03a65768c0e 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/roguewave.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/roguewave.hpp @@ -59,7 +59,7 @@  //  // Borland version of numeric_limits lacks __int64 specialisation:  // -#ifdef __BORLANDC__ +#ifdef BOOST_BORLANDC  #  define BOOST_NO_MS_INT64_NUMERIC_LIMITS  #endif @@ -187,6 +187,7 @@  #  define BOOST_NO_CXX11_HDR_ATOMIC  #  define BOOST_NO_CXX11_STD_ALIGN  #  define BOOST_NO_CXX11_ADDRESSOF +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #if defined(__has_include)  #if !__has_include(<shared_mutex>) diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/sgi.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/sgi.hpp index 0c8ab2e4c10..c49957cef8b 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/sgi.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/sgi.hpp @@ -145,6 +145,7 @@  #  define BOOST_NO_CXX11_HDR_ATOMIC  #  define BOOST_NO_CXX11_STD_ALIGN  #  define BOOST_NO_CXX11_ADDRESSOF +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #if defined(__has_include)  #if !__has_include(<shared_mutex>) diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/stlport.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/stlport.hpp index 2e304e2b945..38bc763f95f 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/stlport.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/stlport.hpp @@ -62,11 +62,11 @@  // then the io stream facets are not available in namespace std::  //  #ifdef _STLPORT_VERSION -#  if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) +#  if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(BOOST_BORLANDC)  #     define BOOST_NO_STD_LOCALE  #  endif  #else -#  if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__) +#  if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(BOOST_BORLANDC)  #     define BOOST_NO_STD_LOCALE  #  endif  #endif @@ -128,7 +128,7 @@  // BCB6 does cause problems. If we detect C++ Builder, then don't define   // BOOST_NO_STDC_NAMESPACE  // -#if !defined(__BORLANDC__) && !defined(__DMC__) +#if !defined(BOOST_BORLANDC) && !defined(__DMC__)  //  // If STLport is using it's own namespace, and the real names are in  // the global namespace, then we duplicate STLport's using declarations @@ -143,7 +143,7 @@  #     define BOOST_NO_STDC_NAMESPACE  #     define BOOST_NO_EXCEPTION_STD_NAMESPACE  #  endif -#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560 +#elif defined(BOOST_BORLANDC) && BOOST_BORLANDC < 0x560  // STLport doesn't import std::abs correctly:  #include <stdlib.h>  namespace std { using ::abs; } @@ -192,7 +192,7 @@ namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy;  // Borland ships a version of STLport with C++ Builder 6 that lacks  // hashtables and the like:  // -#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560) +#if defined(BOOST_BORLANDC) && (BOOST_BORLANDC == 0x560)  #  undef BOOST_HAS_HASH  #endif @@ -235,6 +235,7 @@ namespace boost { using std::min; using std::max; }  #  define BOOST_NO_CXX11_HDR_ATOMIC  #  define BOOST_NO_CXX11_STD_ALIGN  #  define BOOST_NO_CXX11_ADDRESSOF +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #if defined(__has_include)  #if !__has_include(<shared_mutex>) diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/vacpp.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/vacpp.hpp index c4e1fb1847e..b14dd65576e 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/vacpp.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/vacpp.hpp @@ -51,6 +51,7 @@  #  define BOOST_NO_CXX11_HDR_ATOMIC  #  define BOOST_NO_CXX11_STD_ALIGN  #  define BOOST_NO_CXX11_ADDRESSOF +#  define BOOST_NO_CXX11_HDR_EXCEPTION  #if defined(__has_include)  #if !__has_include(<shared_mutex>) diff --git a/contrib/restricted/boost/config/include/boost/config/stdlib/xlcpp_zos.hpp b/contrib/restricted/boost/config/include/boost/config/stdlib/xlcpp_zos.hpp index 4d5beb18552..a5e02fd8b83 100644 --- a/contrib/restricted/boost/config/include/boost/config/stdlib/xlcpp_zos.hpp +++ b/contrib/restricted/boost/config/include/boost/config/stdlib/xlcpp_zos.hpp @@ -50,6 +50,7 @@  #define BOOST_NO_CXX11_HDR_CHRONO  #define BOOST_NO_CXX11_HDR_ATOMIC  #define BOOST_NO_CXX11_HDR_ARRAY +#define BOOST_NO_CXX11_HDR_EXCEPTION  #define BOOST_NO_CXX11_STD_ALIGN  #define BOOST_NO_CXX14_STD_EXCHANGE diff --git a/contrib/restricted/boost/config/include/boost/config/user.hpp b/contrib/restricted/boost/config/include/boost/config/user.hpp index 4cbbce8f250..834a300f777 100644 --- a/contrib/restricted/boost/config/include/boost/config/user.hpp +++ b/contrib/restricted/boost/config/include/boost/config/user.hpp @@ -1,8 +1,8 @@  //  boost/config/user.hpp  ---------------------------------------------------//  //  (C) Copyright John Maddock 2001.  -//  Use, modification and distribution are subject to the  -//  Boost Software License, Version 1.0. (See accompanying file  +//  Use, modification and distribution are subject to the +//  Boost Software License, Version 1.0. (See accompanying file  //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)  //  Do not check in modified versions of this file, diff --git a/contrib/restricted/boost/config/include/boost/config/workaround.hpp b/contrib/restricted/boost/config/include/boost/config/workaround.hpp index fca8f3ab7e5..688f9636609 100644 --- a/contrib/restricted/boost/config/include/boost/config/workaround.hpp +++ b/contrib/restricted/boost/config/include/boost/config/workaround.hpp @@ -50,6 +50,21 @@  #else  #define __CODEGEARC___WORKAROUND_GUARD 0  #endif +#ifndef BOOST_BORLANDC +#define BOOST_BORLANDC_WORKAROUND_GUARD 1 +#else +#define BOOST_BORLANDC_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_CODEGEARC +#define BOOST_CODEGEARC_WORKAROUND_GUARD 1 +#else +#define BOOST_CODEGEARC_WORKAROUND_GUARD 0 +#endif +#ifndef BOOST_EMBTC +#define BOOST_EMBTC_WORKAROUND_GUARD 1 +#else +#define BOOST_EMBTC_WORKAROUND_GUARD 0 +#endif  #ifndef _MSC_VER  #define _MSC_VER_WORKAROUND_GUARD 1  #else @@ -177,6 +192,11 @@  #else  #define _COMPILER_VERSION_WORKAROUND_GUARD 0  #endif +#ifndef __clang_major__ +#define __clang_major___WORKAROUND_GUARD 1 +#else +#define __clang_major___WORKAROUND_GUARD 0 +#endif  #ifndef _RWSTD_VER  #define _RWSTD_VER_WORKAROUND_GUARD 1 @@ -239,6 +259,12 @@  #else  #define BOOST_INTEL_WORKAROUND_GUARD 0  #endif +#ifndef BOOST_CLANG_VERSION +#define BOOST_CLANG_VERSION_WORKAROUND_GUARD 1 +#else +#define BOOST_CLANG_VERSION_WORKAROUND_GUARD 0 +#endif +  // Always define to zero, if it's used it'll be defined my MPL:  #define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0 diff --git a/contrib/restricted/boost/config/include/boost/cstdint.hpp b/contrib/restricted/boost/config/include/boost/cstdint.hpp index c8474c4623a..967aacfd3e1 100644 --- a/contrib/restricted/boost/config/include/boost/cstdint.hpp +++ b/contrib/restricted/boost/config/include/boost/cstdint.hpp @@ -52,9 +52,9 @@  // so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.  // See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990  // -#if defined(BOOST_HAS_STDINT_H)					\ -  && (!defined(__GLIBC__)					\ -      || defined(__GLIBC_HAVE_LONG_LONG)			\ +#if defined(BOOST_HAS_STDINT_H)            \ +  && (!defined(__GLIBC__)                  \ +      || defined(__GLIBC_HAVE_LONG_LONG)   \        || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))  // The following #include is an implementation artifact; not part of interface. @@ -306,7 +306,7 @@ namespace boost  //  64-bit types + intmax_t and uintmax_t  ----------------------------------//  # if defined(BOOST_HAS_LONG_LONG) && \ -   !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \ +   !defined(BOOST_MSVC) && !defined(BOOST_BORLANDC) && \     (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \     (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))  #    if defined(__hpux) @@ -451,7 +451,7 @@ INT#_C macros if they're not already defined (John Maddock).  #ifndef INT64_C  #  define INT64_C(value)    value##i64  #endif -#  ifdef __BORLANDC__ +#  ifdef BOOST_BORLANDC      // Borland bug: appending ui8 makes the type a signed char  #   define UINT8_C(value)    static_cast<unsigned char>(value##u)  #  else diff --git a/contrib/restricted/boost/config/include/boost/detail/workaround.hpp b/contrib/restricted/boost/config/include/boost/detail/workaround.hpp index fb961158804..9c392182a06 100644 --- a/contrib/restricted/boost/config/include/boost/detail/workaround.hpp +++ b/contrib/restricted/boost/config/include/boost/detail/workaround.hpp @@ -2,9 +2,9 @@  // Distributed under the Boost Software License, Version 1.0. (See  // accompanying file LICENSE_1_0.txt or copy at  // http://www.boost.org/LICENSE_1_0.txt) -#ifndef WORKAROUND_DWA2002126_HPP -#define WORKAROUND_DWA2002126_HPP +#ifndef BOOST_WORKAROUND_DWA2002126_HPP +#define BOOST_WORKAROUND_DWA2002126_HPP  #include <boost/config/workaround.hpp> -#endif // WORKAROUND_DWA2002126_HPP +#endif // BOOST_WORKAROUND_DWA2002126_HPP diff --git a/contrib/restricted/boost/config/include/boost/version.hpp b/contrib/restricted/boost/config/include/boost/version.hpp index e96f343212b..0378a2caa85 100644 --- a/contrib/restricted/boost/config/include/boost/version.hpp +++ b/contrib/restricted/boost/config/include/boost/version.hpp @@ -19,7 +19,7 @@  //  BOOST_VERSION / 100 % 1000 is the minor version  //  BOOST_VERSION / 100000 is the major version -#define BOOST_VERSION 106700 +#define BOOST_VERSION 108000  //  //  BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION @@ -27,6 +27,6 @@  //  number, y is the minor version number, and z is the patch level if not 0.  //  This is used by <config/auto_link.hpp> to select which library version to link to. -#define BOOST_LIB_VERSION "1_67" +#define BOOST_LIB_VERSION "1_80"  #endif  | 
