Updated to latest versions of external libraries: Eigen 3.2.9 -> 3.3.4, gtest 1.7.0 -> 1.8.0, boost 1.59.0 -> 1.65.1, rapidjson 1.0.2 -> 1.1.0.
This commit is contained in:
parent
3a756f4eb5
commit
a3443cfe66
|
@ -18,9 +18,9 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||||
|
|
||||||
set(EXT_BOOST_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/boost_1_59_0)
|
set(EXT_BOOST_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/boost-1.65.1)
|
||||||
set(EXT_EIGEN_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/eigen-3.2.9)
|
set(EXT_EIGEN_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/eigen-3.3.4)
|
||||||
set(EXT_RAPIDJSON_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/rapidjson/include)
|
set(EXT_RAPIDJSON_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/rapidjson-1.1.0/include)
|
||||||
set(EXT_TCLAP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/tclap-1.2.1/include)
|
set(EXT_TCLAP_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/ext/tclap-1.2.1/include)
|
||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
@ -30,9 +30,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
${EXT_TCLAP_ROOT}
|
${EXT_TCLAP_ROOT}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(boostlib ${EXT_BOOST_ROOT}/libs/smart_ptr/src/sp_collector.cpp
|
|
||||||
${EXT_BOOST_ROOT}/libs/smart_ptr/src/sp_debug_hooks.cpp)
|
|
||||||
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
if (FEA_BUILD_EXAMPLES)
|
if (FEA_BUILD_EXAMPLES)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
add_executable(L_bracket L_bracket.cpp)
|
add_executable(L_bracket L_bracket.cpp)
|
||||||
target_link_libraries(L_bracket threed_beam_fea boostlib)
|
target_link_libraries(L_bracket threed_beam_fea)
|
||||||
|
|
||||||
add_executable(cantilever_beam_with_ties cantilever_beam_with_ties.cpp)
|
add_executable(cantilever_beam_with_ties cantilever_beam_with_ties.cpp)
|
||||||
target_link_libraries(cantilever_beam_with_ties threed_beam_fea boostlib)
|
target_link_libraries(cantilever_beam_with_ties threed_beam_fea)
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
//
|
||||||
|
// boost/assert.hpp - BOOST_ASSERT(expr)
|
||||||
|
// BOOST_ASSERT_MSG(expr, msg)
|
||||||
|
// BOOST_VERIFY(expr)
|
||||||
|
// BOOST_VERIFY_MSG(expr, msg)
|
||||||
|
// BOOST_ASSERT_IS_VOID
|
||||||
|
//
|
||||||
|
// Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.
|
||||||
|
// Copyright (c) 2007, 2014 Peter Dimov
|
||||||
|
// Copyright (c) Beman Dawes 2011
|
||||||
|
// Copyright (c) 2015 Ion Gaztanaga
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
// Note: There are no include guards. This is intentional.
|
||||||
|
//
|
||||||
|
// See http://www.boost.org/libs/assert/assert.html for documentation.
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// Stop inspect complaining about use of 'assert':
|
||||||
|
//
|
||||||
|
// boostinspect:naassert_macro
|
||||||
|
//
|
||||||
|
|
||||||
|
//
|
||||||
|
// BOOST_ASSERT, BOOST_ASSERT_MSG, BOOST_ASSERT_IS_VOID
|
||||||
|
//
|
||||||
|
|
||||||
|
#undef BOOST_ASSERT
|
||||||
|
#undef BOOST_ASSERT_MSG
|
||||||
|
#undef BOOST_ASSERT_IS_VOID
|
||||||
|
|
||||||
|
#if defined(BOOST_DISABLE_ASSERTS) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && defined(NDEBUG) )
|
||||||
|
|
||||||
|
# define BOOST_ASSERT(expr) ((void)0)
|
||||||
|
# define BOOST_ASSERT_MSG(expr, msg) ((void)0)
|
||||||
|
# define BOOST_ASSERT_IS_VOID
|
||||||
|
|
||||||
|
#elif defined(BOOST_ENABLE_ASSERT_HANDLER) || ( defined(BOOST_ENABLE_ASSERT_DEBUG_HANDLER) && !defined(NDEBUG) )
|
||||||
|
|
||||||
|
#include <boost/config.hpp> // for BOOST_LIKELY
|
||||||
|
#include <boost/current_function.hpp>
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
void assertion_failed(char const * expr, char const * function, char const * file, long line); // user defined
|
||||||
|
void assertion_failed_msg(char const * expr, char const * msg, char const * function, char const * file, long line); // user defined
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#define BOOST_ASSERT(expr) (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed(#expr, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
||||||
|
#define BOOST_ASSERT_MSG(expr, msg) (BOOST_LIKELY(!!(expr))? ((void)0): ::boost::assertion_failed_msg(#expr, msg, BOOST_CURRENT_FUNCTION, __FILE__, __LINE__))
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
# include <assert.h> // .h to support old libraries w/o <cassert> - effect is the same
|
||||||
|
|
||||||
|
# define BOOST_ASSERT(expr) assert(expr)
|
||||||
|
# define BOOST_ASSERT_MSG(expr, msg) assert((expr)&&(msg))
|
||||||
|
#if defined(NDEBUG)
|
||||||
|
# define BOOST_ASSERT_IS_VOID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// BOOST_VERIFY, BOOST_VERIFY_MSG
|
||||||
|
//
|
||||||
|
|
||||||
|
#undef BOOST_VERIFY
|
||||||
|
#undef BOOST_VERIFY_MSG
|
||||||
|
|
||||||
|
#if defined(BOOST_DISABLE_ASSERTS) || ( !defined(BOOST_ENABLE_ASSERT_HANDLER) && defined(NDEBUG) )
|
||||||
|
|
||||||
|
# define BOOST_VERIFY(expr) ((void)(expr))
|
||||||
|
# define BOOST_VERIFY_MSG(expr, msg) ((void)(expr))
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
# define BOOST_VERIFY(expr) BOOST_ASSERT(expr)
|
||||||
|
# define BOOST_VERIFY_MSG(expr, msg) BOOST_ASSERT_MSG(expr,msg)
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,67 @@
|
||||||
|
// Boost config.hpp configuration header file ------------------------------//
|
||||||
|
|
||||||
|
// (C) Copyright John Maddock 2002.
|
||||||
|
// 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/libs/config for most recent version.
|
||||||
|
|
||||||
|
// Boost config.hpp policy and rationale documentation has been moved to
|
||||||
|
// http://www.boost.org/libs/config
|
||||||
|
//
|
||||||
|
// CAUTION: This file is intended to be completely stable -
|
||||||
|
// DO NOT MODIFY THIS FILE!
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef BOOST_CONFIG_HPP
|
||||||
|
#define BOOST_CONFIG_HPP
|
||||||
|
|
||||||
|
// if we don't have a user config, then use the default location:
|
||||||
|
#if !defined(BOOST_USER_CONFIG) && !defined(BOOST_NO_USER_CONFIG)
|
||||||
|
# define BOOST_USER_CONFIG <boost/config/user.hpp>
|
||||||
|
#if 0
|
||||||
|
// For dependency trackers:
|
||||||
|
# include <boost/config/user.hpp>
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
// include it first:
|
||||||
|
#ifdef BOOST_USER_CONFIG
|
||||||
|
# include BOOST_USER_CONFIG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// if we don't have a compiler config set, try and find one:
|
||||||
|
#if !defined(BOOST_COMPILER_CONFIG) && !defined(BOOST_NO_COMPILER_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||||
|
# include <boost/config/detail/select_compiler_config.hpp>
|
||||||
|
#endif
|
||||||
|
// if we have a compiler config, include it now:
|
||||||
|
#ifdef BOOST_COMPILER_CONFIG
|
||||||
|
# include BOOST_COMPILER_CONFIG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// if we don't have a std library config set, try and find one:
|
||||||
|
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
|
||||||
|
# include <boost/config/detail/select_stdlib_config.hpp>
|
||||||
|
#endif
|
||||||
|
// if we have a std library config, include it now:
|
||||||
|
#ifdef BOOST_STDLIB_CONFIG
|
||||||
|
# include BOOST_STDLIB_CONFIG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// if we don't have a platform config set, try and find one:
|
||||||
|
#if !defined(BOOST_PLATFORM_CONFIG) && !defined(BOOST_NO_PLATFORM_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||||
|
# include <boost/config/detail/select_platform_config.hpp>
|
||||||
|
#endif
|
||||||
|
// if we have a platform config, include it now:
|
||||||
|
#ifdef BOOST_PLATFORM_CONFIG
|
||||||
|
# include BOOST_PLATFORM_CONFIG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// get config suffix code:
|
||||||
|
#include <boost/config/detail/suffix.hpp>
|
||||||
|
|
||||||
|
#ifdef BOOST_HAS_PRAGMA_ONCE
|
||||||
|
#pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_CONFIG_HPP
|
|
@ -0,0 +1,444 @@
|
||||||
|
// (C) Copyright John Maddock 2003.
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* LOCATION: see http://www.boost.org for most recent version.
|
||||||
|
* FILE auto_link.hpp
|
||||||
|
* VERSION see <boost/version.hpp>
|
||||||
|
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
|
||||||
|
USAGE:
|
||||||
|
~~~~~~
|
||||||
|
|
||||||
|
Before including this header you must define one or more of define the following macros:
|
||||||
|
|
||||||
|
BOOST_LIB_NAME: Required: A string containing the basename of the library,
|
||||||
|
for example boost_regex.
|
||||||
|
BOOST_LIB_TOOLSET: Optional: the base name of the toolset.
|
||||||
|
BOOST_DYN_LINK: Optional: when set link to dll rather than static library.
|
||||||
|
BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
|
||||||
|
of the library selected (useful for debugging).
|
||||||
|
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
|
||||||
|
rather than a mangled-name version.
|
||||||
|
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.
|
||||||
|
|
||||||
|
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!
|
||||||
|
|
||||||
|
Algorithm:
|
||||||
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
Libraries for Borland and Microsoft compilers are automatically
|
||||||
|
selected here, the name of the lib is selected according to the following
|
||||||
|
formula:
|
||||||
|
|
||||||
|
BOOST_LIB_PREFIX
|
||||||
|
+ BOOST_LIB_NAME
|
||||||
|
+ "_"
|
||||||
|
+ BOOST_LIB_TOOLSET
|
||||||
|
+ BOOST_LIB_THREAD_OPT
|
||||||
|
+ BOOST_LIB_RT_OPT
|
||||||
|
"-"
|
||||||
|
+ BOOST_LIB_VERSION
|
||||||
|
|
||||||
|
These are defined as:
|
||||||
|
|
||||||
|
BOOST_LIB_PREFIX: "lib" for static libraries otherwise "".
|
||||||
|
|
||||||
|
BOOST_LIB_NAME: The base name of the lib ( for example boost_regex).
|
||||||
|
|
||||||
|
BOOST_LIB_TOOLSET: The compiler toolset name (vc6, vc7, bcb5 etc).
|
||||||
|
|
||||||
|
BOOST_LIB_THREAD_OPT: "-mt" for multithread builds, otherwise nothing.
|
||||||
|
|
||||||
|
BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
|
||||||
|
contains one or more of the following letters after
|
||||||
|
a hyphen:
|
||||||
|
|
||||||
|
s static runtime (dynamic if not present).
|
||||||
|
g debug/diagnostic runtime (release if not present).
|
||||||
|
y Python debug/diagnostic runtime (release if not present).
|
||||||
|
d debug build (release if not present).
|
||||||
|
p STLport build.
|
||||||
|
n STLport build without its IOStreams.
|
||||||
|
|
||||||
|
BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||||
|
|
||||||
|
|
||||||
|
***************************************************************************/
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
# ifndef BOOST_CONFIG_HPP
|
||||||
|
# include <boost/config.hpp>
|
||||||
|
# endif
|
||||||
|
#elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
|
||||||
|
//
|
||||||
|
// C language compatability (no, honestly)
|
||||||
|
//
|
||||||
|
# define BOOST_MSVC _MSC_VER
|
||||||
|
# define BOOST_STRINGIZE(X) BOOST_DO_STRINGIZE(X)
|
||||||
|
# define BOOST_DO_STRINGIZE(X) #X
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Only include what follows for known and supported compilers:
|
||||||
|
//
|
||||||
|
#if defined(BOOST_MSVC) \
|
||||||
|
|| defined(__BORLANDC__) \
|
||||||
|
|| (defined(__MWERKS__) && defined(_WIN32) && (__MWERKS__ >= 0x3000)) \
|
||||||
|
|| (defined(__ICL) && defined(_MSC_EXTENSIONS) && (_MSC_VER >= 1200))
|
||||||
|
|
||||||
|
#ifndef BOOST_VERSION_HPP
|
||||||
|
# include <boost/version.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_LIB_NAME
|
||||||
|
# error "Macro BOOST_LIB_NAME not set (internal error)"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// error check:
|
||||||
|
//
|
||||||
|
#if defined(__MSVC_RUNTIME_CHECKS) && !defined(_DEBUG)
|
||||||
|
# pragma message("Using the /RTC option without specifying a debug runtime will lead to linker errors")
|
||||||
|
# pragma message("Hint: go to the code generation options and switch to one of the debugging runtimes")
|
||||||
|
# error "Incompatible build options"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// select toolset if not defined already:
|
||||||
|
//
|
||||||
|
#ifndef BOOST_LIB_TOOLSET
|
||||||
|
# if defined(BOOST_MSVC) && (BOOST_MSVC < 1200)
|
||||||
|
// Note: no compilers before 1200 are supported
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||||
|
|
||||||
|
# ifdef UNDER_CE
|
||||||
|
// eVC4:
|
||||||
|
# define BOOST_LIB_TOOLSET "evc4"
|
||||||
|
# else
|
||||||
|
// vc6:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc6"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1310)
|
||||||
|
|
||||||
|
// vc7:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc7"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1400)
|
||||||
|
|
||||||
|
// vc71:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc71"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1500)
|
||||||
|
|
||||||
|
// vc80:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc80"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1600)
|
||||||
|
|
||||||
|
// vc90:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc90"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1700)
|
||||||
|
|
||||||
|
// vc10:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc100"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1800)
|
||||||
|
|
||||||
|
// vc11:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc110"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1900)
|
||||||
|
|
||||||
|
// vc12:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc120"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC) && (BOOST_MSVC < 1910)
|
||||||
|
|
||||||
|
// vc14:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc140"
|
||||||
|
|
||||||
|
# elif defined(BOOST_MSVC)
|
||||||
|
|
||||||
|
// vc14.1:
|
||||||
|
# define BOOST_LIB_TOOLSET "vc141"
|
||||||
|
|
||||||
|
# elif defined(__BORLANDC__)
|
||||||
|
|
||||||
|
// CBuilder 6:
|
||||||
|
# define BOOST_LIB_TOOLSET "bcb"
|
||||||
|
|
||||||
|
# elif defined(__ICL)
|
||||||
|
|
||||||
|
// Intel C++, no version number:
|
||||||
|
# define BOOST_LIB_TOOLSET "iw"
|
||||||
|
|
||||||
|
# elif defined(__MWERKS__) && (__MWERKS__ <= 0x31FF )
|
||||||
|
|
||||||
|
// Metrowerks CodeWarrior 8.x
|
||||||
|
# define BOOST_LIB_TOOLSET "cw8"
|
||||||
|
|
||||||
|
# elif defined(__MWERKS__) && (__MWERKS__ <= 0x32FF )
|
||||||
|
|
||||||
|
// Metrowerks CodeWarrior 9.x
|
||||||
|
# define BOOST_LIB_TOOLSET "cw9"
|
||||||
|
|
||||||
|
# endif
|
||||||
|
#endif // BOOST_LIB_TOOLSET
|
||||||
|
|
||||||
|
//
|
||||||
|
// select thread opt:
|
||||||
|
//
|
||||||
|
#if defined(_MT) || defined(__MT__)
|
||||||
|
# define BOOST_LIB_THREAD_OPT "-mt"
|
||||||
|
#else
|
||||||
|
# define BOOST_LIB_THREAD_OPT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) || defined(__MWERKS__)
|
||||||
|
|
||||||
|
# ifdef _DLL
|
||||||
|
|
||||||
|
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||||
|
|
||||||
|
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-gydp"
|
||||||
|
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||||
|
# define BOOST_LIB_RT_OPT "-gdp"
|
||||||
|
# elif defined(_DEBUG)\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-gydp"
|
||||||
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# elif defined(_DEBUG)
|
||||||
|
# define BOOST_LIB_RT_OPT "-gdp"
|
||||||
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# else
|
||||||
|
# define BOOST_LIB_RT_OPT "-p"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
|
|
||||||
|
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-gydpn"
|
||||||
|
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||||
|
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||||
|
# elif defined(_DEBUG)\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-gydpn"
|
||||||
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# elif defined(_DEBUG)
|
||||||
|
# define BOOST_LIB_RT_OPT "-gdpn"
|
||||||
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# else
|
||||||
|
# define BOOST_LIB_RT_OPT "-pn"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
# if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-gyd"
|
||||||
|
# elif defined(_DEBUG)
|
||||||
|
# define BOOST_LIB_RT_OPT "-gd"
|
||||||
|
# else
|
||||||
|
# define BOOST_LIB_RT_OPT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
|
||||||
|
|
||||||
|
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgydp"
|
||||||
|
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||||
|
# elif defined(_DEBUG)\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgydp"
|
||||||
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# elif defined(_DEBUG)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgdp"
|
||||||
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# else
|
||||||
|
# define BOOST_LIB_RT_OPT "-sp"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
|
|
||||||
|
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgydpn"
|
||||||
|
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||||
|
# elif defined(_DEBUG)\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgydpn"
|
||||||
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# elif defined(_DEBUG)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgdpn"
|
||||||
|
# pragma message("warning: STLport debug versions are built with /D_STLP_DEBUG=1")
|
||||||
|
# error "Build options aren't compatible with pre-built libraries"
|
||||||
|
# else
|
||||||
|
# define BOOST_LIB_RT_OPT "-spn"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
# if defined(_DEBUG)\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgyd"
|
||||||
|
# elif defined(_DEBUG)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sgd"
|
||||||
|
# else
|
||||||
|
# define BOOST_LIB_RT_OPT "-s"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#elif defined(__BORLANDC__)
|
||||||
|
|
||||||
|
//
|
||||||
|
// figure out whether we want the debug builds or not:
|
||||||
|
//
|
||||||
|
#if __BORLANDC__ > 0x561
|
||||||
|
#pragma defineonoption BOOST_BORLAND_DEBUG -v
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// sanity check:
|
||||||
|
//
|
||||||
|
#if defined(__STL_DEBUG) || defined(_STLP_DEBUG)
|
||||||
|
#error "Pre-built versions of the Boost libraries are not provided in STLport-debug form"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# ifdef _RTLDLL
|
||||||
|
|
||||||
|
# if defined(BOOST_BORLAND_DEBUG)\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-yd"
|
||||||
|
# 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
|
||||||
|
# else
|
||||||
|
# define BOOST_LIB_RT_OPT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
# if defined(BOOST_BORLAND_DEBUG)\
|
||||||
|
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-syd"
|
||||||
|
# elif defined(BOOST_BORLAND_DEBUG)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sd"
|
||||||
|
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||||
|
# define BOOST_LIB_RT_OPT "-sy"
|
||||||
|
# else
|
||||||
|
# define BOOST_LIB_RT_OPT "-s"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// select linkage opt:
|
||||||
|
//
|
||||||
|
#if (defined(_DLL) || defined(_RTLDLL)) && defined(BOOST_DYN_LINK)
|
||||||
|
# define BOOST_LIB_PREFIX
|
||||||
|
#elif defined(BOOST_DYN_LINK)
|
||||||
|
# error "Mixing a dll boost library with a static runtime is a really bad idea..."
|
||||||
|
#else
|
||||||
|
# define BOOST_LIB_PREFIX "lib"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// now include the lib:
|
||||||
|
//
|
||||||
|
#if defined(BOOST_LIB_NAME) \
|
||||||
|
&& defined(BOOST_LIB_PREFIX) \
|
||||||
|
&& defined(BOOST_LIB_TOOLSET) \
|
||||||
|
&& defined(BOOST_LIB_THREAD_OPT) \
|
||||||
|
&& defined(BOOST_LIB_RT_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")
|
||||||
|
# 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")
|
||||||
|
# endif
|
||||||
|
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
|
||||||
|
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||||
|
# ifdef BOOST_LIB_DIAGNOSTIC
|
||||||
|
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
|
||||||
|
# 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_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
|
||||||
|
# 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_VERSION "-" BOOST_STRINGIZE(BOOST_LIB_BUILDID) ".lib")
|
||||||
|
# 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_VERSION ".lib")
|
||||||
|
# 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_VERSION ".lib")
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
# error "some required macros where not defined (internal logic error)."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#endif // _MSC_VER || __BORLANDC__
|
||||||
|
|
||||||
|
//
|
||||||
|
// finally undef any macros we may have set:
|
||||||
|
//
|
||||||
|
#ifdef BOOST_LIB_PREFIX
|
||||||
|
# undef BOOST_LIB_PREFIX
|
||||||
|
#endif
|
||||||
|
#if defined(BOOST_LIB_NAME)
|
||||||
|
# undef BOOST_LIB_NAME
|
||||||
|
#endif
|
||||||
|
// Don't undef this one: it can be set by the user and should be the
|
||||||
|
// same for all libraries:
|
||||||
|
//#if defined(BOOST_LIB_TOOLSET)
|
||||||
|
//# undef BOOST_LIB_TOOLSET
|
||||||
|
//#endif
|
||||||
|
#if defined(BOOST_LIB_THREAD_OPT)
|
||||||
|
# undef BOOST_LIB_THREAD_OPT
|
||||||
|
#endif
|
||||||
|
#if defined(BOOST_LIB_RT_OPT)
|
||||||
|
# undef BOOST_LIB_RT_OPT
|
||||||
|
#endif
|
||||||
|
#if defined(BOOST_LIB_LINK_OPT)
|
||||||
|
# undef BOOST_LIB_LINK_OPT
|
||||||
|
#endif
|
||||||
|
#if defined(BOOST_LIB_DEBUG_OPT)
|
||||||
|
# undef BOOST_LIB_DEBUG_OPT
|
||||||
|
#endif
|
||||||
|
#if defined(BOOST_DYN_LINK)
|
||||||
|
# undef BOOST_DYN_LINK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,331 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Borland C++ compiler setup:
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support Borland prior to version 5.4:
|
||||||
|
#if __BORLANDC__ < 0x540
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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"
|
||||||
|
//# else
|
||||||
|
//# pragma message( "Unknown compiler version - please run the configure tests and report the results")
|
||||||
|
//# endif
|
||||||
|
#elif (__BORLANDC__ == 0x600)
|
||||||
|
# error "CBuilderX preview compiler is no longer supported"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Support macros to help with standard library detection
|
||||||
|
#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
|
||||||
|
# define BOOST_BCB_WITH_ROGUE_WAVE
|
||||||
|
#elif __BORLANDC__ < 0x570
|
||||||
|
# define BOOST_BCB_WITH_STLPORT
|
||||||
|
#else
|
||||||
|
# define BOOST_BCB_WITH_DINKUMWARE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Version 5.0 and below:
|
||||||
|
# if __BORLANDC__ <= 0x0550
|
||||||
|
// Borland C++Builder 4 and 5:
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
# if __BORLANDC__ == 0x0550
|
||||||
|
// Borland C++Builder 5, command-line compiler 5.5:
|
||||||
|
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
|
# endif
|
||||||
|
// Variadic macros do not exist for C++ Builder versions 5 and below
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Version 5.51 and below:
|
||||||
|
#if (__BORLANDC__ <= 0x551)
|
||||||
|
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||||
|
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
|
||||||
|
# define BOOST_NO_DEDUCED_TYPENAME
|
||||||
|
// workaround for missing WCHAR_MAX/WCHAR_MIN:
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include <climits>
|
||||||
|
#include <cwchar>
|
||||||
|
#else
|
||||||
|
#include <limits.h>
|
||||||
|
#include <wchar.h>
|
||||||
|
#endif // __cplusplus
|
||||||
|
#ifndef WCHAR_MAX
|
||||||
|
# define WCHAR_MAX 0xffff
|
||||||
|
#endif
|
||||||
|
#ifndef WCHAR_MIN
|
||||||
|
# define WCHAR_MIN 0
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Borland C++ Builder 6 and below:
|
||||||
|
#if (__BORLANDC__ <= 0x564)
|
||||||
|
|
||||||
|
# if defined(NDEBUG) && defined(__cplusplus)
|
||||||
|
// fix broken <cstring> so that Boost.test works:
|
||||||
|
# include <cstring>
|
||||||
|
# undef strcmp
|
||||||
|
# endif
|
||||||
|
// fix broken errno declaration:
|
||||||
|
# include <errno.h>
|
||||||
|
# ifndef errno
|
||||||
|
# define errno errno
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// new bug in 5.61:
|
||||||
|
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
|
||||||
|
// this seems to be needed by the command line compiler, but not the IDE:
|
||||||
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Borland C++ Builder 2006 Update 2 and below:
|
||||||
|
#if (__BORLANDC__ <= 0x582)
|
||||||
|
# define BOOST_NO_SFINAE
|
||||||
|
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||||
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
|
|
||||||
|
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
|
|
||||||
|
# ifdef _WIN32
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# elif defined(linux) || defined(__linux__) || defined(__linux)
|
||||||
|
// we should really be able to do without this
|
||||||
|
// but the wcs* functions aren't imported into std::
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
// _CPPUNWIND doesn't get automatically set for some reason:
|
||||||
|
# pragma defineonoption BOOST_CPPUNWIND -x
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__BORLANDC__ <= 0x613) // Beman has asked Alisdair for more info
|
||||||
|
// we shouldn't really need this - but too many things choke
|
||||||
|
// without it, this needs more investigation:
|
||||||
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
|
||||||
|
# define BOOST_NO_USING_TEMPLATE
|
||||||
|
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||||
|
|
||||||
|
// Temporary workaround
|
||||||
|
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Borland C++ Builder 2008 and below:
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
|
# define BOOST_NO_NESTED_FRIENDSHIP
|
||||||
|
# define BOOST_NO_TYPENAME_WITH_CTOR
|
||||||
|
#if (__BORLANDC__ < 0x600)
|
||||||
|
# define BOOST_ILLEGAL_CV_REFERENCES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Positive Feature detection
|
||||||
|
//
|
||||||
|
// Borland C++ Builder 2008 and below:
|
||||||
|
#if (__BORLANDC__ >= 0x599)
|
||||||
|
# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// C++0x Macros:
|
||||||
|
//
|
||||||
|
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
|
||||||
|
# define BOOST_NO_CXX11_CHAR16_T
|
||||||
|
# define BOOST_NO_CXX11_CHAR32_T
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#else
|
||||||
|
# define BOOST_HAS_ALIGNOF
|
||||||
|
# define BOOST_HAS_CHAR16_T
|
||||||
|
# define BOOST_HAS_CHAR32_T
|
||||||
|
# define BOOST_HAS_DECLTYPE
|
||||||
|
# define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||||
|
# define BOOST_HAS_REF_QUALIFIER
|
||||||
|
# define BOOST_HAS_RVALUE_REFS
|
||||||
|
# define BOOST_HAS_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
#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_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_CXX11_UNICODE_LITERALS // UTF-8 still not supported
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __BORLANDC__ >= 0x590
|
||||||
|
# define BOOST_HAS_TR1_HASH
|
||||||
|
|
||||||
|
# define BOOST_HAS_MACRO_USE_FACET
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Post 0x561 we have long long and stdint.h:
|
||||||
|
#if __BORLANDC__ >= 0x561
|
||||||
|
# ifndef __NO_LONG_LONG
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
# else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
|
# endif
|
||||||
|
// On non-Win32 platforms let the platform config figure this out:
|
||||||
|
# ifdef _WIN32
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is
|
||||||
|
// defined, then we have 0x560 or greater with the Rogue Wave implementation
|
||||||
|
// which presumably has the std::DBL_MAX bug.
|
||||||
|
#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
|
||||||
|
// <climits> is partly broken, some macros define symbols that are really in
|
||||||
|
// namespace std, so you end up having to use illegal constructs like
|
||||||
|
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
|
||||||
|
#include <float.h>
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// __int64:
|
||||||
|
//
|
||||||
|
#if (__BORLANDC__ >= 0x530) && !defined(__STRICT_ANSI__)
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// check for exception handling support:
|
||||||
|
//
|
||||||
|
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// all versions have a <dirent.h>:
|
||||||
|
//
|
||||||
|
#ifndef __STRICT_ANSI__
|
||||||
|
# define BOOST_HAS_DIRENT_H
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// all versions support __declspec:
|
||||||
|
//
|
||||||
|
#if defined(__STRICT_ANSI__)
|
||||||
|
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||||
|
# define BOOST_SYMBOL_EXPORT
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// ABI fixing headers:
|
||||||
|
//
|
||||||
|
#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
|
||||||
|
#ifndef BOOST_ABI_PREFIX
|
||||||
|
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_ABI_SUFFIX
|
||||||
|
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Disable Win32 support in ANSI mode:
|
||||||
|
//
|
||||||
|
#if __BORLANDC__ < 0x600
|
||||||
|
# pragma defineonoption BOOST_DISABLE_WIN32 -A
|
||||||
|
#elif defined(__STRICT_ANSI__)
|
||||||
|
# define BOOST_DISABLE_WIN32
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// Borland did not implement value-initialization completely, as I reported
|
||||||
|
// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
|
||||||
|
// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
|
||||||
|
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||||
|
// (Niels Dekker, LKEB, April 2010)
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
|
|
@ -0,0 +1,327 @@
|
||||||
|
// (C) Copyright Douglas Gregor 2010
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Clang compiler setup.
|
||||||
|
|
||||||
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
|
||||||
|
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
|
||||||
|
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
|
||||||
|
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// When compiling with clang before __has_extension was defined,
|
||||||
|
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
|
||||||
|
// clang reports a compiler error. So the only workaround found is:
|
||||||
|
|
||||||
|
#ifndef __has_extension
|
||||||
|
#define __has_extension __has_feature
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __has_attribute
|
||||||
|
#define __has_attribute(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __has_cpp_attribute
|
||||||
|
#define __has_cpp_attribute(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
|
||||||
|
# define BOOST_NO_RTTI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
|
||||||
|
# define BOOST_NO_TYPEID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_thread_local)
|
||||||
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __is_identifier
|
||||||
|
#if !__is_identifier(__int64) && !defined(__GNUC__)
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __has_include(<stdint.h>)
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
|
||||||
|
// Branch prediction hints
|
||||||
|
#if !defined (__c2__) && defined(__has_builtin)
|
||||||
|
#if __has_builtin(__builtin_expect)
|
||||||
|
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||||
|
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang supports "long long" in all compilation modes.
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
|
||||||
|
//
|
||||||
|
// We disable this if the compiler is really nvcc with C++03 as it
|
||||||
|
// doesn't actually support __int128 as of CUDA_VERSION=7500
|
||||||
|
// even though it defines __SIZEOF_INT128__.
|
||||||
|
// See https://svn.boost.org/trac/boost/ticket/10418
|
||||||
|
// https://svn.boost.org/trac/boost/ticket/11852
|
||||||
|
// Only re-enable this for nvcc if you're absolutely sure
|
||||||
|
// of the circumstances under which it's supported.
|
||||||
|
// Similarly __SIZEOF_INT128__ is defined when targetting msvc
|
||||||
|
// compatibility even though the required support functions are absent.
|
||||||
|
//
|
||||||
|
#if defined(__CUDACC__)
|
||||||
|
# if defined(BOOST_GCC_CXX11)
|
||||||
|
# define BOOST_NVCC_CXX11
|
||||||
|
# else
|
||||||
|
# define BOOST_NVCC_CXX03
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03) && !defined(_MSC_VER)
|
||||||
|
# define BOOST_HAS_INT128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
|
//
|
||||||
|
#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
|
||||||
|
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
|
||||||
|
# define BOOST_SYMBOL_IMPORT
|
||||||
|
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
|
||||||
|
// between switch labels.
|
||||||
|
//
|
||||||
|
#if __cplusplus >= 201103L && defined(__has_warning)
|
||||||
|
# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
|
||||||
|
# define BOOST_FALLTHROUGH [[clang::fallthrough]]
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_auto_type)
|
||||||
|
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
|
||||||
|
//
|
||||||
|
#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||||
|
# define BOOST_NO_CXX11_CHAR16_T
|
||||||
|
# define BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1800) && !defined(__GNUC__)
|
||||||
|
#define BOOST_HAS_EXPM1
|
||||||
|
#define BOOST_HAS_LOG1P
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_constexpr)
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_decltype)
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_decltype_incomplete_return_types)
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_defaulted_functions)
|
||||||
|
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_deleted_functions)
|
||||||
|
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_explicit_conversions)
|
||||||
|
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_default_function_template_args)
|
||||||
|
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_generalized_initializers)
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_lambdas)
|
||||||
|
# define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_local_type_template_args)
|
||||||
|
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_noexcept)
|
||||||
|
# define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_nullptr)
|
||||||
|
# define BOOST_NO_CXX11_NULLPTR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_range_for)
|
||||||
|
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_raw_string_literals)
|
||||||
|
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_reference_qualified_functions)
|
||||||
|
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_generalized_initializers)
|
||||||
|
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_rvalue_references)
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_strong_enums)
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_static_assert)
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_alias_templates)
|
||||||
|
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_unicode_literals)
|
||||||
|
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_variadic_templates)
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_user_literals)
|
||||||
|
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_alignas)
|
||||||
|
# define BOOST_NO_CXX11_ALIGNAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_trailing_return)
|
||||||
|
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_inline_namespaces)
|
||||||
|
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_override_control)
|
||||||
|
# define BOOST_NO_CXX11_FINAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_decltype_auto__)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_aggregate_nsdmi__)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_init_captures__)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_generic_lambdas__)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// clang < 3.5 has a defect with dependent type, like following.
|
||||||
|
//
|
||||||
|
// template <class T>
|
||||||
|
// constexpr typename enable_if<pred<T> >::type foo(T &)
|
||||||
|
// { } // error: no return statement in constexpr function
|
||||||
|
//
|
||||||
|
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
|
||||||
|
// Therefore we don't care such case.
|
||||||
|
//
|
||||||
|
// Note that we can't check Clang version directly as the numbering system changes depending who's
|
||||||
|
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
|
||||||
|
// so instead verify that we have a feature that was introduced at the same time as working C++14
|
||||||
|
// constexpr (generic lambda's in this case):
|
||||||
|
//
|
||||||
|
#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_return_type_deduction__)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_variable_templates__)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang 3.9+ in c++1z
|
||||||
|
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __cplusplus < 201103L
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __cplusplus < 201400
|
||||||
|
// All versions with __cplusplus above this value seem to support this:
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// __builtin_unreachable:
|
||||||
|
#if defined(__has_builtin) && __has_builtin(__builtin_unreachable)
|
||||||
|
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__clang_major__ == 3) && (__clang_minor__ == 0)
|
||||||
|
// Apparently a clang bug:
|
||||||
|
# define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang has supported the 'unused' attribute since the first release.
|
||||||
|
#define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macro used to identify the Clang compiler.
|
||||||
|
#define BOOST_CLANG 1
|
||||||
|
|
|
@ -0,0 +1,235 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// CodeGear C++ compiler setup:
|
||||||
|
|
||||||
|
#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
|
||||||
|
// these warnings occur frequently in optimized template code
|
||||||
|
# pragma warn -8004 // var assigned value, but never used
|
||||||
|
# pragma warn -8008 // condition always true/false
|
||||||
|
# pragma warn -8066 // dead code can never execute
|
||||||
|
# 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)
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
|
# define BOOST_NO_PRIVATE_IN_AGGREGATE
|
||||||
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
|
// we shouldn't really need this - but too many things choke
|
||||||
|
// without it, this needs more investigation:
|
||||||
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
# define BOOST_SP_NO_SP_CONVERTIBLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// CodeGear C++ Builder 2010
|
||||||
|
#if (__CODEGEARC__ <= 0x621)
|
||||||
|
# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
|
||||||
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member
|
||||||
|
# define BOOST_NO_USING_TEMPLATE
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
// Temporary hack, until specific MPL preprocessed headers are generated
|
||||||
|
# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
|
||||||
|
|
||||||
|
// CodeGear has not yet completely implemented value-initialization, for
|
||||||
|
// example for array types, as I reported in 2010: Embarcadero Report 83751,
|
||||||
|
// "Value-initialization: arrays should have each element value-initialized",
|
||||||
|
// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
|
||||||
|
// Last checked version: Embarcadero C++ 6.21
|
||||||
|
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||||
|
// (Niels Dekker, LKEB, April 2010)
|
||||||
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
|
||||||
|
# if defined(NDEBUG) && defined(__cplusplus)
|
||||||
|
// fix broken <cstring> so that Boost.test works:
|
||||||
|
# include <cstring>
|
||||||
|
# undef strcmp
|
||||||
|
# endif
|
||||||
|
// fix broken errno declaration:
|
||||||
|
# include <errno.h>
|
||||||
|
# ifndef errno
|
||||||
|
# define errno errno
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Reportedly, #pragma once is supported since C++ Builder 2010
|
||||||
|
#if (__CODEGEARC__ >= 0x620)
|
||||||
|
# define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++0x macros:
|
||||||
|
//
|
||||||
|
#if (__CODEGEARC__ <= 0x620)
|
||||||
|
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#else
|
||||||
|
#define BOOST_HAS_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
#define BOOST_HAS_CHAR16_T
|
||||||
|
#define BOOST_HAS_CHAR32_T
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
// #define BOOST_HAS_ALIGNOF
|
||||||
|
#define BOOST_HAS_DECLTYPE
|
||||||
|
#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
|
||||||
|
// #define BOOST_HAS_RVALUE_REFS
|
||||||
|
#define BOOST_HAS_SCOPED_ENUM
|
||||||
|
// #define BOOST_HAS_STATIC_ASSERT
|
||||||
|
#define BOOST_HAS_STD_TYPE_TRAITS
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
#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_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// TR1 macros:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_TR1_HASH
|
||||||
|
#define BOOST_HAS_TR1_TYPE_TRAITS
|
||||||
|
#define BOOST_HAS_TR1_UNORDERED_MAP
|
||||||
|
#define BOOST_HAS_TR1_UNORDERED_SET
|
||||||
|
|
||||||
|
#define BOOST_HAS_MACRO_USE_FACET
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
// check for exception handling support:
|
||||||
|
//
|
||||||
|
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// all versions have a <dirent.h>:
|
||||||
|
//
|
||||||
|
#if !defined(__STRICT_ANSI__)
|
||||||
|
# define BOOST_HAS_DIRENT_H
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// all versions support __declspec:
|
||||||
|
//
|
||||||
|
#if defined(__STRICT_ANSI__)
|
||||||
|
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
|
||||||
|
# define BOOST_SYMBOL_EXPORT
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// ABI fixing headers:
|
||||||
|
//
|
||||||
|
#ifndef BOOST_ABI_PREFIX
|
||||||
|
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_ABI_SUFFIX
|
||||||
|
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
|
||||||
|
#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
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
// (C) Copyright John Maddock 2001.
|
||||||
|
// (C) Copyright Douglas Gregor 2001.
|
||||||
|
// (C) Copyright Peter Dimov 2001.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2003.
|
||||||
|
// (C) Copyright Beman Dawes 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Comeau C++ compiler setup:
|
||||||
|
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
|
#if (__COMO_VERSION__ <= 4245)
|
||||||
|
|
||||||
|
# if defined(_MSC_VER) && _MSC_VER <= 1300
|
||||||
|
# if _MSC_VER > 100
|
||||||
|
// only set this in non-strict mode:
|
||||||
|
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Void returns don't work when emulating VC 6 (Peter Dimov)
|
||||||
|
// TODO: look up if this doesn't apply to the whole 12xx range
|
||||||
|
# if defined(_MSC_VER) && (_MSC_VER < 1300)
|
||||||
|
# define BOOST_NO_VOID_RETURNS
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif // version 4245
|
||||||
|
|
||||||
|
//
|
||||||
|
// enable __int64 support in VC emulation mode
|
||||||
|
//
|
||||||
|
# if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Comeau compiler version " BOOST_STRINGIZE(__COMO_VERSION__)
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't know Comeau prior to version 4245:
|
||||||
|
#if __COMO_VERSION__ < 4245
|
||||||
|
# error "Compiler not configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,156 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
|
// (C) Copyright Jens Maurer 2001.
|
||||||
|
// (C) Copyright David Abrahams 2002.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
|
// (C) Copyright Markus Schoepflin 2005.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
//
|
||||||
|
// Options common to all edg based compilers.
|
||||||
|
//
|
||||||
|
// This is included from within the individual compiler mini-configs.
|
||||||
|
|
||||||
|
#ifndef __EDG_VERSION__
|
||||||
|
# error This file requires that __EDG_VERSION__ be defined.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__EDG_VERSION__ <= 238)
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# define BOOST_NO_SFINAE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__EDG_VERSION__ <= 240)
|
||||||
|
# define BOOST_NO_VOID_RETURNS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
|
||||||
|
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
|
||||||
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
||||||
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// See also kai.hpp which checks a Kai-specific symbol for EH
|
||||||
|
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if !defined(__NO_LONG_LONG)
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
# else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Not sure what version was the first to support #pragma once, but
|
||||||
|
// different EDG-based compilers (e.g. Intel) supported it for ages.
|
||||||
|
// Add a proper version check if it causes problems.
|
||||||
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
// See above for BOOST_NO_LONG_LONG
|
||||||
|
//
|
||||||
|
#if (__EDG_VERSION__ < 310)
|
||||||
|
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
#endif
|
||||||
|
#if (__EDG_VERSION__ <= 310)
|
||||||
|
// No support for initializer lists
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#endif
|
||||||
|
#if (__EDG_VERSION__ < 400)
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef c_plusplus
|
||||||
|
// EDG has "long long" in non-strict mode
|
||||||
|
// However, some libraries have insufficient "long long" support
|
||||||
|
// #define BOOST_HAS_LONG_LONG
|
||||||
|
#endif
|
|
@ -0,0 +1,19 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Tru64 C++ compiler setup (now HP):
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
|
||||||
|
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// Nothing to do here?
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
// (C) Copyright John Maddock 2011.
|
||||||
|
// (C) Copyright Cray, Inc. 2013
|
||||||
|
// 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:
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
|
||||||
|
|
||||||
|
#if _RELEASE < 8
|
||||||
|
# error "Boost is not configured for Cray compilers prior to version 8, please try the configure script."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Check this is a recent EDG based compiler, otherwise we don't support it here:
|
||||||
|
//
|
||||||
|
#ifndef __EDG_VERSION__
|
||||||
|
# error "Unsupported Cray compiler, please try running the configure script."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
//
|
||||||
|
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#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_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_REF_QUALIFIERS
|
||||||
|
#define BOOST_NO_CXX11_FINAL
|
||||||
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
|
||||||
|
|
||||||
|
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||||
|
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||||
|
//#define BOOST_HAS_FPCLASSIFY
|
||||||
|
|
||||||
|
#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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
//#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.
|
||||||
|
|
||||||
|
#ifndef __ATOMIC_RELAXED
|
||||||
|
#define __ATOMIC_RELAXED 0
|
||||||
|
#define __ATOMIC_CONSUME 1
|
||||||
|
#define __ATOMIC_ACQUIRE 2
|
||||||
|
#define __ATOMIC_RELEASE 3
|
||||||
|
#define __ATOMIC_ACQ_REL 4
|
||||||
|
#define __ATOMIC_SEQ_CST 5
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
// (C) Copyright Brian Kuhl 2016.
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Check this is a recent EDG based compiler, otherwise we don't support it here:
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __EDG_VERSION__
|
||||||
|
# error "Unknown Diab compiler version - please run the configure tests and report the results"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "boost/config/compiler/common_edg.hpp"
|
||||||
|
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
#define BOOST_COMPILER "Wind River Diab " BOOST_STRINGIZE(__VERSION_NUMBER__)
|
|
@ -0,0 +1,137 @@
|
||||||
|
// Copyright (C) Christof Meerwald 2003
|
||||||
|
// Copyright (C) Dan Watkins 2003
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Digital Mars C++ compiler setup:
|
||||||
|
#define BOOST_COMPILER __DMC_VERSION_STRING__
|
||||||
|
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
|
||||||
|
#if !defined(BOOST_STRICT_CONFIG)
|
||||||
|
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
#define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
|
#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
|
#define BOOST_NO_SFINAE
|
||||||
|
#define BOOST_NO_USING_TEMPLATE
|
||||||
|
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// has macros:
|
||||||
|
#define BOOST_HAS_DIRENT_H
|
||||||
|
#define BOOST_HAS_STDINT_H
|
||||||
|
#define BOOST_HAS_WINTHREADS
|
||||||
|
|
||||||
|
#if (__DMC__ >= 0x847)
|
||||||
|
#define BOOST_HAS_EXPM1
|
||||||
|
#define BOOST_HAS_LOG1P
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Is this really the best way to detect whether the std lib is in namespace std?
|
||||||
|
//
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include <cstddef>
|
||||||
|
#endif
|
||||||
|
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// check for exception handling support:
|
||||||
|
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
#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_EXTERN_TEMPLATE
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__DMC__ <= 0x840)
|
||||||
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
|
@ -0,0 +1,351 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Darin Adler 2001 - 2002.
|
||||||
|
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||||
|
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||||
|
// (C) Copyright Douglas Gregor 2002.
|
||||||
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
|
// (C) Copyright Synge Todo 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// GNU C++ compiler setup.
|
||||||
|
|
||||||
|
//
|
||||||
|
// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
|
||||||
|
//
|
||||||
|
#define BOOST_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||||
|
#if !defined(__CUDACC__)
|
||||||
|
#define BOOST_GCC BOOST_GCC_VERSION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103L)
|
||||||
|
# define BOOST_GCC_CXX11
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __GNUC__ == 3
|
||||||
|
# if defined (__PATHSCALE__)
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if __GNUC_MINOR__ < 4
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
# endif
|
||||||
|
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
#endif
|
||||||
|
#if __GNUC__ < 4
|
||||||
|
//
|
||||||
|
// All problems to gcc-3.x and earlier here:
|
||||||
|
//
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
# ifdef __OPEN64__
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// GCC prior to 3.4 had #pragma once too but it didn't work well with filesystem links
|
||||||
|
#if BOOST_GCC_VERSION >= 30400
|
||||||
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if BOOST_GCC_VERSION < 40400
|
||||||
|
// Previous versions of GCC did not completely implement value-initialization:
|
||||||
|
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
|
||||||
|
// members", reported by Jonathan Wakely in 2006,
|
||||||
|
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
|
||||||
|
// GCC Bug 33916, "Default constructor fails to initialize array members",
|
||||||
|
// reported by Michael Elizabeth Chastain in 2007,
|
||||||
|
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
|
||||||
|
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Threading support: Turn this on unconditionally here (except for
|
||||||
|
// those platforms where we can know for sure). It will get turned off again
|
||||||
|
// later if no threading API is detected.
|
||||||
|
//
|
||||||
|
#if !defined(__MINGW32__) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// gcc has "long long"
|
||||||
|
// Except on Darwin with standard compliance enabled (-pedantic)
|
||||||
|
// Apple gcc helpfully defines this macro we can query
|
||||||
|
//
|
||||||
|
#if !defined(__DARWIN_NO_LONG_LONG)
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// gcc implements the named return value optimization since version 3.1
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
|
||||||
|
// Branch prediction hints
|
||||||
|
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||||
|
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
|
//
|
||||||
|
#if __GNUC__ >= 4
|
||||||
|
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
|
||||||
|
// All Win32 development environments, including 64-bit Windows and MinGW, define
|
||||||
|
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
|
||||||
|
// so does not define _WIN32 or its variants.
|
||||||
|
# define BOOST_HAS_DECLSPEC
|
||||||
|
# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
|
||||||
|
# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
|
||||||
|
# else
|
||||||
|
# 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
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// RTTI and typeinfo detection is possible post gcc-4.3:
|
||||||
|
//
|
||||||
|
#if BOOST_GCC_VERSION > 40300
|
||||||
|
# ifndef __GXX_RTTI
|
||||||
|
# ifndef BOOST_NO_TYPEID
|
||||||
|
# define BOOST_NO_TYPEID
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_NO_RTTI
|
||||||
|
# define BOOST_NO_RTTI
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Recent GCC versions have __int128 when in 64-bit mode.
|
||||||
|
//
|
||||||
|
// We disable this if the compiler is really nvcc with C++03 as it
|
||||||
|
// doesn't actually support __int128 as of CUDA_VERSION=7500
|
||||||
|
// even though it defines __SIZEOF_INT128__.
|
||||||
|
// See https://svn.boost.org/trac/boost/ticket/8048
|
||||||
|
// https://svn.boost.org/trac/boost/ticket/11852
|
||||||
|
// Only re-enable this for nvcc if you're absolutely sure
|
||||||
|
// of the circumstances under which it's supported:
|
||||||
|
//
|
||||||
|
#if defined(__CUDACC__)
|
||||||
|
# if defined(BOOST_GCC_CXX11)
|
||||||
|
# define BOOST_NVCC_CXX11
|
||||||
|
# else
|
||||||
|
# define BOOST_NVCC_CXX03
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SIZEOF_INT128__) && !defined(BOOST_NVCC_CXX03)
|
||||||
|
# define BOOST_HAS_INT128
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Recent GCC versions have a __float128 native type, we need to
|
||||||
|
// include a std lib header to detect this - not ideal, but we'll
|
||||||
|
// be including <cstddef> later anyway when we select the std lib.
|
||||||
|
//
|
||||||
|
// Nevertheless, as of CUDA 7.5, using __float128 with the host
|
||||||
|
// compiler in pre-C++11 mode is still not supported.
|
||||||
|
// See https://svn.boost.org/trac/boost/ticket/11852
|
||||||
|
//
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include <cstddef>
|
||||||
|
#else
|
||||||
|
#include <stddef.h>
|
||||||
|
#endif
|
||||||
|
#if defined(_GLIBCXX_USE_FLOAT128) && !defined(__STRICT_ANSI__) && !defined(BOOST_NVCC_CXX03)
|
||||||
|
# define BOOST_HAS_FLOAT128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in 4.3.n and later
|
||||||
|
//
|
||||||
|
#if (BOOST_GCC_VERSION >= 40300) && defined(BOOST_GCC_CXX11)
|
||||||
|
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
|
||||||
|
// passed on the command line, which in turn defines
|
||||||
|
// __GXX_EXPERIMENTAL_CXX0X__.
|
||||||
|
# define BOOST_HAS_DECLTYPE
|
||||||
|
# define BOOST_HAS_RVALUE_REFS
|
||||||
|
# define BOOST_HAS_STATIC_ASSERT
|
||||||
|
# define BOOST_HAS_VARIADIC_TMPL
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in 4.4.n and later
|
||||||
|
//
|
||||||
|
#if (BOOST_GCC_VERSION < 40400) || !defined(BOOST_GCC_CXX11)
|
||||||
|
# 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_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if BOOST_GCC_VERSION < 40500
|
||||||
|
# define BOOST_NO_SFINAE_EXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// GCC 4.5 forbids declaration of defaulted functions in private or protected sections
|
||||||
|
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ == 5) || !defined(BOOST_GCC_CXX11)
|
||||||
|
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in 4.5.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_GCC_VERSION < 40500) || !defined(BOOST_GCC_CXX11)
|
||||||
|
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
# define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in 4.5.1 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_GCC_VERSION < 40501) || !defined(BOOST_GCC_CXX11)
|
||||||
|
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
|
||||||
|
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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_NOEXCEPT
|
||||||
|
#define BOOST_NO_CXX11_NULLPTR
|
||||||
|
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in 4.7.n and later
|
||||||
|
//
|
||||||
|
#if (BOOST_GCC_VERSION < 40700) || !defined(BOOST_GCC_CXX11)
|
||||||
|
# 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
|
||||||
|
#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
|
||||||
|
|
||||||
|
// C++0x features in 4.8.1 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_GCC_VERSION < 40801) || !defined(BOOST_GCC_CXX11)
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features in 4.9.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_GCC_VERSION < 40900) || (__cplusplus < 201300)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
# if !((BOOST_GCC_VERSION >= 40801) && (BOOST_GCC_VERSION < 40900) && defined(BOOST_GCC_CXX11))
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#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
|
||||||
|
// https://sourceforge.net/p/mingw-w64/bugs/527/
|
||||||
|
// Not setting this causes program termination on thread exit.
|
||||||
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Unused attribute:
|
||||||
|
#if __GNUC__ >= 4
|
||||||
|
# define BOOST_ATTRIBUTE_UNUSED __attribute__((__unused__))
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// __builtin_unreachable:
|
||||||
|
#if BOOST_GCC_VERSION >= 40800
|
||||||
|
#define BOOST_UNREACHABLE_RETURN(x) __builtin_unreachable();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ConceptGCC compiler:
|
||||||
|
// http://www.generic-programming.org/software/ConceptGCC/
|
||||||
|
#ifdef __GXX_CONCEPTS__
|
||||||
|
# define BOOST_HAS_CONCEPTS
|
||||||
|
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// versions check:
|
||||||
|
// we don't know gcc prior to version 3.30:
|
||||||
|
#if (BOOST_GCC_VERSION< 30300)
|
||||||
|
# error "Compiler not configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// last known and checked version is 4.9:
|
||||||
|
#if (BOOST_GCC_VERSION > 40900)
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,108 @@
|
||||||
|
// (C) Copyright John Maddock 2006.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// GCC-XML C++ compiler setup:
|
||||||
|
|
||||||
|
# if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Threading support: Turn this on unconditionally here (except for
|
||||||
|
// those platforms where we can know for sure). It will get turned off again
|
||||||
|
// later if no threading API is detected.
|
||||||
|
//
|
||||||
|
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// gcc has "long long"
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
|
||||||
|
// C++0x features:
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
# define BOOST_NO_CXX11_NULLPTR
|
||||||
|
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
# 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_DEFAULTED_FUNCTIONS
|
||||||
|
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
# define BOOST_NO_SFINAE_EXPR
|
||||||
|
# define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
# define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
# define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
# 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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
// (C) Copyright John Maddock 2001.
|
||||||
|
// 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:
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Greenhills C++ version " BOOST_STRINGIZE(__ghs)
|
||||||
|
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support Greenhills prior to version 0:
|
||||||
|
#if __ghs < 0
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,147 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
|
// (C) Copyright Toon Knapen 2003.
|
||||||
|
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// HP aCC C++ compiler setup:
|
||||||
|
|
||||||
|
#if defined(__EDG__)
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__HP_aCC <= 33100)
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# define BOOST_NO_OPERATORS_IN_NAMESPACE
|
||||||
|
# if !defined(_NAMESPACE_STD)
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
# define BOOST_NO_STRINGSTREAM
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__HP_aCC <= 33300)
|
||||||
|
// member templates are sufficiently broken that we disable them for now
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATES
|
||||||
|
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
|
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__HP_aCC <= 38000)
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
|
||||||
|
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// optional features rather than defects:
|
||||||
|
#if (__HP_aCC >= 33900)
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__HP_aCC >= 50000 ) && (__HP_aCC <= 53800 ) || (__HP_aCC < 31300 )
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// This macro should not be defined when compiling in strict ansi
|
||||||
|
// mode, but, currently, we don't have the ability to determine
|
||||||
|
// what standard mode we are compiling with. Some future version
|
||||||
|
// of aCC6 compiler will provide predefined macros reflecting the
|
||||||
|
// compilation options, including the standard mode.
|
||||||
|
#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support HP aCC prior to version 33000:
|
||||||
|
#if __HP_aCC < 33000
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Extended checks for supporting aCC on PA-RISC
|
||||||
|
#if __HP_aCC > 30000 && __HP_aCC < 50000
|
||||||
|
# if __HP_aCC < 38000
|
||||||
|
// versions prior to version A.03.80 not supported
|
||||||
|
# error "Compiler version not supported - version A.03.80 or higher is required"
|
||||||
|
# elif !defined(__hpxstd98)
|
||||||
|
// must compile using the option +hpxstd98 with version A.03.80 and above
|
||||||
|
# error "Compiler option '+hpxstd98' is required for proper support"
|
||||||
|
# endif //PA-RISC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
|
//
|
||||||
|
#if !defined(__EDG__)
|
||||||
|
|
||||||
|
#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_EXTERN_TEMPLATE
|
||||||
|
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#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_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_THREAD_LOCAL
|
||||||
|
|
||||||
|
/*
|
||||||
|
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
|
||||||
|
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// last known and checked version for HP-UX/ia64 is 61300
|
||||||
|
// 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
|
@ -0,0 +1,557 @@
|
||||||
|
// (C) Copyright John Maddock 2001-8.
|
||||||
|
// (C) Copyright Peter Dimov 2001.
|
||||||
|
// (C) Copyright Jens Maurer 2001.
|
||||||
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||||
|
// (C) Copyright Guillaume Melquiond 2002 - 2003.
|
||||||
|
// (C) Copyright Beman Dawes 2003.
|
||||||
|
// (C) Copyright Martin Wille 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Intel compiler setup:
|
||||||
|
|
||||||
|
#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
|
||||||
|
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
|
||||||
|
#include <boost/config/compiler/visualc.hpp>
|
||||||
|
|
||||||
|
#undef BOOST_MSVC
|
||||||
|
#undef BOOST_MSVC_FULL_VER
|
||||||
|
|
||||||
|
#if (__INTEL_COMPILER >= 1500) && (_MSC_VER >= 1900)
|
||||||
|
//
|
||||||
|
// These appear to be supported, even though VC++ may not support them:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_EXPM1
|
||||||
|
#define BOOST_HAS_LOG1P
|
||||||
|
#undef BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
// This one may be a little risky to enable??
|
||||||
|
#undef BOOST_NO_SFINAE_EXPR
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__INTEL_COMPILER <= 1600) && !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else // defined(_MSC_VER)
|
||||||
|
|
||||||
|
#include <boost/config/compiler/gcc.hpp>
|
||||||
|
|
||||||
|
#undef BOOST_GCC_VERSION
|
||||||
|
#undef BOOST_GCC_CXX11
|
||||||
|
|
||||||
|
// 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
|
||||||
|
|
||||||
|
#endif // defined(_MSC_VER)
|
||||||
|
|
||||||
|
#undef BOOST_COMPILER
|
||||||
|
|
||||||
|
#if defined(__INTEL_COMPILER)
|
||||||
|
#if __INTEL_COMPILER == 9999
|
||||||
|
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
|
||||||
|
#else
|
||||||
|
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
|
||||||
|
#endif
|
||||||
|
#elif defined(__ICL)
|
||||||
|
# define BOOST_INTEL_CXX_VERSION __ICL
|
||||||
|
#elif defined(__ICC)
|
||||||
|
# define BOOST_INTEL_CXX_VERSION __ICC
|
||||||
|
#elif defined(__ECC)
|
||||||
|
# define BOOST_INTEL_CXX_VERSION __ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
|
||||||
|
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
|
# define BOOST_INTEL_STDCXX0X
|
||||||
|
#endif
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||||
|
# define BOOST_INTEL_STDCXX0X
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(BOOST_COMPILER)
|
||||||
|
# if defined(BOOST_INTEL_STDCXX0X)
|
||||||
|
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||||
|
# else
|
||||||
|
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||||
|
|
||||||
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
|
# define BOOST_INTEL_WIN BOOST_INTEL
|
||||||
|
#else
|
||||||
|
# define BOOST_INTEL_LINUX BOOST_INTEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
|
||||||
|
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
|
#if defined(__INTEL_COMPILER)
|
||||||
|
#if __INTEL_COMPILER == 9999
|
||||||
|
# define BOOST_INTEL_CXX_VERSION 1200 // Intel bug in 12.1.
|
||||||
|
#else
|
||||||
|
# define BOOST_INTEL_CXX_VERSION __INTEL_COMPILER
|
||||||
|
#endif
|
||||||
|
#elif defined(__ICL)
|
||||||
|
# define BOOST_INTEL_CXX_VERSION __ICL
|
||||||
|
#elif defined(__ICC)
|
||||||
|
# define BOOST_INTEL_CXX_VERSION __ICC
|
||||||
|
#elif defined(__ECC)
|
||||||
|
# define BOOST_INTEL_CXX_VERSION __ECC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
|
||||||
|
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__) || defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||||
|
# define BOOST_INTEL_STDCXX0X
|
||||||
|
#endif
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||||
|
# define BOOST_INTEL_STDCXX0X
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
# define BOOST_INTEL_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(BOOST_COMPILER)
|
||||||
|
# if defined(BOOST_INTEL_STDCXX0X)
|
||||||
|
# define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||||
|
# else
|
||||||
|
# define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||||
|
|
||||||
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
|
# define BOOST_INTEL_WIN BOOST_INTEL
|
||||||
|
#else
|
||||||
|
# define BOOST_INTEL_LINUX BOOST_INTEL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION <= 600)
|
||||||
|
|
||||||
|
# if defined(_MSC_VER) && (_MSC_VER <= 1300) // added check for <= VC 7 (Peter Dimov)
|
||||||
|
|
||||||
|
// Boost libraries assume strong standard conformance unless otherwise
|
||||||
|
// indicated by a config macro. As configured by Intel, the EDG front-end
|
||||||
|
// requires certain compiler options be set to achieve that strong conformance.
|
||||||
|
// Particularly /Qoption,c,--arg_dep_lookup (reported by Kirk Klobe & Thomas Witt)
|
||||||
|
// and /Zc:wchar_t,forScope. See boost-root/tools/build/intel-win32-tools.jam for
|
||||||
|
// details as they apply to particular versions of the compiler. When the
|
||||||
|
// compiler does not predefine a macro indicating if an option has been set,
|
||||||
|
// this config file simply assumes the option has been set.
|
||||||
|
// Thus BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP will not be defined, even if
|
||||||
|
// the compiler option is not enabled.
|
||||||
|
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// Void returns, 64 bit integrals don't work when emulating VC 6 (Peter Dimov)
|
||||||
|
|
||||||
|
# if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
||||||
|
# define BOOST_NO_VOID_RETURNS
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION <= 710) && defined(_WIN32)
|
||||||
|
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// See http://aspn.activestate.com/ASPN/Mail/Message/boost/1614864
|
||||||
|
#if BOOST_INTEL_CXX_VERSION < 600
|
||||||
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
#else
|
||||||
|
// We should test the macro _WCHAR_T_DEFINED to check if the compiler
|
||||||
|
// supports wchar_t natively. *BUT* there is a problem here: the standard
|
||||||
|
// headers define this macro if they typedef wchar_t. Anyway, we're lucky
|
||||||
|
// because they define it without a value, while Intel C++ defines it
|
||||||
|
// to 1. So we can check its value to see if the macro was defined natively
|
||||||
|
// or not.
|
||||||
|
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
|
||||||
|
// is used instead.
|
||||||
|
# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
|
||||||
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
|
||||||
|
//
|
||||||
|
// Figure out when Intel is emulating this gcc bug
|
||||||
|
// (All Intel versions prior to 9.0.26, and versions
|
||||||
|
// later than that if they are set up to emulate gcc 3.2
|
||||||
|
// or earlier):
|
||||||
|
//
|
||||||
|
# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
|
||||||
|
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#if (defined(__GNUC__) && (__GNUC__ < 4)) || (defined(_WIN32) && (BOOST_INTEL_CXX_VERSION <= 1200)) || (BOOST_INTEL_CXX_VERSION <= 1200)
|
||||||
|
// GCC or VC emulation:
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
// set correctly, if we don't do this now, we will get errors later
|
||||||
|
// in type_traits code among other things, getting this correct
|
||||||
|
// for the Intel compiler is actually remarkably fragile and tricky:
|
||||||
|
//
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
||||||
|
#include <cwchar>
|
||||||
|
template< typename T > struct assert_no_intrinsic_wchar_t;
|
||||||
|
template<> struct assert_no_intrinsic_wchar_t<wchar_t> { typedef void type; };
|
||||||
|
// if you see an error here then you need to unset BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
// where it is defined above:
|
||||||
|
typedef assert_no_intrinsic_wchar_t<unsigned short>::type assert_no_intrinsic_wchar_t_;
|
||||||
|
#else
|
||||||
|
template< typename T > struct assert_intrinsic_wchar_t;
|
||||||
|
template<> struct assert_intrinsic_wchar_t<wchar_t> {};
|
||||||
|
// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
|
||||||
|
template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
|
||||||
|
# if _MSC_VER >= 1200
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
# endif
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#elif defined(_WIN32)
|
||||||
|
# define BOOST_DISABLE_WIN32
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// I checked version 6.0 build 020312Z, it implements the NRVO.
|
||||||
|
// Correct this as you find out which version of the compiler
|
||||||
|
// implemented the NRVO first. (Daniel Frey)
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 600)
|
||||||
|
# define BOOST_HAS_NRVO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Branch prediction hints
|
||||||
|
// I'm not sure 8.0 was the first version to support these builtins,
|
||||||
|
// update the condition if the version is not accurate. (Andrey Semashev)
|
||||||
|
#if defined(__GNUC__) && BOOST_INTEL_CXX_VERSION >= 800
|
||||||
|
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||||
|
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// RTTI
|
||||||
|
// __RTTI is the EDG macro
|
||||||
|
// __INTEL_RTTI__ is the Intel macro
|
||||||
|
// __GXX_RTTI is the g++ macro
|
||||||
|
// _CPPRTTI is the MSVC++ macro
|
||||||
|
#if !defined(__RTTI) && !defined(__INTEL_RTTI__) && !defined(__GXX_RTTI) && !defined(_CPPRTTI)
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_RTTI)
|
||||||
|
# define BOOST_NO_RTTI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// in MS mode, static typeid works even when RTTI is off
|
||||||
|
#if !defined(_MSC_VER) && !defined(BOOST_NO_TYPEID)
|
||||||
|
# define BOOST_NO_TYPEID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support Intel prior to version 6.0:
|
||||||
|
#if BOOST_INTEL_CXX_VERSION < 600
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Intel on MacOS requires
|
||||||
|
#if defined(__APPLE__) && defined(__INTEL_COMPILER)
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Intel on Altix Itanium
|
||||||
|
#if defined(__itanium__) && defined(__INTEL_COMPILER)
|
||||||
|
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// An attempt to value-initialize a pointer-to-member may trigger an
|
||||||
|
// internal error on Intel <= 11.1 (last checked version), as was
|
||||||
|
// reported by John Maddock, Intel support issue 589832, May 2010.
|
||||||
|
// Moreover, according to test results from Huang-Vista-x86_32_intel,
|
||||||
|
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
|
||||||
|
// cases when it should be value-initialized.
|
||||||
|
// (Niels Dekker, LKEB, May 2010)
|
||||||
|
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
|
||||||
|
#if defined(__INTEL_COMPILER)
|
||||||
|
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999) || (defined(_WIN32) && (__INTEL_COMPILER < 1600))
|
||||||
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
|
//
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||||
|
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
|
||||||
|
# define BOOST_SYMBOL_IMPORT
|
||||||
|
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
// For each feature we need to check both the Intel compiler version,
|
||||||
|
// and the version of MSVC or GCC that we are emulating.
|
||||||
|
// See http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||||
|
// for a list of which features were implemented in which Intel releases.
|
||||||
|
//
|
||||||
|
#if defined(BOOST_INTEL_STDCXX0X)
|
||||||
|
// BOOST_NO_CXX11_CONSTEXPR:
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && !defined(_MSC_VER)
|
||||||
|
// Available in earlier Intel versions, but fail our tests:
|
||||||
|
# undef BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
// BOOST_NO_CXX11_NULLPTR:
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||||
|
# undef BOOST_NO_CXX11_NULLPTR
|
||||||
|
#endif
|
||||||
|
// BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1210) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
# undef BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||||
|
# undef BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
# undef BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1300) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||||
|
// This is available from earlier Intel versions, but breaks Filesystem and other libraries:
|
||||||
|
# undef BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1110) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40300)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||||
|
# undef BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40200)) && (!defined(_MSC_VER) || (_MSC_VER >= 1400))
|
||||||
|
# undef BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||||
|
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||||
|
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_CHAR16_T
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||||
|
# undef BOOST_NO_CXX11_CHAR16_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||||
|
# undef BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
# undef BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
|
||||||
|
# undef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40501)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
|
||||||
|
// This is available but broken in earlier Intel releases.
|
||||||
|
# undef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_SFINAE_EXPR
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||||
|
# undef BOOST_NO_SFINAE_EXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && !defined(_MSC_VER)
|
||||||
|
# undef BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
// This is available in earlier Intel releases, but breaks Multiprecision:
|
||||||
|
# undef BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_LAMBDAS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 1600))
|
||||||
|
# undef BOOST_NO_CXX11_LAMBDAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500))
|
||||||
|
# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 1700))
|
||||||
|
# undef BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
# undef BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40500)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||||
|
# undef BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||||
|
// Available in earlier Intel release, but generates errors when used with
|
||||||
|
// conditional exception specifications, for example in multiprecision:
|
||||||
|
# undef BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40600)) && (!defined(_MSC_VER) || (_MSC_VER >= 9999))
|
||||||
|
# undef BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40700)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
|
||||||
|
# undef BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_ALIGNAS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1500) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
|
||||||
|
# undef BOOST_NO_CXX11_ALIGNAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1200) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 180020827))
|
||||||
|
# undef BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40400)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
|
||||||
|
# undef BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION >= 1400) && (!defined(BOOST_INTEL_GCC_VERSION) || (BOOST_INTEL_GCC_VERSION >= 40800)) && (!defined(_MSC_VER) || (_MSC_FULL_VER >= 190021730))
|
||||||
|
# undef BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_FINAL
|
||||||
|
#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
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // defined(BOOST_INTEL_STDCXX0X)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Broken in all versions up to 15:
|
||||||
|
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
|
||||||
|
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION <= 1310)
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION == 1400)
|
||||||
|
// A regression in Intel's compiler means that <tuple> seems to be broken in this release as well as <future> :
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION < 1200)
|
||||||
|
//
|
||||||
|
// fenv.h appears not to work with Intel prior to 12.0:
|
||||||
|
//
|
||||||
|
# define BOOST_NO_FENV_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Intel 13.10 fails to access defaulted functions of a base class declared in private or protected sections,
|
||||||
|
// producing the following errors:
|
||||||
|
// error #453: protected function "..." (declared at ...") is not accessible through a "..." pointer or object
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION <= 1310)
|
||||||
|
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__CUDACC__)
|
||||||
|
# if defined(BOOST_GCC_CXX11)
|
||||||
|
# define BOOST_NVCC_CXX11
|
||||||
|
# else
|
||||||
|
# define BOOST_NVCC_CXX03
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__LP64__) && defined(__GNUC__) && (BOOST_INTEL_CXX_VERSION >= 1310) && !defined(BOOST_NVCC_CXX03)
|
||||||
|
# define BOOST_HAS_INT128
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1500) && (defined(_MSC_VER) || defined(__GNUC__))
|
||||||
|
//
|
||||||
|
// last known and checked version:
|
||||||
|
#if (BOOST_INTEL_CXX_VERSION > 1700)
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# elif defined(_MSC_VER)
|
||||||
|
//
|
||||||
|
// 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")
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
// (C) Copyright John Maddock 2001.
|
||||||
|
// (C) Copyright David Abrahams 2002.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Kai C++ compiler setup:
|
||||||
|
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
|
# if (__KCC_VERSION <= 4001) || !defined(BOOST_STRICT_CONFIG)
|
||||||
|
// at least on Sun, the contents of <cwchar> is not in namespace std
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// see also common_edg.hpp which needs a special check for __KCC
|
||||||
|
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
# endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,192 @@
|
||||||
|
// (C) Copyright John Maddock 2001.
|
||||||
|
// (C) Copyright Darin Adler 2001.
|
||||||
|
// (C) Copyright Peter Dimov 2001.
|
||||||
|
// (C) Copyright David Abrahams 2001 - 2002.
|
||||||
|
// (C) Copyright Beman Dawes 2001 - 2003.
|
||||||
|
// (C) Copyright Stefan Slapeta 2004.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Metrowerks C++ compiler setup:
|
||||||
|
|
||||||
|
// locale support is disabled when linking with the dynamic runtime
|
||||||
|
# ifdef _MSL_NO_LOCALE
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if __MWERKS__ <= 0x2301 // 5.3
|
||||||
|
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
# define BOOST_NO_POINTER_TO_MEMBER_CONST
|
||||||
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if __MWERKS__ <= 0x2401 // 6.2
|
||||||
|
//# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if(__MWERKS__ <= 0x2407) // 7.x
|
||||||
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
|
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if(__MWERKS__ <= 0x3003) // 8.x
|
||||||
|
# define BOOST_NO_SFINAE
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
|
||||||
|
// tested version *only*:
|
||||||
|
# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#if !__option(wchar_type)
|
||||||
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__INTEL__ && _WIN32) || (__POWERPC__ && macintosh)
|
||||||
|
# if __MWERKS__ == 0x3000
|
||||||
|
# define BOOST_COMPILER_VERSION 8.0
|
||||||
|
# elif __MWERKS__ == 0x3001
|
||||||
|
# define BOOST_COMPILER_VERSION 8.1
|
||||||
|
# elif __MWERKS__ == 0x3002
|
||||||
|
# define BOOST_COMPILER_VERSION 8.2
|
||||||
|
# elif __MWERKS__ == 0x3003
|
||||||
|
# define BOOST_COMPILER_VERSION 8.3
|
||||||
|
# elif __MWERKS__ == 0x3200
|
||||||
|
# define BOOST_COMPILER_VERSION 9.0
|
||||||
|
# elif __MWERKS__ == 0x3201
|
||||||
|
# define BOOST_COMPILER_VERSION 9.1
|
||||||
|
# elif __MWERKS__ == 0x3202
|
||||||
|
# define BOOST_COMPILER_VERSION 9.2
|
||||||
|
# elif __MWERKS__ == 0x3204
|
||||||
|
# define BOOST_COMPILER_VERSION 9.3
|
||||||
|
# elif __MWERKS__ == 0x3205
|
||||||
|
# define BOOST_COMPILER_VERSION 9.4
|
||||||
|
# elif __MWERKS__ == 0x3206
|
||||||
|
# define BOOST_COMPILER_VERSION 9.5
|
||||||
|
# elif __MWERKS__ == 0x3207
|
||||||
|
# define BOOST_COMPILER_VERSION 9.6
|
||||||
|
# else
|
||||||
|
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define BOOST_COMPILER_VERSION __MWERKS__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
|
//
|
||||||
|
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
|
||||||
|
# define BOOST_HAS_RVALUE_REFS
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#endif
|
||||||
|
#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_EXTERN_TEMPLATE
|
||||||
|
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#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_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_VARIADIC_MACROS
|
||||||
|
#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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support Metrowerks prior to version 5.3:
|
||||||
|
#if __MWERKS__ < 0x2301
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,134 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// MPW C++ compilers setup:
|
||||||
|
|
||||||
|
# if defined(__SC__)
|
||||||
|
# define BOOST_COMPILER "MPW SCpp version " BOOST_STRINGIZE(__SC__)
|
||||||
|
# elif defined(__MRC__)
|
||||||
|
# define BOOST_COMPILER "MPW MrCpp version " BOOST_STRINGIZE(__MRC__)
|
||||||
|
# else
|
||||||
|
# error "Using MPW compiler configuration by mistake. Please update."
|
||||||
|
# endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// MPW 8.90:
|
||||||
|
//
|
||||||
|
#if (MPW_CPLUS <= 0x890) || !defined(BOOST_STRICT_CONFIG)
|
||||||
|
# define BOOST_NO_CV_SPECIALIZATIONS
|
||||||
|
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
|
||||||
|
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
|
||||||
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
# define BOOST_NO_USING_TEMPLATE
|
||||||
|
|
||||||
|
# define BOOST_NO_CWCHAR
|
||||||
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
|
//
|
||||||
|
#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_EXTERN_TEMPLATE
|
||||||
|
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#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_VARIADIC_MACROS
|
||||||
|
#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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support MPW prior to version 8.9:
|
||||||
|
#if MPW_CPLUS < 0x890
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
// (C) Copyright Eric Jourdanneau, Joel Falcou 2010
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// NVIDIA CUDA C++ compiler setup
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
|
||||||
|
#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__
|
||||||
|
#else
|
||||||
|
// We don't really know what the CUDA version is, but it's definitely before 7.5:
|
||||||
|
# define BOOST_CUDA_VERSION 7000000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// NVIDIA Specific support
|
||||||
|
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
|
||||||
|
#define BOOST_GPU_ENABLED __host__ __device__
|
||||||
|
|
||||||
|
// 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
|
||||||
|
// check is enough to detect versions < 7.5
|
||||||
|
#if BOOST_CUDA_VERSION < 7050000
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
// The same bug is back again in 8.0:
|
||||||
|
#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)
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __CUDACC__
|
||||||
|
//
|
||||||
|
// When compiing .cu files, there's a bunch of stuff that doesn't work with msvc:
|
||||||
|
//
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// And this one effects the NVCC front end,
|
||||||
|
// See https://svn.boost.org/trac/boost/ticket/13049
|
||||||
|
//
|
||||||
|
#if (BOOST_CUDA_VERSION >= 8000000) && (BOOST_CUDA_VERSION < 8010000)
|
||||||
|
# define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,132 @@
|
||||||
|
// (C) Copyright Bryce Lelbach 2011
|
||||||
|
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// PathScale EKOPath C++ Compiler
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __PATHCC__ >= 6
|
||||||
|
// PathCC is based on clang, and supports the __has_*() builtins used
|
||||||
|
// to detect features in clang.hpp. Since the clang toolset is much
|
||||||
|
// better maintained, it is more convenient to reuse its definitions.
|
||||||
|
# include "boost/config/compiler/clang.hpp"
|
||||||
|
#elif __PATHCC__ >= 4
|
||||||
|
# define BOOST_MSVC6_MEMBER_TEMPLATES
|
||||||
|
# define BOOST_HAS_UNISTD_H
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
# define BOOST_HAS_SIGACTION
|
||||||
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
# define BOOST_HAS_PTHREAD_YIELD
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
|
# define BOOST_HAS_NRVO
|
||||||
|
# define BOOST_HAS_NL_TYPES_H
|
||||||
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
# define BOOST_HAS_LOG1P
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# define BOOST_HAS_EXPM1
|
||||||
|
# define BOOST_HAS_DIRENT_H
|
||||||
|
# define BOOST_HAS_CLOCK_GETTIME
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
# 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_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
# define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
|
# 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
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
# define BOOST_NO_CXX11_CHAR32_T
|
||||||
|
# define BOOST_NO_CXX11_CHAR16_T
|
||||||
|
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# 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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
#endif
|
|
@ -0,0 +1,168 @@
|
||||||
|
// (C) Copyright Noel Belcourt 2007.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// PGI C++ compiler setup:
|
||||||
|
|
||||||
|
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
|
||||||
|
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Threading support:
|
||||||
|
// Turn this on unconditionally here, it will get turned off again later
|
||||||
|
// if no threading API is detected.
|
||||||
|
//
|
||||||
|
|
||||||
|
#if __PGIC__ >= 11
|
||||||
|
|
||||||
|
// options requested by configure --enable-test
|
||||||
|
#define BOOST_HAS_PTHREADS
|
||||||
|
#define BOOST_HAS_THREADS
|
||||||
|
#define BOOST_HAS_PTHREAD_YIELD
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
|
||||||
|
// options --enable-test wants undefined
|
||||||
|
#undef BOOST_NO_STDC_NAMESPACE
|
||||||
|
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
|
#undef BOOST_DEDUCED_TYPENAME
|
||||||
|
|
||||||
|
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
|
||||||
|
#elif __PGIC__ >= 10
|
||||||
|
|
||||||
|
// options requested by configure --enable-test
|
||||||
|
#define BOOST_HAS_THREADS
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
#if defined(linux) || defined(__linux) || defined(__linux__)
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// options --enable-test wants undefined
|
||||||
|
#undef BOOST_NO_STDC_NAMESPACE
|
||||||
|
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
|
#undef BOOST_DEDUCED_TYPENAME
|
||||||
|
|
||||||
|
#elif __PGIC__ >= 7
|
||||||
|
|
||||||
|
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#define BOOST_NO_SWPRINTF
|
||||||
|
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
# error "Pgi compiler not configured - please reconfigure"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
|
//
|
||||||
|
#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_EXTERN_TEMPLATE
|
||||||
|
#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_NUMERIC_LIMITS
|
||||||
|
#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_SWPRINTF
|
||||||
|
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
#define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
#define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
#define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
#define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
#define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
#define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
#define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
#define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
#define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
#define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
#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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// version check:
|
||||||
|
// probably nothing to do here?
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// SGI C++ compiler setup:
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "SGI Irix compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
|
||||||
|
|
||||||
|
#include <boost/config/compiler/common_edg.hpp>
|
||||||
|
|
||||||
|
//
|
||||||
|
// Threading support:
|
||||||
|
// Turn this on unconditionally here, it will get turned off again later
|
||||||
|
// if no threading API is detected.
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_THREADS
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
|
||||||
|
#undef BOOST_NO_SWPRINTF
|
||||||
|
#undef BOOST_DEDUCED_TYPENAME
|
||||||
|
|
||||||
|
//
|
||||||
|
// version check:
|
||||||
|
// probably nothing to do here?
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,210 @@
|
||||||
|
// (C) Copyright John Maddock 2001.
|
||||||
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
|
// (C) Copyright Peter Dimov 2002.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
|
||||||
|
// (C) Copyright David Abrahams 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Sun C++ compiler setup:
|
||||||
|
|
||||||
|
# if __SUNPRO_CC <= 0x500
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATES
|
||||||
|
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if (__SUNPRO_CC <= 0x520)
|
||||||
|
//
|
||||||
|
// Sunpro 5.2 and earler:
|
||||||
|
//
|
||||||
|
// although sunpro 5.2 supports the syntax for
|
||||||
|
// inline initialization it often gets the value
|
||||||
|
// wrong, especially where the value is computed
|
||||||
|
// from other constants (J Maddock 6th May 2001)
|
||||||
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
|
||||||
|
// Although sunpro 5.2 supports the syntax for
|
||||||
|
// partial specialization, it often seems to
|
||||||
|
// bind to the wrong specialization. Better
|
||||||
|
// to disable it until suppport becomes more stable
|
||||||
|
// (J Maddock 6th May 2001).
|
||||||
|
# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if (__SUNPRO_CC <= 0x530)
|
||||||
|
// Requesting debug info (-g) with Boost.Python results
|
||||||
|
// in an internal compiler error for "static const"
|
||||||
|
// initialized in-class.
|
||||||
|
// >> Assertion: (../links/dbg_cstabs.cc, line 611)
|
||||||
|
// while processing ../test.cpp at line 0.
|
||||||
|
// (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
|
||||||
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
|
||||||
|
// SunPro 5.3 has better support for partial specialization,
|
||||||
|
// but breaks when compiling std::less<shared_ptr<T> >
|
||||||
|
// (Jens Maurer 4 Nov 2001).
|
||||||
|
|
||||||
|
// std::less specialization fixed as reported by George
|
||||||
|
// Heintzelman; partial specialization re-enabled
|
||||||
|
// (Peter Dimov 17 Jan 2002)
|
||||||
|
|
||||||
|
//# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
|
||||||
|
// integral constant expressions with 64 bit numbers fail
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if (__SUNPRO_CC < 0x570)
|
||||||
|
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||||
|
// see http://lists.boost.org/MailArchives/boost/msg47184.php
|
||||||
|
// and http://lists.boost.org/MailArchives/boost/msg47220.php
|
||||||
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
# define BOOST_NO_SFINAE
|
||||||
|
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
|
||||||
|
# endif
|
||||||
|
# if (__SUNPRO_CC <= 0x580)
|
||||||
|
# define BOOST_NO_IS_ABSTRACT
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if (__SUNPRO_CC <= 0x5100)
|
||||||
|
// Sun 5.10 may not correctly value-initialize objects of
|
||||||
|
// some user defined types, as was reported in April 2010
|
||||||
|
// (CR 6947016), and confirmed by Steve Clamage.
|
||||||
|
// (Niels Dekker, LKEB, May 2010).
|
||||||
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
# endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
|
//
|
||||||
|
#if __SUNPRO_CC > 0x500
|
||||||
|
# define BOOST_SYMBOL_EXPORT __global
|
||||||
|
# define BOOST_SYMBOL_IMPORT __global
|
||||||
|
# define BOOST_SYMBOL_VISIBLE __global
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__SUNPRO_CC < 0x5130)
|
||||||
|
// C++03 features in 12.4:
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_ADL_BARRIER
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__SUNPRO_CC < 0x5130) || (__cplusplus < 201100)
|
||||||
|
// C++11 only featuires in 12.4:
|
||||||
|
#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_DEFAULTED_FUNCTIONS
|
||||||
|
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#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_CXX11_STATIC_ASSERT
|
||||||
|
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_ALIGNAS
|
||||||
|
#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
#define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
#define BOOST_NO_CXX11_FINAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__SUNPRO_CC < 0x5140) || (__cplusplus < 201103)
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304) || (__cplusplus < 201402L)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Turn on threading support for Solaris 12.
|
||||||
|
// Ticket #11972
|
||||||
|
#if (__SUNPRO_CC >= 0x5140) && defined(__SunOS_5_12) && !defined(BOOST_HAS_THREADS)
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Version
|
||||||
|
//
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support sunpro prior to version 4:
|
||||||
|
#if __SUNPRO_CC < 0x400
|
||||||
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// last known and checked version is 0x590:
|
||||||
|
#if (__SUNPRO_CC > 0x590)
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
|
@ -0,0 +1,175 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Toon Knapen 2001 - 2003.
|
||||||
|
// (C) Copyright Lie-Quan Lee 2001.
|
||||||
|
// (C) Copyright Markus Schoepflin 2002 - 2003.
|
||||||
|
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Visual Age (IBM) C++ compiler setup:
|
||||||
|
|
||||||
|
#if __IBMCPP__ <= 501
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__IBMCPP__ <= 502)
|
||||||
|
// Actually the compiler supports inclass member initialization but it
|
||||||
|
// requires a definition for the class member and it doesn't recognize
|
||||||
|
// it as an integral constant expression when used as a template argument.
|
||||||
|
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||||
|
# define BOOST_NO_INTEGRAL_INT64_T
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
|
||||||
|
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__IBMCPP__ <= 1110)
|
||||||
|
// XL C++ V11.1 and earlier versions may not always value-initialize
|
||||||
|
// a temporary object T(), when T is a non-POD aggregate class type.
|
||||||
|
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
|
||||||
|
// high priority. -- Niels Dekker (LKEB), May 2010.
|
||||||
|
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// On AIX thread support seems to be indicated by _THREAD_SAFE:
|
||||||
|
//
|
||||||
|
#ifdef _THREAD_SAFE
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support Visual age prior to version 5:
|
||||||
|
#if __IBMCPP__ < 500
|
||||||
|
#error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// 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"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Some versions of the compiler have issues with default arguments on partial specializations
|
||||||
|
#if __IBMCPP__ <= 1010
|
||||||
|
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||||
|
//
|
||||||
|
#if ! __IBMCPP_AUTO_TYPEDEDUCTION
|
||||||
|
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#endif
|
||||||
|
#if ! __IBMCPP_UTF_LITERAL__
|
||||||
|
# define BOOST_NO_CXX11_CHAR16_T
|
||||||
|
# define BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#endif
|
||||||
|
#if ! __IBMCPP_CONSTEXPR
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if ! __IBMCPP_DECLTYPE
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#else
|
||||||
|
# define BOOST_HAS_DECLTYPE
|
||||||
|
#endif
|
||||||
|
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#endif
|
||||||
|
#if ! __IBMCPP_EXTERN_TEMPLATE
|
||||||
|
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
#endif
|
||||||
|
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||||
|
// not enabled separately at this time
|
||||||
|
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#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_USER_DEFINED_LITERALS
|
||||||
|
#if ! __IBMCPP_RVALUE_REFERENCES
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#endif
|
||||||
|
#if ! __IBMCPP_SCOPED_ENUM
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#if ! __IBMCPP_STATIC_ASSERT
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
#if ! __C99_MACRO_WITH_VA_ARGS
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
#endif
|
||||||
|
#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_THREAD_LOCAL
|
||||||
|
|
||||||
|
// C++ 14:
|
||||||
|
#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
#if (__cplusplus < 201304) // There's no SD6 check for this....
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#endif
|
||||||
|
#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
|
@ -0,0 +1,336 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Darin Adler 2001 - 2002.
|
||||||
|
// (C) Copyright Peter Dimov 2001.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||||
|
// (C) Copyright David Abrahams 2002 - 2003.
|
||||||
|
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||||
|
// 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.
|
||||||
|
//
|
||||||
|
// Microsoft Visual C++ compiler setup:
|
||||||
|
//
|
||||||
|
// We need to be careful with the checks in this file, as contrary
|
||||||
|
// to popular belief there are versions with _MSC_VER with the final
|
||||||
|
// digit non-zero (mainly the MIPS cross compiler).
|
||||||
|
//
|
||||||
|
// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
|
||||||
|
// No other comparisons (==, >, or <=) are safe.
|
||||||
|
//
|
||||||
|
|
||||||
|
#define BOOST_MSVC _MSC_VER
|
||||||
|
|
||||||
|
//
|
||||||
|
// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
|
||||||
|
//
|
||||||
|
#if _MSC_FULL_VER > 100000000
|
||||||
|
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
|
||||||
|
#else
|
||||||
|
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
|
||||||
|
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
||||||
|
|
||||||
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
|
||||||
|
//
|
||||||
|
// versions check:
|
||||||
|
// we don't support Visual C++ prior to version 7.1:
|
||||||
|
#if _MSC_VER < 1310
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if _MSC_FULL_VER < 180020827
|
||||||
|
# define BOOST_NO_FENV_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if _MSC_VER < 1400
|
||||||
|
// although a conforming signature for swprint exists in VC7.1
|
||||||
|
// it appears not to actually work:
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
// Our extern template tests also fail for this compiler:
|
||||||
|
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
// Variadic macros do not exist for VC7.1 and lower
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if _MSC_VER < 1500 // 140X == VC++ 8.0
|
||||||
|
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if _MSC_VER < 1600 // 150X == VC++ 9.0
|
||||||
|
// A bug in VC9:
|
||||||
|
# define BOOST_NO_ADL_BARRIER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _NATIVE_WCHAR_T_DEFINED
|
||||||
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// check for exception handling support:
|
||||||
|
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// __int64 support:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_MS_INT64
|
||||||
|
#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
|
#endif
|
||||||
|
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
||||||
|
# define BOOST_HAS_NRVO
|
||||||
|
#endif
|
||||||
|
#if _MSC_VER >= 1600 // 160X == VC++ 10.0
|
||||||
|
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// disable Win32 API's if compiler extensions are
|
||||||
|
// turned off:
|
||||||
|
//
|
||||||
|
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
|
||||||
|
# define BOOST_DISABLE_WIN32
|
||||||
|
#endif
|
||||||
|
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
|
||||||
|
# define BOOST_NO_RTTI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// 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_UNORDERED_MAP
|
||||||
|
# define BOOST_HAS_TR1_UNORDERED_SET
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++0x features
|
||||||
|
//
|
||||||
|
// See above for BOOST_NO_LONG_LONG
|
||||||
|
|
||||||
|
// C++ features supported by VC++ 10 (aka 2010)
|
||||||
|
//
|
||||||
|
#if _MSC_VER < 1600
|
||||||
|
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
# define BOOST_NO_CXX11_NULLPTR
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#endif // _MSC_VER < 1600
|
||||||
|
|
||||||
|
#if _MSC_VER >= 1600
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++11 features supported by VC++ 11 (aka 2012)
|
||||||
|
//
|
||||||
|
#if _MSC_VER < 1700
|
||||||
|
# define BOOST_NO_CXX11_FINAL
|
||||||
|
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#endif // _MSC_VER < 1700
|
||||||
|
|
||||||
|
// C++11 features supported by VC++ 12 (aka 2013).
|
||||||
|
//
|
||||||
|
#if _MSC_FULL_VER < 180020827
|
||||||
|
# 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_RAW_LITERALS
|
||||||
|
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if _MSC_FULL_VER >= 180020827
|
||||||
|
#define BOOST_HAS_EXPM1
|
||||||
|
#define BOOST_HAS_LOG1P
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++11 features supported by VC++ 14 (aka 2015)
|
||||||
|
//
|
||||||
|
#if (_MSC_FULL_VER < 190023026)
|
||||||
|
# define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
# define BOOST_NO_CXX11_ALIGNAS
|
||||||
|
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
# define BOOST_NO_CXX11_CHAR16_T
|
||||||
|
# define BOOST_NO_CXX11_CHAR32_T
|
||||||
|
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
// C++11 features supported by VC++ 14 update 3 (aka 2015)
|
||||||
|
//
|
||||||
|
#if (_MSC_FULL_VER < 190024210)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
# define BOOST_NO_SFINAE_EXPR
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features supported by VC++ 14.1 (Visual Studio 2017)
|
||||||
|
//
|
||||||
|
#if (_MSC_VER < 1910)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17 features supported by VC++ 14.1 (Visual Studio 2017) Update 3
|
||||||
|
//
|
||||||
|
#if (_MSC_VER < 1911) || (_MSVC_LANG < 201703)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// MSVC including version 14 has not yet completely
|
||||||
|
// implemented value-initialization, as is reported:
|
||||||
|
// "VC++ does not value-initialize members of derived classes without
|
||||||
|
// user-declared constructor", reported in 2009 by Sylvester Hesp:
|
||||||
|
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
|
||||||
|
// "Presence of copy constructor breaks member class initialization",
|
||||||
|
// reported in 2009 by Alex Vakulenko:
|
||||||
|
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
|
||||||
|
// "Value-initialization in new-expression", reported in 2005 by
|
||||||
|
// Pavel Kuznetsov (MetaCommunications Engineering):
|
||||||
|
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
|
||||||
|
// Reported again by John Maddock in 2015 for VC14:
|
||||||
|
// https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly
|
||||||
|
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
|
||||||
|
// (Niels Dekker, LKEB, May 2010)
|
||||||
|
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||||
|
//
|
||||||
|
// C++ 11:
|
||||||
|
//
|
||||||
|
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
// C++ 14:
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
// C++ 17:
|
||||||
|
#define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
|
||||||
|
//
|
||||||
|
// Things that don't work in clr mode:
|
||||||
|
//
|
||||||
|
#ifdef _M_CEE
|
||||||
|
#ifndef BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_SFINAE_EXPR
|
||||||
|
# define BOOST_NO_SFINAE_EXPR
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#ifdef _M_CEE_PURE
|
||||||
|
#ifndef BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// prefix and suffix headers:
|
||||||
|
//
|
||||||
|
#ifndef BOOST_ABI_PREFIX
|
||||||
|
# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_ABI_SUFFIX
|
||||||
|
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
// TODO:
|
||||||
|
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
|
||||||
|
// artificial versions assigned to them only refer to the versions of some IDE
|
||||||
|
// these compilers have been shipped with, and even that is not all of it. Some
|
||||||
|
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
|
||||||
|
// IOW, you can't use these 'versions' in any sensible way. Sorry.
|
||||||
|
# if defined(UNDER_CE)
|
||||||
|
# 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"
|
||||||
|
# else
|
||||||
|
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
|
||||||
|
# endif
|
||||||
|
# elif _MSC_VER < 1500
|
||||||
|
# define BOOST_COMPILER_VERSION evc8
|
||||||
|
# elif _MSC_VER < 1600
|
||||||
|
# define BOOST_COMPILER_VERSION evc9
|
||||||
|
# elif _MSC_VER < 1700
|
||||||
|
# define BOOST_COMPILER_VERSION evc10
|
||||||
|
# elif _MSC_VER < 1800
|
||||||
|
# define BOOST_COMPILER_VERSION evc11
|
||||||
|
# elif _MSC_VER < 1900
|
||||||
|
# define BOOST_COMPILER_VERSION evc12
|
||||||
|
# elif _MSC_VER < 2000
|
||||||
|
# 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"
|
||||||
|
# else
|
||||||
|
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# if _MSC_VER < 1310
|
||||||
|
// Note: Versions up to 7.0 aren't supported.
|
||||||
|
# define BOOST_COMPILER_VERSION 5.0
|
||||||
|
# elif _MSC_VER < 1300
|
||||||
|
# define BOOST_COMPILER_VERSION 6.0
|
||||||
|
# elif _MSC_VER < 1310
|
||||||
|
# define BOOST_COMPILER_VERSION 7.0
|
||||||
|
# elif _MSC_VER < 1400
|
||||||
|
# define BOOST_COMPILER_VERSION 7.1
|
||||||
|
# elif _MSC_VER < 1500
|
||||||
|
# define BOOST_COMPILER_VERSION 8.0
|
||||||
|
# elif _MSC_VER < 1600
|
||||||
|
# define BOOST_COMPILER_VERSION 9.0
|
||||||
|
# elif _MSC_VER < 1700
|
||||||
|
# define BOOST_COMPILER_VERSION 10.0
|
||||||
|
# elif _MSC_VER < 1800
|
||||||
|
# define BOOST_COMPILER_VERSION 11.0
|
||||||
|
# elif _MSC_VER < 1900
|
||||||
|
# define BOOST_COMPILER_VERSION 12.0
|
||||||
|
# elif _MSC_VER < 1910
|
||||||
|
# define BOOST_COMPILER_VERSION 14.0
|
||||||
|
# elif _MSC_VER < 1920
|
||||||
|
# define BOOST_COMPILER_VERSION 14.1
|
||||||
|
# else
|
||||||
|
# define BOOST_COMPILER_VERSION _MSC_VER
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// last known and checked version is 19.11.25506 (VC++ 2017.3):
|
||||||
|
#if (_MSC_VER > 1911)
|
||||||
|
# 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
|
|
@ -0,0 +1,276 @@
|
||||||
|
// (C) Copyright Douglas Gregor 2010
|
||||||
|
//
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// compiler setup for IBM XL C/C++ for Linux (Little Endian) based on clang.
|
||||||
|
|
||||||
|
#define BOOST_HAS_PRAGMA_ONCE
|
||||||
|
|
||||||
|
// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
|
||||||
|
#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
|
||||||
|
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// When compiling with clang before __has_extension was defined,
|
||||||
|
// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
|
||||||
|
// clang reports a compiler error. So the only workaround found is:
|
||||||
|
|
||||||
|
#ifndef __has_extension
|
||||||
|
#define __has_extension __has_feature
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __has_cpp_attribute
|
||||||
|
#define __has_cpp_attribute(x) 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
|
||||||
|
# define BOOST_NO_RTTI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
|
||||||
|
# define BOOST_NO_TYPEID
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__int64) && !defined(__GNUC__)
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
|
||||||
|
// Branch prediction hints
|
||||||
|
#if defined(__has_builtin)
|
||||||
|
#if __has_builtin(__builtin_expect)
|
||||||
|
#define BOOST_LIKELY(x) __builtin_expect(x, 1)
|
||||||
|
#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang supports "long long" in all compilation modes.
|
||||||
|
#define BOOST_HAS_LONG_LONG
|
||||||
|
|
||||||
|
//
|
||||||
|
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
|
||||||
|
//
|
||||||
|
#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
|
||||||
|
# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
|
||||||
|
# define BOOST_SYMBOL_IMPORT
|
||||||
|
# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
|
||||||
|
// between switch labels.
|
||||||
|
//
|
||||||
|
#if __cplusplus >= 201103L && defined(__has_warning)
|
||||||
|
# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
|
||||||
|
# define BOOST_FALLTHROUGH [[clang::fallthrough]]
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_auto_type)
|
||||||
|
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
|
||||||
|
//
|
||||||
|
#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||||
|
# define BOOST_NO_CXX11_CHAR16_T
|
||||||
|
# define BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_constexpr)
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_decltype)
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_decltype_incomplete_return_types)
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_defaulted_functions)
|
||||||
|
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_deleted_functions)
|
||||||
|
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_explicit_conversions)
|
||||||
|
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_default_function_template_args)
|
||||||
|
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_generalized_initializers)
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_lambdas)
|
||||||
|
# define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_local_type_template_args)
|
||||||
|
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_noexcept)
|
||||||
|
# define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_nullptr)
|
||||||
|
# define BOOST_NO_CXX11_NULLPTR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_range_for)
|
||||||
|
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_raw_string_literals)
|
||||||
|
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_reference_qualified_functions)
|
||||||
|
# define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_generalized_initializers)
|
||||||
|
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_rvalue_references)
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_strong_enums)
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_static_assert)
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_alias_templates)
|
||||||
|
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_unicode_literals)
|
||||||
|
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_variadic_templates)
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_user_literals)
|
||||||
|
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_alignas)
|
||||||
|
# define BOOST_NO_CXX11_ALIGNAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_trailing_return)
|
||||||
|
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_inline_namespaces)
|
||||||
|
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_override_control)
|
||||||
|
# define BOOST_NO_CXX11_FINAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
|
||||||
|
# define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_decltype_auto__)
|
||||||
|
# define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_aggregate_nsdmi__)
|
||||||
|
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_init_captures__)
|
||||||
|
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_generic_lambdas__)
|
||||||
|
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// clang < 3.5 has a defect with dependent type, like following.
|
||||||
|
//
|
||||||
|
// template <class T>
|
||||||
|
// constexpr typename enable_if<pred<T> >::type foo(T &)
|
||||||
|
// { } // error: no return statement in constexpr function
|
||||||
|
//
|
||||||
|
// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
|
||||||
|
// Therefore we don't care such case.
|
||||||
|
//
|
||||||
|
// Note that we can't check Clang version directly as the numbering system changes depending who's
|
||||||
|
// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
|
||||||
|
// so instead verify that we have a feature that was introduced at the same time as working C++14
|
||||||
|
// constexpr (generic lambda's in this case):
|
||||||
|
//
|
||||||
|
#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
|
||||||
|
# define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_return_type_deduction__)
|
||||||
|
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(__cxx_variable_templates__)
|
||||||
|
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
|
||||||
|
# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Clang 3.9+ in c++1z
|
||||||
|
#if !__has_cpp_attribute(fallthrough) || __cplusplus < 201406L
|
||||||
|
# define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !__has_feature(cxx_thread_local)
|
||||||
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __cplusplus < 201400
|
||||||
|
// All versions with __cplusplus above this value seem to support this:
|
||||||
|
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// Unused attribute:
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||||
|
# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_COMPILER
|
||||||
|
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Macro used to identify the Clang compiler.
|
||||||
|
#define BOOST_CLANG 1
|
||||||
|
|
|
@ -0,0 +1,168 @@
|
||||||
|
// Copyright (c) 2017 Dynatrace
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
|
// Compiler setup for IBM z/OS XL C/C++ compiler.
|
||||||
|
|
||||||
|
// Oldest compiler version currently supported is 2.1 (V2R1)
|
||||||
|
#if !defined(__IBMCPP__) || !defined(__COMPILER_VER__) || __COMPILER_VER__ < 0x42010000
|
||||||
|
# error "Compiler not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __COMPILER_VER__ > 0x42010000
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_COMPILER "IBM z/OS XL C/C++ version " BOOST_STRINGIZE(__COMPILER_VER__)
|
||||||
|
#define BOOST_XLCPP_ZOS __COMPILER_VER__
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#include <features.h> // For __UU, __C99, __TR1, ...
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_DEFAULTED_AND_DELETED_FUNCTIONS)
|
||||||
|
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||||
|
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||||
|
# define BOOST_NO_CXX11_NON_PUBLIC_DEFAULTED_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#if defined(__UU) || defined(__C99) || defined(__TR1)
|
||||||
|
# define BOOST_HAS_LOG1P
|
||||||
|
# define BOOST_HAS_EXPM1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__C99) || defined(__TR1)
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_FENV_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#define BOOST_HAS_NRVO
|
||||||
|
|
||||||
|
#if !defined(__RTTI_ALL__)
|
||||||
|
# define BOOST_NO_RTTI
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(_CPPUNWIND) && !defined(__EXCEPTIONS)
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL)
|
||||||
|
# define BOOST_HAS_LONG_LONG
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_LONG_LONG) || defined(__IBMCPP_C99_LONG_LONG) || defined(__LL) || defined(_LP64)
|
||||||
|
# define BOOST_HAS_MS_INT64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_SFINAE_EXPR
|
||||||
|
#define BOOST_NO_CXX11_SFINAE_EXPR
|
||||||
|
|
||||||
|
#if defined(__IBMCPP_VARIADIC_TEMPLATES)
|
||||||
|
# define BOOST_HAS_VARIADIC_TMPL
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||||
|
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__IBMCPP_STATIC_ASSERT)
|
||||||
|
# define BOOST_HAS_STATIC_ASSERT
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__IBMCPP_RVALUE_REFERENCES)
|
||||||
|
# define BOOST_HAS_RVALUE_REFS
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_SCOPED_ENUM)
|
||||||
|
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_FIXED_LENGTH_VARIADIC_TEMPLATE_EXPANSION_PACKS
|
||||||
|
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||||
|
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_EXPLICIT_CONVERSION_OPERATORS)
|
||||||
|
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_DECLTYPE)
|
||||||
|
# define BOOST_NO_CXX11_DECLTYPE
|
||||||
|
#else
|
||||||
|
# define BOOST_HAS_DECLTYPE
|
||||||
|
#endif
|
||||||
|
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_INLINE_NAMESPACE)
|
||||||
|
# define BOOST_NO_CXX11_INLINE_NAMESPACES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_AUTO_TYPEDEDUCTION)
|
||||||
|
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||||
|
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBM_CHAR32_T__)
|
||||||
|
# define BOOST_NO_CXX11_CHAR32_T
|
||||||
|
#endif
|
||||||
|
#if !defined(__IBM_CHAR16_T__)
|
||||||
|
# define BOOST_NO_CXX11_CHAR16_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(__IBMCPP_CONSTEXPR)
|
||||||
|
# define BOOST_NO_CXX11_CONSTEXPR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||||
|
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||||
|
#define BOOST_NO_CXX11_NULLPTR
|
||||||
|
#define BOOST_NO_CXX11_NOEXCEPT
|
||||||
|
#define BOOST_NO_CXX11_LAMBDAS
|
||||||
|
#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
|
||||||
|
#define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#define BOOST_NO_CXX11_REF_QUALIFIERS
|
||||||
|
#define BOOST_NO_CXX11_FINAL
|
||||||
|
#define BOOST_NO_CXX11_ALIGNAS
|
||||||
|
#define BOOST_NO_CXX14_VARIABLE_TEMPLATES
|
||||||
|
#define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
|
||||||
|
#define BOOST_NO_CXX14_AGGREGATE_NSDMI
|
||||||
|
#define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
|
||||||
|
#define BOOST_NO_CXX14_GENERIC_LAMBDAS
|
||||||
|
#define BOOST_NO_CXX14_DIGIT_SEPARATORS
|
||||||
|
#define BOOST_NO_CXX14_DECLTYPE_AUTO
|
||||||
|
#define BOOST_NO_CXX14_CONSTEXPR
|
||||||
|
#define BOOST_NO_CXX14_BINARY_LITERALS
|
||||||
|
#define BOOST_NO_CXX17_STRUCTURED_BINDINGS
|
||||||
|
#define BOOST_NO_CXX17_INLINE_VARIABLES
|
||||||
|
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
|
||||||
|
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#if defined(__IBM_ATTRIBUTES)
|
||||||
|
# define BOOST_FORCEINLINE inline __attribute__ ((__always_inline__))
|
||||||
|
# define BOOST_NOINLINE __attribute__ ((__noinline__))
|
||||||
|
// No BOOST_ALIGNMENT - explicit alignment support is broken (V2R1).
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern "builtin" long __builtin_expect(long, long);
|
||||||
|
|
||||||
|
#define BOOST_LIKELY(x) __builtin_expect((x) && true, 1)
|
||||||
|
#define BOOST_UNLIKELY(x) __builtin_expect((x) && true, 0)
|
|
@ -0,0 +1,158 @@
|
||||||
|
// Boost compiler configuration selection header file
|
||||||
|
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Martin Wille 2003.
|
||||||
|
// (C) Copyright Guillaume Melquiond 2003.
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// See http://www.boost.org/ for most recent version.
|
||||||
|
|
||||||
|
// locate which compiler we are using and define
|
||||||
|
// BOOST_COMPILER_CONFIG as needed:
|
||||||
|
|
||||||
|
#if defined __CUDACC__
|
||||||
|
// NVIDIA CUDA C++ compiler for GPU
|
||||||
|
# include "boost/config/compiler/nvcc.hpp"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GCCXML__)
|
||||||
|
// GCC-XML emulates other compilers, it has to appear first here!
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
|
||||||
|
|
||||||
|
#elif defined(_CRAYC)
|
||||||
|
// EDG based Cray compiler:
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
|
||||||
|
|
||||||
|
#elif defined __COMO__
|
||||||
|
// Comeau C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
|
||||||
|
|
||||||
|
#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
|
||||||
|
// PathScale EKOPath compiler (has to come before clang and gcc)
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.hpp"
|
||||||
|
|
||||||
|
#elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC)
|
||||||
|
// Intel
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/intel.hpp"
|
||||||
|
|
||||||
|
#elif defined __clang__ && !defined(__CUDACC__) && !defined(__ibmxl__)
|
||||||
|
// when using clang and cuda at same time, you want to appear as gcc
|
||||||
|
// Clang C++ emulates GCC, so it has to appear early.
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
|
||||||
|
|
||||||
|
#elif defined __DMC__
|
||||||
|
// Digital Mars C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
|
||||||
|
|
||||||
|
#elif defined __DCC__
|
||||||
|
// Wind River Diab C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/diab.hpp"
|
||||||
|
|
||||||
|
# elif defined(__GNUC__) && !defined(__ibmxl__)
|
||||||
|
// GNU C++:
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc.hpp"
|
||||||
|
|
||||||
|
#elif defined __KCC
|
||||||
|
// Kai C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/kai.hpp"
|
||||||
|
|
||||||
|
#elif defined __sgi
|
||||||
|
// SGI MIPSpro C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sgi_mipspro.hpp"
|
||||||
|
|
||||||
|
#elif defined __DECCXX
|
||||||
|
// Compaq Tru64 Unix cxx
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/compaq_cxx.hpp"
|
||||||
|
|
||||||
|
#elif defined __ghs
|
||||||
|
// Greenhills C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
|
||||||
|
|
||||||
|
#elif defined __CODEGEARC__
|
||||||
|
// CodeGear - must be checked for before Borland
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
|
||||||
|
|
||||||
|
#elif defined __BORLANDC__
|
||||||
|
// Borland
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
|
||||||
|
|
||||||
|
#elif defined __MWERKS__
|
||||||
|
// Metrowerks CodeWarrior
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/metrowerks.hpp"
|
||||||
|
|
||||||
|
#elif defined __SUNPRO_CC
|
||||||
|
// Sun Workshop Compiler C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/sunpro_cc.hpp"
|
||||||
|
|
||||||
|
#elif defined __HP_aCC
|
||||||
|
// HP aCC
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/hp_acc.hpp"
|
||||||
|
|
||||||
|
#elif defined(__MRC__) || defined(__SC__)
|
||||||
|
// MPW MrCpp or SCpp
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/mpw.hpp"
|
||||||
|
|
||||||
|
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__)
|
||||||
|
// IBM z/OS XL C/C++
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp_zos.hpp"
|
||||||
|
|
||||||
|
#elif defined(__ibmxl__)
|
||||||
|
// IBM XL C/C++ for Linux (Little Endian)
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/xlcpp.hpp"
|
||||||
|
|
||||||
|
#elif defined(__IBMCPP__)
|
||||||
|
// IBM Visual Age or IBM XL C/C++ for Linux (Big Endian)
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
|
||||||
|
|
||||||
|
#elif defined(__PGI)
|
||||||
|
// Portland Group Inc.
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp"
|
||||||
|
|
||||||
|
#elif defined _MSC_VER
|
||||||
|
// Microsoft Visual C++
|
||||||
|
//
|
||||||
|
// Must remain the last #elif since some other vendors (Metrowerks, for
|
||||||
|
// example) also #define _MSC_VER
|
||||||
|
# define BOOST_COMPILER_CONFIG "boost/config/compiler/visualc.hpp"
|
||||||
|
|
||||||
|
#elif defined (BOOST_ASSERT_CONFIG)
|
||||||
|
// this must come last - generate an error if we don't
|
||||||
|
// recognise the compiler:
|
||||||
|
# error "Unknown compiler - please configure (http://www.boost.org/libs/config/config.htm#configuring) and report the results to the main boost mailing list (http://www.boost.org/more/mailing_lists.htm#main)"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
//
|
||||||
|
// This section allows dependency scanners to find all the headers we *might* include:
|
||||||
|
//
|
||||||
|
#include <boost/config/compiler/gcc_xml.hpp>
|
||||||
|
#include <boost/config/compiler/cray.hpp>
|
||||||
|
#include <boost/config/compiler/comeau.hpp>
|
||||||
|
#include <boost/config/compiler/pathscale.hpp>
|
||||||
|
#include <boost/config/compiler/intel.hpp>
|
||||||
|
#include <boost/config/compiler/clang.hpp>
|
||||||
|
#include <boost/config/compiler/digitalmars.hpp>
|
||||||
|
#include <boost/config/compiler/gcc.hpp>
|
||||||
|
#include <boost/config/compiler/kai.hpp>
|
||||||
|
#include <boost/config/compiler/sgi_mipspro.hpp>
|
||||||
|
#include <boost/config/compiler/compaq_cxx.hpp>
|
||||||
|
#include <boost/config/compiler/greenhills.hpp>
|
||||||
|
#include <boost/config/compiler/codegear.hpp>
|
||||||
|
#include <boost/config/compiler/borland.hpp>
|
||||||
|
#include <boost/config/compiler/metrowerks.hpp>
|
||||||
|
#include <boost/config/compiler/sunpro_cc.hpp>
|
||||||
|
#include <boost/config/compiler/hp_acc.hpp>
|
||||||
|
#include <boost/config/compiler/mpw.hpp>
|
||||||
|
#include <boost/config/compiler/xlcpp_zos.hpp>
|
||||||
|
#include <boost/config/compiler/xlcpp.hpp>
|
||||||
|
#include <boost/config/compiler/vacpp.hpp>
|
||||||
|
#include <boost/config/compiler/pgi.hpp>
|
||||||
|
#include <boost/config/compiler/visualc.hpp>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,142 @@
|
||||||
|
// Boost compiler configuration selection header file
|
||||||
|
|
||||||
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
|
// (C) Copyright Jens Maurer 2001.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// locate which platform we are on and define BOOST_PLATFORM_CONFIG as needed.
|
||||||
|
// Note that we define the headers to include using "header_name" not
|
||||||
|
// <header_name> in order to prevent macro expansion within the header
|
||||||
|
// name (for example "linux" is a macro on linux systems).
|
||||||
|
|
||||||
|
#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
|
||||||
|
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
|
||||||
|
|
||||||
|
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
|
// BSD:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
|
||||||
|
|
||||||
|
#elif defined(sun) || defined(__sun)
|
||||||
|
// solaris:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/solaris.hpp"
|
||||||
|
|
||||||
|
#elif defined(__sgi)
|
||||||
|
// SGI Irix:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/irix.hpp"
|
||||||
|
|
||||||
|
#elif defined(__hpux)
|
||||||
|
// hp unix:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/hpux.hpp"
|
||||||
|
|
||||||
|
#elif defined(__CYGWIN__)
|
||||||
|
// cygwin is not win32:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cygwin.hpp"
|
||||||
|
|
||||||
|
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
||||||
|
// win32:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/win32.hpp"
|
||||||
|
|
||||||
|
#elif defined(__HAIKU__)
|
||||||
|
// Haiku
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/haiku.hpp"
|
||||||
|
|
||||||
|
#elif defined(__BEOS__)
|
||||||
|
// BeOS
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/beos.hpp"
|
||||||
|
|
||||||
|
#elif defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__)
|
||||||
|
// MacOS
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/macos.hpp"
|
||||||
|
|
||||||
|
#elif defined(__TOS_MVS__)
|
||||||
|
// IBM z/OS
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/zos.hpp"
|
||||||
|
|
||||||
|
#elif defined(__IBMCPP__) || defined(_AIX)
|
||||||
|
// IBM AIX
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/aix.hpp"
|
||||||
|
|
||||||
|
#elif defined(__amigaos__)
|
||||||
|
// AmigaOS
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
|
||||||
|
|
||||||
|
#elif defined(__QNXNTO__)
|
||||||
|
// QNX:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
|
||||||
|
|
||||||
|
#elif defined(__VXWORKS__)
|
||||||
|
// vxWorks:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
|
||||||
|
|
||||||
|
#elif defined(__SYMBIAN32__)
|
||||||
|
// Symbian:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
|
||||||
|
|
||||||
|
#elif defined(_CRAYC)
|
||||||
|
// Cray:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp"
|
||||||
|
|
||||||
|
#elif defined(__VMS)
|
||||||
|
// VMS:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
|
||||||
|
|
||||||
|
#elif defined(__CloudABI__)
|
||||||
|
// Nuxi CloudABI:
|
||||||
|
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cloudabi.hpp"
|
||||||
|
#else
|
||||||
|
|
||||||
|
# if defined(unix) \
|
||||||
|
|| defined(__unix) \
|
||||||
|
|| defined(_XOPEN_SOURCE) \
|
||||||
|
|| defined(_POSIX_SOURCE)
|
||||||
|
|
||||||
|
// generic unix platform:
|
||||||
|
|
||||||
|
# ifndef BOOST_HAS_UNISTD_H
|
||||||
|
# define BOOST_HAS_UNISTD_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if defined (BOOST_ASSERT_CONFIG)
|
||||||
|
// this must come last - generate an error if we don't
|
||||||
|
// recognise the platform:
|
||||||
|
# error "Unknown platform - please configure and report the results to boost.org"
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
//
|
||||||
|
// This section allows dependency scanners to find all the files we *might* include:
|
||||||
|
//
|
||||||
|
# include "boost/config/platform/linux.hpp"
|
||||||
|
# include "boost/config/platform/bsd.hpp"
|
||||||
|
# include "boost/config/platform/solaris.hpp"
|
||||||
|
# include "boost/config/platform/irix.hpp"
|
||||||
|
# include "boost/config/platform/hpux.hpp"
|
||||||
|
# include "boost/config/platform/cygwin.hpp"
|
||||||
|
# include "boost/config/platform/win32.hpp"
|
||||||
|
# include "boost/config/platform/beos.hpp"
|
||||||
|
# include "boost/config/platform/macos.hpp"
|
||||||
|
# include "boost/config/platform/zos.hpp"
|
||||||
|
# include "boost/config/platform/aix.hpp"
|
||||||
|
# include "boost/config/platform/amigaos.hpp"
|
||||||
|
# include "boost/config/platform/qnxnto.hpp"
|
||||||
|
# include "boost/config/platform/vxworks.hpp"
|
||||||
|
# include "boost/config/platform/symbian.hpp"
|
||||||
|
# include "boost/config/platform/cray.hpp"
|
||||||
|
# include "boost/config/platform/vms.hpp"
|
||||||
|
# include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,110 @@
|
||||||
|
// Boost compiler configuration selection header file
|
||||||
|
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2001 - 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// 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
|
||||||
|
// (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
|
||||||
|
# include <cstddef>
|
||||||
|
#else
|
||||||
|
# include <stddef.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||||
|
// STLPort library; this _must_ come first, otherwise since
|
||||||
|
// STLport typically sits on top of some other library, we
|
||||||
|
// can end up detecting that first rather than STLport:
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
// If our std lib was not some version of STLport, and has not otherwise
|
||||||
|
// been detected, then include <utility> as it is about
|
||||||
|
// the smallest of the std lib headers that includes real C++ stuff.
|
||||||
|
// Some std libs do not include their C++-related macros in <cstddef>
|
||||||
|
// so this additional include makes sure we get those definitions.
|
||||||
|
// Note: do not rely on this header being included since users can short-circuit this
|
||||||
|
// #include if they know whose std lib they are using.
|
||||||
|
#if !defined(__LIBCOMO__) && !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)\
|
||||||
|
&& !defined(_LIBCPP_VERSION) && !defined(__GLIBCPP__) && !defined(__GLIBCXX__)\
|
||||||
|
&& !defined(__STL_CONFIG_H) && !defined(__MSL_CPP__) && !defined(__IBMCPP__)\
|
||||||
|
&& !defined(MSIPL_COMPILE_H) && !defined(_YVALS) && !defined(_CPPLIB_VER)
|
||||||
|
#include <utility>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__LIBCOMO__)
|
||||||
|
// Comeau STL:
|
||||||
|
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
|
||||||
|
|
||||||
|
#elif defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)
|
||||||
|
// Rogue Wave library:
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
|
||||||
|
|
||||||
|
#elif defined(_LIBCPP_VERSION)
|
||||||
|
// libc++
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
|
||||||
|
|
||||||
|
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
||||||
|
// GNU libstdc++ 3
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
|
||||||
|
|
||||||
|
#elif defined(__STL_CONFIG_H)
|
||||||
|
// generic SGI STL
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/sgi.hpp"
|
||||||
|
|
||||||
|
#elif defined(__MSL_CPP__)
|
||||||
|
// MSL standard lib:
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/msl.hpp"
|
||||||
|
|
||||||
|
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) && defined(__MVS__)
|
||||||
|
// IBM z/OS XL C/C++
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/xlcpp_zos.hpp"
|
||||||
|
|
||||||
|
#elif defined(__IBMCPP__)
|
||||||
|
// take the default VACPP std lib
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/vacpp.hpp"
|
||||||
|
|
||||||
|
#elif defined(MSIPL_COMPILE_H)
|
||||||
|
// Modena C++ standard library
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/modena.hpp"
|
||||||
|
|
||||||
|
#elif (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
|
||||||
|
// Dinkumware Library (this has to appear after any possible replacement libraries):
|
||||||
|
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/dinkumware.hpp"
|
||||||
|
|
||||||
|
#elif defined (BOOST_ASSERT_CONFIG)
|
||||||
|
// this must come last - generate an error if we don't
|
||||||
|
// recognise the library:
|
||||||
|
# error "Unknown standard library - please configure and report the results to boost.org"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
//
|
||||||
|
// This section allows dependency scanners to find all the files we *might* include:
|
||||||
|
//
|
||||||
|
# include "boost/config/stdlib/stlport.hpp"
|
||||||
|
# include "boost/config/stdlib/libcomo.hpp"
|
||||||
|
# include "boost/config/stdlib/roguewave.hpp"
|
||||||
|
# include "boost/config/stdlib/libcpp.hpp"
|
||||||
|
# include "boost/config/stdlib/libstdcpp3.hpp"
|
||||||
|
# include "boost/config/stdlib/sgi.hpp"
|
||||||
|
# include "boost/config/stdlib/msl.hpp"
|
||||||
|
# include "boost/config/stdlib/xlcpp_zos.hpp"
|
||||||
|
# include "boost/config/stdlib/vacpp.hpp"
|
||||||
|
# include "boost/config/stdlib/modena.hpp"
|
||||||
|
# include "boost/config/stdlib/dinkumware.hpp"
|
||||||
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,33 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// IBM/Aix specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "IBM Aix"
|
||||||
|
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#define BOOST_HAS_NL_TYPES_H
|
||||||
|
#define BOOST_HAS_NANOSLEEP
|
||||||
|
#define BOOST_HAS_CLOCK_GETTIME
|
||||||
|
|
||||||
|
// This needs support in "boost/cstdint.hpp" exactly like FreeBSD.
|
||||||
|
// This platform has header named <inttypes.h> which includes all
|
||||||
|
// the things needed.
|
||||||
|
#define BOOST_HAS_STDINT_H
|
||||||
|
|
||||||
|
// Threading API's:
|
||||||
|
#define BOOST_HAS_PTHREADS
|
||||||
|
#define BOOST_HAS_PTHREAD_DELAY_NP
|
||||||
|
#define BOOST_HAS_SCHED_YIELD
|
||||||
|
//#define BOOST_HAS_PTHREAD_YIELD
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
// (C) Copyright John Maddock 2001.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// BeOS specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "BeOS"
|
||||||
|
|
||||||
|
#define BOOST_NO_CWCHAR
|
||||||
|
#define BOOST_NO_CWCTYPE
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
|
||||||
|
#define BOOST_HAS_BETHREADS
|
||||||
|
|
||||||
|
#ifndef BOOST_DISABLE_THREADS
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,86 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Darin Adler 2001.
|
||||||
|
// (C) Copyright Douglas Gregor 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// generic BSD config options:
|
||||||
|
|
||||||
|
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
|
||||||
|
#error "This platform is not BSD"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __FreeBSD__
|
||||||
|
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
|
||||||
|
#elif defined(__NetBSD__)
|
||||||
|
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
|
||||||
|
#elif defined(__OpenBSD__)
|
||||||
|
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
|
||||||
|
#elif defined(__DragonFly__)
|
||||||
|
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// is this the correct version check?
|
||||||
|
// FreeBSD has <nl_types.h> but does not
|
||||||
|
// advertise the fact in <unistd.h>:
|
||||||
|
//
|
||||||
|
#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
|
||||||
|
# define BOOST_HAS_NL_TYPES_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
|
||||||
|
// and not in <unistd.h>
|
||||||
|
//
|
||||||
|
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|
||||||
|
|| defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No wide character support in the BSD header files:
|
||||||
|
//
|
||||||
|
#if defined(__NetBSD__)
|
||||||
|
#define __NetBSD_GCC__ (__GNUC__ * 1000000 \
|
||||||
|
+ __GNUC_MINOR__ * 1000 \
|
||||||
|
+ __GNUC_PATCHLEVEL__)
|
||||||
|
// XXX - the following is required until c++config.h
|
||||||
|
// defines _GLIBCXX_HAVE_SWPRINTF and friends
|
||||||
|
// or the preprocessor conditionals are removed
|
||||||
|
// from the cwchar header.
|
||||||
|
#define _GLIBCXX_HAVE_SWPRINTF 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
|
||||||
|
|| (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
|
||||||
|
# define BOOST_NO_CWCHAR
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// The BSD <ctype.h> has macros only, no functions:
|
||||||
|
//
|
||||||
|
#if !defined(__OpenBSD__) || defined(__DragonFly__)
|
||||||
|
# define BOOST_NO_CTYPE_FUNCTIONS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// thread API's not auto detected:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_SCHED_YIELD
|
||||||
|
#define BOOST_HAS_NANOSLEEP
|
||||||
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
#define BOOST_HAS_SIGACTION
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
// Copyright Nuxi, https://nuxi.nl/ 2015.
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "CloudABI"
|
||||||
|
|
||||||
|
#define BOOST_HAS_DIRENT_H
|
||||||
|
#define BOOST_HAS_STDINT_H
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
|
||||||
|
#define BOOST_HAS_CLOCK_GETTIME
|
||||||
|
#define BOOST_HAS_EXPM1
|
||||||
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#define BOOST_HAS_LOG1P
|
||||||
|
#define BOOST_HAS_NANOSLEEP
|
||||||
|
#define BOOST_HAS_PTHREADS
|
||||||
|
#define BOOST_HAS_SCHED_YIELD
|
|
@ -0,0 +1,18 @@
|
||||||
|
// (C) Copyright John Maddock 2011.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// SGI Irix specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "Cray"
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// cygwin specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "Cygwin"
|
||||||
|
#define BOOST_HAS_DIRENT_H
|
||||||
|
#define BOOST_HAS_LOG1P
|
||||||
|
#define BOOST_HAS_EXPM1
|
||||||
|
|
||||||
|
//
|
||||||
|
// Threading API:
|
||||||
|
// See if we have POSIX threads, if we do use them, otherwise
|
||||||
|
// revert to native Win threads.
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <unistd.h>
|
||||||
|
#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
//# define BOOST_HAS_SIGACTION
|
||||||
|
#else
|
||||||
|
# if !defined(BOOST_HAS_WINTHREADS)
|
||||||
|
# define BOOST_HAS_WINTHREADS
|
||||||
|
# endif
|
||||||
|
# define BOOST_HAS_FTIME
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// find out if we have a stdint.h, there should be a better way to do this:
|
||||||
|
//
|
||||||
|
#include <sys/types.h>
|
||||||
|
#ifdef _STDINT_H
|
||||||
|
#define BOOST_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/// Cygwin has no fenv.h
|
||||||
|
#define BOOST_NO_FENV_H
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
//
|
||||||
|
// Cygwin lies about XSI conformance, there is no nl_types.h:
|
||||||
|
//
|
||||||
|
#ifdef BOOST_HAS_NL_TYPES_H
|
||||||
|
# undef BOOST_HAS_NL_TYPES_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
// (C) Copyright Jessica Hamilton 2014.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Haiku specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "Haiku"
|
||||||
|
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#define BOOST_HAS_STDINT_H
|
||||||
|
|
||||||
|
#ifndef BOOST_DISABLE_THREADS
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
#define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
|
||||||
|
//
|
||||||
|
// thread API's not auto detected:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_SCHED_YIELD
|
||||||
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
|
@ -0,0 +1,87 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
|
// (C) Copyright David Abrahams 2002.
|
||||||
|
// (C) Copyright Toon Knapen 2003.
|
||||||
|
// (C) Copyright Boris Gubenko 2006 - 2007.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// hpux specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "HP-UX"
|
||||||
|
|
||||||
|
// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
|
||||||
|
// However, it has the following problem:
|
||||||
|
// Use of UINT32_C(0) results in "0u l" for the preprocessed source
|
||||||
|
// (verifyable with gcc 2.95.3)
|
||||||
|
#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
#endif
|
||||||
|
#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
|
||||||
|
# define BOOST_NO_CWCTYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
|
||||||
|
// GNU C on HP-UX does not support threads (checked up to gcc 3.3)
|
||||||
|
# define BOOST_DISABLE_THREADS
|
||||||
|
# elif !defined(BOOST_DISABLE_THREADS)
|
||||||
|
// threads supported from gcc-3.3 onwards:
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
# endif
|
||||||
|
#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
// the following are always available:
|
||||||
|
#ifndef BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_SCHED_YIELD
|
||||||
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_NL_TYPES_H
|
||||||
|
# define BOOST_HAS_NL_TYPES_H
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_NANOSLEEP
|
||||||
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_DIRENT_H
|
||||||
|
# define BOOST_HAS_DIRENT_H
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_CLOCK_GETTIME
|
||||||
|
# define BOOST_HAS_CLOCK_GETTIME
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_SIGACTION
|
||||||
|
# define BOOST_HAS_SIGACTION
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_NRVO
|
||||||
|
# ifndef __parisc
|
||||||
|
# define BOOST_HAS_NRVO
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_LOG1P
|
||||||
|
# define BOOST_HAS_LOG1P
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_HAS_EXPM1
|
||||||
|
# define BOOST_HAS_EXPM1
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// SGI Irix specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "SGI Irix"
|
||||||
|
|
||||||
|
#define BOOST_NO_SWPRINTF
|
||||||
|
//
|
||||||
|
// these are not auto detected by POSIX feature tests:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
|
||||||
|
#ifdef __GNUC__
|
||||||
|
// GNU C on IRIX does not support threads (checked up to gcc 3.3)
|
||||||
|
# define BOOST_DISABLE_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,106 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// linux specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "linux"
|
||||||
|
|
||||||
|
// make sure we have __GLIBC_PREREQ if available at all
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include <cstdlib>
|
||||||
|
#else
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// <stdint.h> added to glibc 2.1.1
|
||||||
|
// We can only test for 2.1 though:
|
||||||
|
//
|
||||||
|
#if defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 1)))
|
||||||
|
// <stdint.h> defines int64_t unconditionally, but <sys/types.h> defines
|
||||||
|
// int64_t only if __GNUC__. Thus, assume a fully usable <stdint.h>
|
||||||
|
// only when using GCC. Update 2017: this appears not to be the case for
|
||||||
|
// recent glibc releases, see bug report: https://svn.boost.org/trac/boost/ticket/13045
|
||||||
|
# if defined(__GNUC__) || ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 5)))
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__LIBCOMO__)
|
||||||
|
//
|
||||||
|
// como on linux doesn't have std:: c functions:
|
||||||
|
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
|
||||||
|
// e.g. version 25 is 21 (dec)
|
||||||
|
//
|
||||||
|
# if __LIBCOMO_VERSION__ <= 20
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if __LIBCOMO_VERSION__ <= 21
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// If glibc is past version 2 then we definitely have
|
||||||
|
// gettimeofday, earlier versions may or may not have it:
|
||||||
|
//
|
||||||
|
#if defined(__GLIBC__) && (__GLIBC__ >= 2)
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __USE_POSIX199309
|
||||||
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GLIBC__) && defined(__GLIBC_PREREQ)
|
||||||
|
// __GLIBC_PREREQ is available since 2.1.2
|
||||||
|
|
||||||
|
// swprintf is available since glibc 2.2.0
|
||||||
|
# if !__GLIBC_PREREQ(2,2) || (!defined(__USE_ISOC99) && !defined(__USE_UNIX98))
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
#if defined(__USE_GNU) && !defined(__ANDROID__) && !defined(ANDROID)
|
||||||
|
#define BOOST_HAS_PTHREAD_YIELD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __GNUC__
|
||||||
|
//
|
||||||
|
// if the compiler is not gcc we still need to be able to parse
|
||||||
|
// the GNU system headers, some of which (mainly <stdint.h>)
|
||||||
|
// use GNU specific extensions:
|
||||||
|
//
|
||||||
|
# ifndef __extension__
|
||||||
|
# define __extension__
|
||||||
|
# endif
|
||||||
|
# ifndef __const__
|
||||||
|
# define __const__ const
|
||||||
|
# endif
|
||||||
|
# ifndef __volatile__
|
||||||
|
# define __volatile__ volatile
|
||||||
|
# endif
|
||||||
|
# ifndef __signed__
|
||||||
|
# define __signed__ signed
|
||||||
|
# endif
|
||||||
|
# ifndef __typeof__
|
||||||
|
# define __typeof__ typeof
|
||||||
|
# endif
|
||||||
|
# ifndef __inline__
|
||||||
|
# define __inline__ inline
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Darin Adler 2001 - 2002.
|
||||||
|
// (C) Copyright Bill Kempf 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Mac OS specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "Mac OS"
|
||||||
|
|
||||||
|
#if __MACH__ && !defined(_MSL_USING_MSL_C)
|
||||||
|
|
||||||
|
// Using the Mac OS X system BSD-style C library.
|
||||||
|
|
||||||
|
# ifndef BOOST_HAS_UNISTD_H
|
||||||
|
# define BOOST_HAS_UNISTD_H
|
||||||
|
# endif
|
||||||
|
//
|
||||||
|
// Begin by including our boilerplate code for POSIX
|
||||||
|
// feature detection, this is safe even when using
|
||||||
|
// the MSL as Metrowerks supply their own <unistd.h>
|
||||||
|
// to replace the platform-native BSD one. G++ users
|
||||||
|
// should also always be able to do this on MaxOS X.
|
||||||
|
//
|
||||||
|
# include <boost/config/detail/posix_features.hpp>
|
||||||
|
# ifndef BOOST_HAS_STDINT_H
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
# endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// BSD runtime has pthreads, sigaction, sched_yield and gettimeofday,
|
||||||
|
// of these only pthreads are advertised in <unistd.h>, so set the
|
||||||
|
// other options explicitly:
|
||||||
|
//
|
||||||
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# define BOOST_HAS_SIGACTION
|
||||||
|
|
||||||
|
# if (__GNUC__ < 3) && !defined( __APPLE_CC__)
|
||||||
|
|
||||||
|
// GCC strange "ignore std" mode works better if you pretend everything
|
||||||
|
// is in the std namespace, for the most part.
|
||||||
|
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# if (__GNUC__ >= 4)
|
||||||
|
|
||||||
|
// Both gcc and intel require these.
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
// Using the MSL C library.
|
||||||
|
|
||||||
|
// We will eventually support threads in non-Carbon builds, but we do
|
||||||
|
// not support this yet.
|
||||||
|
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
|
||||||
|
|
||||||
|
# if !defined(BOOST_HAS_PTHREADS)
|
||||||
|
// MPTasks support is deprecated/removed from Boost:
|
||||||
|
//# define BOOST_HAS_MPTASKS
|
||||||
|
# elif ( __dest_os == __mac_os_x )
|
||||||
|
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
|
||||||
|
// gettimeofday and no posix.
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#ifdef BOOST_HAS_PTHREADS
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// The remote call manager depends on this.
|
||||||
|
# define BOOST_BIND_ENABLE_PASCAL
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
// (C) Copyright Jim Douglas 2005.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// QNX specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "QNX"
|
||||||
|
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
|
||||||
|
// or log1p and expm1:
|
||||||
|
#undef BOOST_HAS_NL_TYPES_H
|
||||||
|
#undef BOOST_HAS_LOG1P
|
||||||
|
#undef BOOST_HAS_EXPM1
|
||||||
|
|
||||||
|
#define BOOST_HAS_PTHREADS
|
||||||
|
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
|
||||||
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#define BOOST_HAS_CLOCK_GETTIME
|
||||||
|
#define BOOST_HAS_NANOSLEEP
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// sun specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "Sun Solaris"
|
||||||
|
|
||||||
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
|
||||||
|
// boilerplate code:
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
//
|
||||||
|
// pthreads don't actually work with gcc unless _PTHREADS is defined:
|
||||||
|
//
|
||||||
|
#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
|
||||||
|
# undef BOOST_HAS_PTHREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_HAS_STDINT_H
|
||||||
|
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
#define BOOST_HAS_LOG1P
|
||||||
|
#define BOOST_HAS_EXPM1
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,97 @@
|
||||||
|
// (C) Copyright Yuriy Krasnoschek 2009.
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// symbian specific config options:
|
||||||
|
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "Symbian"
|
||||||
|
#define BOOST_SYMBIAN 1
|
||||||
|
|
||||||
|
|
||||||
|
#if defined(__S60_3X__)
|
||||||
|
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
|
||||||
|
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
|
||||||
|
// make sure we have __GLIBC_PREREQ if available at all
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#include <cstdlib>
|
||||||
|
#else
|
||||||
|
#include <stdlib.h>
|
||||||
|
#endif// boilerplate code:
|
||||||
|
# define BOOST_HAS_UNISTD_H
|
||||||
|
# include <boost/config/detail/posix_features.hpp>
|
||||||
|
// S60 SDK defines _POSIX_VERSION as POSIX.1
|
||||||
|
# ifndef BOOST_HAS_STDINT_H
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_DIRENT_H
|
||||||
|
# define BOOST_HAS_DIRENT_H
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_SIGACTION
|
||||||
|
# define BOOST_HAS_SIGACTION
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_PTHREADS
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_NANOSLEEP
|
||||||
|
# define BOOST_HAS_NANOSLEEP
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_SCHED_YIELD
|
||||||
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_LOG1P
|
||||||
|
# define BOOST_HAS_LOG1P
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_HAS_EXPM1
|
||||||
|
# define BOOST_HAS_EXPM1
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_POSIX_API
|
||||||
|
# define BOOST_POSIX_API
|
||||||
|
# endif
|
||||||
|
// endianess support
|
||||||
|
# include <sys/endian.h>
|
||||||
|
// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
|
||||||
|
# ifndef __LITTLE_ENDIAN
|
||||||
|
# ifdef _LITTLE_ENDIAN
|
||||||
|
# define __LITTLE_ENDIAN _LITTLE_ENDIAN
|
||||||
|
# else
|
||||||
|
# define __LITTLE_ENDIAN 1234
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifndef __BIG_ENDIAN
|
||||||
|
# ifdef _BIG_ENDIAN
|
||||||
|
# define __BIG_ENDIAN _BIG_ENDIAN
|
||||||
|
# else
|
||||||
|
# define __BIG_ENDIAN 4321
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# ifndef __BYTE_ORDER
|
||||||
|
# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
|
||||||
|
# endif
|
||||||
|
// Known limitations
|
||||||
|
# define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||||
|
# define BOOST_DATE_TIME_NO_LOCALE
|
||||||
|
# define BOOST_NO_STD_WSTRING
|
||||||
|
# define BOOST_EXCEPTION_DISABLE
|
||||||
|
# define BOOST_NO_EXCEPTIONS
|
||||||
|
|
||||||
|
#else // TODO: More platform support e.g. UIQ
|
||||||
|
# error "Unsuppoted Symbian SDK"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
|
||||||
|
# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,392 @@
|
||||||
|
// (C) Copyright Dustin Spicuzza 2009.
|
||||||
|
// Adapted to vxWorks 6.9 by Peter Brockamp 2012.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Since WRS does not yet properly support boost under vxWorks
|
||||||
|
// and this file was badly outdated, but I was keen on using it,
|
||||||
|
// I patched boost myself to make things work. This has been tested
|
||||||
|
// and adapted by me for vxWorks 6.9 *only*, as I'm lacking access
|
||||||
|
// to earlier 6.X versions! The only thing I know for sure is that
|
||||||
|
// very old versions of vxWorks (namely everything below 6.x) are
|
||||||
|
// absolutely unable to use boost. This is mainly due to the completely
|
||||||
|
// outdated libraries and ancient compiler (GCC 2.96 or worse). Do
|
||||||
|
// not even think of getting this to work, a miserable failure will
|
||||||
|
// be guaranteed!
|
||||||
|
// Equally, this file has been tested for RTPs (Real Time Processes)
|
||||||
|
// only, not for DKMs (Downloadable Kernel Modules). These two types
|
||||||
|
// of executables differ largely in the available functionality of
|
||||||
|
// the C-library, STL, and so on. A DKM uses a library similar to those
|
||||||
|
// of vxWorks 5.X - with all its limitations and incompatibilities
|
||||||
|
// with respect to ANSI C++ and STL. So probably there might be problems
|
||||||
|
// with the usage of boost from DKMs. WRS or any voluteers are free to
|
||||||
|
// prove the opposite!
|
||||||
|
|
||||||
|
// ====================================================================
|
||||||
|
//
|
||||||
|
// Some important information regarding the usage of POSIX semaphores:
|
||||||
|
// -------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// VxWorks as a real time operating system handles threads somewhat
|
||||||
|
// different from what "normal" OSes do, regarding their scheduling!
|
||||||
|
// This could lead to a scenario called "priority inversion" when using
|
||||||
|
// semaphores, see http://en.wikipedia.org/wiki/Priority_inversion.
|
||||||
|
//
|
||||||
|
// Now, VxWorks POSIX-semaphores for DKM's default to the usage of
|
||||||
|
// priority inverting semaphores, which is fine. On the other hand,
|
||||||
|
// for RTP's it defaults to using non priority inverting semaphores,
|
||||||
|
// which could easily pose a serious problem for a real time process,
|
||||||
|
// i.e. deadlocks! To overcome this two possibilities do exist:
|
||||||
|
//
|
||||||
|
// a) Patch every piece of boost that uses semaphores to instanciate
|
||||||
|
// the proper type of semaphores. This is non-intrusive with respect
|
||||||
|
// to the OS and could relatively easy been done by giving all
|
||||||
|
// semaphores attributes deviating from the default (for in-depth
|
||||||
|
// information see the POSIX functions pthread_mutexattr_init()
|
||||||
|
// and pthread_mutexattr_setprotocol()). However this breaks all
|
||||||
|
// too easily, as with every new version some boost library could
|
||||||
|
// all in a sudden start using semaphores, resurrecting the very
|
||||||
|
// same, hard to locate problem over and over again!
|
||||||
|
//
|
||||||
|
// b) We could change the default properties for POSIX-semaphores
|
||||||
|
// that VxWorks uses for RTP's and this is being suggested here,
|
||||||
|
// as it will more or less seamlessly integrate with boost. I got
|
||||||
|
// the following information from WRS how to do this, compare
|
||||||
|
// Wind River TSR# 1209768:
|
||||||
|
//
|
||||||
|
// Instructions for changing the default properties of POSIX-
|
||||||
|
// semaphores for RTP's in VxWorks 6.9:
|
||||||
|
// - Edit the file /vxworks-6.9/target/usr/src/posix/pthreadLib.c
|
||||||
|
// in the root of your Workbench-installation.
|
||||||
|
// - Around line 917 there should be the definition of the default
|
||||||
|
// mutex attributes:
|
||||||
|
//
|
||||||
|
// LOCAL pthread_mutexattr_t defaultMutexAttr =
|
||||||
|
// {
|
||||||
|
// PTHREAD_INITIALIZED_OBJ, PTHREAD_PRIO_NONE, 0,
|
||||||
|
// PTHREAD_MUTEX_DEFAULT
|
||||||
|
// };
|
||||||
|
//
|
||||||
|
// Here, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
|
||||||
|
// - Around line 1236 there should be a definition for the function
|
||||||
|
// pthread_mutexattr_init(). A couple of lines below you should
|
||||||
|
// find a block of code like this:
|
||||||
|
//
|
||||||
|
// pAttr->mutexAttrStatus = PTHREAD_INITIALIZED_OBJ;
|
||||||
|
// pAttr->mutexAttrProtocol = PTHREAD_PRIO_NONE;
|
||||||
|
// pAttr->mutexAttrPrioceiling = 0;
|
||||||
|
// pAttr->mutexAttrType = PTHREAD_MUTEX_DEFAULT;
|
||||||
|
//
|
||||||
|
// Here again, replace PTHREAD_PRIO_NONE by PTHREAD_PRIO_INHERIT.
|
||||||
|
// - Finally, rebuild your VSB. This will create a new VxWorks kernel
|
||||||
|
// with the changed properties. That's it! Now, using boost should
|
||||||
|
// no longer cause any problems with task deadlocks!
|
||||||
|
//
|
||||||
|
// And here's another useful piece of information concerning VxWorks'
|
||||||
|
// POSIX-functionality in general:
|
||||||
|
// VxWorks is not a genuine POSIX-OS in itself, rather it is using a
|
||||||
|
// kind of compatibility layer (sort of a wrapper) to emulate the
|
||||||
|
// POSIX-functionality by using its own resources and functions.
|
||||||
|
// At the time a task (thread) calls it's first POSIX-function during
|
||||||
|
// runtime it is being transformed by the OS into a POSIX-thread.
|
||||||
|
// This transformation does include a call to malloc() to allocate the
|
||||||
|
// memory required for the housekeeping of POSIX-threads. In a high
|
||||||
|
// priority RTP this malloc() call may be highly undesirable, as its
|
||||||
|
// timing is more or less unpredictable (depending on what your actual
|
||||||
|
// heap looks like). You can circumvent this problem by calling the
|
||||||
|
// function thread_self() at a well defined point in the code of the
|
||||||
|
// task, e.g. shortly after the task spawns up. Thereby you are able
|
||||||
|
// to define the time when the task-transformation will take place and
|
||||||
|
// you could shift it to an uncritical point where a malloc() call is
|
||||||
|
// tolerable. So, if this could pose a problem for your code, remember
|
||||||
|
// to call thread_self() from the affected task at an early stage.
|
||||||
|
//
|
||||||
|
// ====================================================================
|
||||||
|
|
||||||
|
// Block out all versions before vxWorks 6.x, as these don't work:
|
||||||
|
// Include header with the vxWorks version information and query them
|
||||||
|
#include <version.h>
|
||||||
|
#if !defined(_WRS_VXWORKS_MAJOR) || (_WRS_VXWORKS_MAJOR < 6)
|
||||||
|
# error "The vxWorks version you're using is so badly outdated,\
|
||||||
|
it doesn't work at all with boost, sorry, no chance!"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Handle versions above 5.X but below 6.9
|
||||||
|
#if (_WRS_VXWORKS_MAJOR == 6) && (_WRS_VXWORKS_MINOR < 9)
|
||||||
|
// TODO: Starting from what version does vxWorks work with boost?
|
||||||
|
// We can't reasonably insert a #warning "" as a user hint here,
|
||||||
|
// as this will show up with every file including some boost header,
|
||||||
|
// badly bugging the user... So for the time being we just leave it.
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// vxWorks specific config options:
|
||||||
|
// --------------------------------
|
||||||
|
#define BOOST_PLATFORM "vxWorks"
|
||||||
|
|
||||||
|
// Special behaviour for DKMs:
|
||||||
|
#ifdef _WRS_KERNEL
|
||||||
|
// DKMs do not have the <cwchar>-header,
|
||||||
|
// but apparently they do have an intrinsic wchar_t meanwhile!
|
||||||
|
# define BOOST_NO_CWCHAR
|
||||||
|
|
||||||
|
// Lots of wide-functions and -headers are unavailable for DKMs as well:
|
||||||
|
# define BOOST_NO_CWCTYPE
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
# define BOOST_NO_STD_WSTRING
|
||||||
|
# define BOOST_NO_STD_WSTREAMBUF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Generally available headers:
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#define BOOST_HAS_STDINT_H
|
||||||
|
#define BOOST_HAS_DIRENT_H
|
||||||
|
#define BOOST_HAS_SLIST
|
||||||
|
|
||||||
|
// vxWorks does not have installed an iconv-library by default,
|
||||||
|
// so unfortunately no Unicode support from scratch is available!
|
||||||
|
// Thus, instead it is suggested to switch to ICU, as this seems
|
||||||
|
// to be the most complete and portable option...
|
||||||
|
#define BOOST_LOCALE_WITH_ICU
|
||||||
|
|
||||||
|
// Generally available functionality:
|
||||||
|
#define BOOST_HAS_THREADS
|
||||||
|
#define BOOST_HAS_NANOSLEEP
|
||||||
|
#define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#define BOOST_HAS_CLOCK_GETTIME
|
||||||
|
#define BOOST_HAS_MACRO_USE_FACET
|
||||||
|
|
||||||
|
// Generally unavailable functionality, delivered by boost's test function:
|
||||||
|
//#define BOOST_NO_DEDUCED_TYPENAME // Commented this out, boost's test gives an errorneous result!
|
||||||
|
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||||
|
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||||
|
|
||||||
|
// Generally available threading API's:
|
||||||
|
#define BOOST_HAS_PTHREADS
|
||||||
|
#define BOOST_HAS_SCHED_YIELD
|
||||||
|
#define BOOST_HAS_SIGACTION
|
||||||
|
|
||||||
|
// Functionality available for RTPs only:
|
||||||
|
#ifdef __RTP__
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_LOG1P
|
||||||
|
# define BOOST_HAS_EXPM1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Functionality available for DKMs only:
|
||||||
|
#ifdef _WRS_KERNEL
|
||||||
|
// Luckily, at the moment there seems to be none!
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// These #defines allow detail/posix_features to work, since vxWorks doesn't
|
||||||
|
// #define them itself for DKMs (for RTPs on the contrary it does):
|
||||||
|
#ifdef _WRS_KERNEL
|
||||||
|
# ifndef _POSIX_TIMERS
|
||||||
|
# define _POSIX_TIMERS 1
|
||||||
|
# endif
|
||||||
|
# ifndef _POSIX_THREADS
|
||||||
|
# define _POSIX_THREADS 1
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// vxWorks doesn't work with asio serial ports:
|
||||||
|
#define BOOST_ASIO_DISABLE_SERIAL_PORT
|
||||||
|
// TODO: The problem here seems to bee that vxWorks uses its own, very specific
|
||||||
|
// ways to handle serial ports, incompatible with POSIX or anything...
|
||||||
|
// Maybe a specific implementation would be possible, but until the
|
||||||
|
// straight need arises... This implementation would presumably consist
|
||||||
|
// of some vxWorks specific ioctl-calls, etc. Any voluteers?
|
||||||
|
|
||||||
|
// vxWorks-around: <time.h> #defines CLOCKS_PER_SEC as sysClkRateGet() but
|
||||||
|
// miserably fails to #include the required <sysLib.h> to make
|
||||||
|
// sysClkRateGet() available! So we manually include it here.
|
||||||
|
#ifdef __RTP__
|
||||||
|
# include <time.h>
|
||||||
|
# include <sysLib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// vxWorks-around: In <stdint.h> the macros INT32_C(), UINT32_C(), INT64_C() and
|
||||||
|
// UINT64_C() are defined errorneously, yielding not a signed/
|
||||||
|
// unsigned long/long long type, but a signed/unsigned int/long
|
||||||
|
// type. Eventually this leads to compile errors in ratio_fwd.hpp,
|
||||||
|
// when trying to define several constants which do not fit into a
|
||||||
|
// long type! We correct them here by redefining.
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
// Some macro-magic to do the job
|
||||||
|
#define VX_JOIN(X, Y) VX_DO_JOIN(X, Y)
|
||||||
|
#define VX_DO_JOIN(X, Y) VX_DO_JOIN2(X, Y)
|
||||||
|
#define VX_DO_JOIN2(X, Y) X##Y
|
||||||
|
|
||||||
|
// Correctly setup the macros
|
||||||
|
#undef INT32_C
|
||||||
|
#undef UINT32_C
|
||||||
|
#undef INT64_C
|
||||||
|
#undef UINT64_C
|
||||||
|
#define INT32_C(x) VX_JOIN(x, L)
|
||||||
|
#define UINT32_C(x) VX_JOIN(x, UL)
|
||||||
|
#define INT64_C(x) VX_JOIN(x, LL)
|
||||||
|
#define UINT64_C(x) VX_JOIN(x, ULL)
|
||||||
|
|
||||||
|
// #include Libraries required for the following function adaption
|
||||||
|
#include <ioLib.h>
|
||||||
|
#include <tickLib.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
|
||||||
|
// Use C-linkage for the following helper functions
|
||||||
|
extern "C" {
|
||||||
|
|
||||||
|
// vxWorks-around: The required functions getrlimit() and getrlimit() are missing.
|
||||||
|
// But we have the similar functions getprlimit() and setprlimit(),
|
||||||
|
// which may serve the purpose.
|
||||||
|
// Problem: The vxWorks-documentation regarding these functions
|
||||||
|
// doesn't deserve its name! It isn't documented what the first two
|
||||||
|
// parameters idtype and id mean, so we must fall back to an educated
|
||||||
|
// guess - null, argh... :-/
|
||||||
|
|
||||||
|
// TODO: getprlimit() and setprlimit() do exist for RTPs only, for whatever reason.
|
||||||
|
// Thus for DKMs there would have to be another implementation.
|
||||||
|
#ifdef __RTP__
|
||||||
|
inline int getrlimit(int resource, struct rlimit *rlp){
|
||||||
|
return getprlimit(0, 0, resource, rlp);
|
||||||
|
}
|
||||||
|
|
||||||
|
inline int setrlimit(int resource, const struct rlimit *rlp){
|
||||||
|
return setprlimit(0, 0, resource, const_cast<struct rlimit*>(rlp));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// vxWorks has ftruncate() only, so we do simulate truncate():
|
||||||
|
inline int truncate(const char *p, off_t l){
|
||||||
|
int fd = open(p, O_WRONLY);
|
||||||
|
if (fd == -1){
|
||||||
|
errno = EACCES;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (ftruncate(fd, l) == -1){
|
||||||
|
close(fd);
|
||||||
|
errno = EACCES;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return close(fd);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fake symlink handling by dummy functions:
|
||||||
|
inline int symlink(const char*, const char*){
|
||||||
|
// vxWorks has no symlinks -> always return an error!
|
||||||
|
errno = EACCES;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline ssize_t readlink(const char*, char*, size_t){
|
||||||
|
// vxWorks has no symlinks -> always return an error!
|
||||||
|
errno = EACCES;
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if (_WRS_VXWORKS_MAJOR < 7)
|
||||||
|
|
||||||
|
inline int gettimeofday(struct timeval *tv, void * /*tzv*/) {
|
||||||
|
struct timespec ts;
|
||||||
|
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||||
|
tv->tv_sec = ts.tv_sec;
|
||||||
|
tv->tv_usec = ts.tv_nsec / 1000;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// vxWorks does provide neither struct tms nor function times()!
|
||||||
|
// We implement an empty dummy-function, simply setting the user
|
||||||
|
// and system time to the half of thew actual system ticks-value
|
||||||
|
// and the child user and system time to 0.
|
||||||
|
// Rather ugly but at least it suppresses compiler errors...
|
||||||
|
// Unfortunately, this of course *does* have an severe impact on
|
||||||
|
// dependant libraries, actually this is chrono only! Here it will
|
||||||
|
// not be possible to correctly use user and system times! But
|
||||||
|
// as vxWorks is lacking the ability to calculate user and system
|
||||||
|
// process times there seems to be no other possible solution.
|
||||||
|
struct tms{
|
||||||
|
clock_t tms_utime; // User CPU time
|
||||||
|
clock_t tms_stime; // System CPU time
|
||||||
|
clock_t tms_cutime; // User CPU time of terminated child processes
|
||||||
|
clock_t tms_cstime; // System CPU time of terminated child processes
|
||||||
|
};
|
||||||
|
|
||||||
|
inline clock_t times(struct tms *t){
|
||||||
|
struct timespec ts;
|
||||||
|
clock_gettime(CLOCK_THREAD_CPUTIME_ID, &ts);
|
||||||
|
clock_t ticks(static_cast<clock_t>(static_cast<double>(ts.tv_sec) * CLOCKS_PER_SEC +
|
||||||
|
static_cast<double>(ts.tv_nsec) * CLOCKS_PER_SEC / 1000000.0));
|
||||||
|
t->tms_utime = ticks/2U;
|
||||||
|
t->tms_stime = ticks/2U;
|
||||||
|
t->tms_cutime = 0; // vxWorks is lacking the concept of a child process!
|
||||||
|
t->tms_cstime = 0; // -> Set the wait times for childs to 0
|
||||||
|
return ticks;
|
||||||
|
}
|
||||||
|
|
||||||
|
extern void bzero (void *, size_t); // FD_ZERO uses bzero() but doesn't include strings.h
|
||||||
|
} // extern "C"
|
||||||
|
|
||||||
|
// Put the selfmade functions into the std-namespace, just in case
|
||||||
|
namespace std {
|
||||||
|
# ifdef __RTP__
|
||||||
|
using ::getrlimit;
|
||||||
|
using ::setrlimit;
|
||||||
|
# endif
|
||||||
|
using ::truncate;
|
||||||
|
using ::symlink;
|
||||||
|
using ::readlink;
|
||||||
|
using ::times;
|
||||||
|
using ::gettimeofday;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Some more macro-magic:
|
||||||
|
// vxWorks-around: Some functions are not present or broken in vxWorks
|
||||||
|
// but may be patched to life via helper macros...
|
||||||
|
|
||||||
|
// Include signal.h which might contain a typo to be corrected here
|
||||||
|
#include <signal.h>
|
||||||
|
|
||||||
|
inline int getpagesize() { return sysconf(_SC_PAGESIZE); } // getpagesize is deprecated anyway!
|
||||||
|
#ifndef S_ISSOCK
|
||||||
|
# define S_ISSOCK(mode) ((mode & S_IFMT) == S_IFSOCK) // Is file a socket?
|
||||||
|
#endif
|
||||||
|
inline int lstat(p, b) { return stat(p, b); } // lstat() == stat(), as vxWorks has no symlinks!
|
||||||
|
#ifndef FPE_FLTINV
|
||||||
|
# define FPE_FLTINV (FPE_FLTSUB+1) // vxWorks has no FPE_FLTINV, so define one as a dummy
|
||||||
|
#endif
|
||||||
|
#if !defined(BUS_ADRALN) && defined(BUS_ADRALNR)
|
||||||
|
# define BUS_ADRALN BUS_ADRALNR // Correct a supposed typo in vxWorks' <signal.h>
|
||||||
|
#endif
|
||||||
|
typedef int locale_t; // locale_t is a POSIX-extension, currently not present in vxWorks!
|
||||||
|
|
||||||
|
// #include boilerplate code:
|
||||||
|
#include <boost/config/detail/posix_features.hpp>
|
||||||
|
|
||||||
|
// vxWorks lies about XSI conformance, there is no nl_types.h:
|
||||||
|
#undef BOOST_HAS_NL_TYPES_H
|
||||||
|
|
||||||
|
// vxWorks 7 adds C++11 support
|
||||||
|
// however it is optional, and does not match exactly the support determined
|
||||||
|
// by examining Dinkum STL version and GCC version (or ICC and DCC)
|
||||||
|
|
||||||
|
#ifndef _WRS_CONFIG_LANG_LIB_CPLUS_CPLUS_USER_2011
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX11_NULLPTR
|
||||||
|
#endif
|
||||||
|
|
|
@ -0,0 +1,90 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Bill Kempf 2001.
|
||||||
|
// (C) Copyright Aleksey Gurtovoy 2003.
|
||||||
|
// (C) Copyright Rene Rivera 2005.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Win32 specific config options:
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "Win32"
|
||||||
|
|
||||||
|
// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
|
||||||
|
#if defined(__MINGW32__)
|
||||||
|
# include <_mingw.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
|
||||||
|
// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
|
||||||
|
// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
|
||||||
|
// BOOST_SYMBOL_IMPORT
|
||||||
|
#ifndef BOOST_SYMBOL_EXPORT
|
||||||
|
# define BOOST_HAS_DECLSPEC
|
||||||
|
# define BOOST_SYMBOL_EXPORT __declspec(dllexport)
|
||||||
|
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
# ifndef __STDC_LIMIT_MACROS
|
||||||
|
# define __STDC_LIMIT_MACROS
|
||||||
|
# endif
|
||||||
|
# define BOOST_HAS_DIRENT_H
|
||||||
|
# define BOOST_HAS_UNISTD_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__MINGW32__) && (__GNUC__ >= 4)
|
||||||
|
// Mingw has these functions but there are persistent problems
|
||||||
|
// with calls to these crashing, so disable for now:
|
||||||
|
//# define BOOST_HAS_EXPM1
|
||||||
|
//# define BOOST_HAS_LOG1P
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Win32 will normally be using native Win32 threads,
|
||||||
|
// but there is a pthread library avaliable as an option,
|
||||||
|
// we used to disable this when BOOST_DISABLE_WIN32 was
|
||||||
|
// defined but no longer - this should allow some
|
||||||
|
// files to be compiled in strict mode - while maintaining
|
||||||
|
// a consistent setting of BOOST_HAS_THREADS across
|
||||||
|
// all translation units (needed for shared_ptr etc).
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef BOOST_HAS_PTHREADS
|
||||||
|
# define BOOST_HAS_WINTHREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// WinCE configuration:
|
||||||
|
//
|
||||||
|
#if defined(_WIN32_WCE) || defined(UNDER_CE)
|
||||||
|
# define BOOST_NO_ANSI_APIS
|
||||||
|
// Windows CE does not have a conforming signature for swprintf
|
||||||
|
# define BOOST_NO_SWPRINTF
|
||||||
|
#else
|
||||||
|
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||||
|
# define BOOST_HAS_THREADEX
|
||||||
|
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Windows Runtime
|
||||||
|
//
|
||||||
|
#if defined(WINAPI_FAMILY) && \
|
||||||
|
(WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)
|
||||||
|
# define BOOST_NO_ANSI_APIS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_DISABLE_WIN32
|
||||||
|
// WEK: Added
|
||||||
|
#define BOOST_HAS_FTIME
|
||||||
|
#define BOOST_WINDOWS 1
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,32 @@
|
||||||
|
// Copyright (c) 2017 Dynatrace
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
|
// Platform setup for IBM z/OS.
|
||||||
|
|
||||||
|
#define BOOST_PLATFORM "IBM z/OS"
|
||||||
|
|
||||||
|
#include <features.h> // For __UU, __C99, __TR1, ...
|
||||||
|
|
||||||
|
#if defined(__UU)
|
||||||
|
# define BOOST_HAS_GETTIMEOFDAY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_OPEN_THREADS) || defined(__SUSV3_THR)
|
||||||
|
# define BOOST_HAS_PTHREADS
|
||||||
|
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SUSV3) || defined(__SUSV3_THR)
|
||||||
|
# define BOOST_HAS_SCHED_YIELD
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_HAS_SIGACTION
|
||||||
|
#define BOOST_HAS_UNISTD_H
|
||||||
|
#define BOOST_HAS_DIRENT_H
|
||||||
|
#define BOOST_HAS_NL_TYPES_H
|
|
@ -0,0 +1,251 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2001.
|
||||||
|
// (C) Copyright Peter Dimov 2001.
|
||||||
|
// (C) Copyright David Abrahams 2002.
|
||||||
|
// (C) Copyright Guillaume Melquiond 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Dinkumware standard library config:
|
||||||
|
|
||||||
|
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
|
||||||
|
#include <boost/config/no_tr1/utility.hpp>
|
||||||
|
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
|
||||||
|
#error This is not the Dinkumware lib!
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#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
|
||||||
|
# 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)
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
# endif
|
||||||
|
# define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
|
# if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
|
||||||
|
// if this lib version is set up for vc6 then there is no std::use_facet:
|
||||||
|
# define BOOST_NO_STD_USE_FACET
|
||||||
|
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||||
|
// C lib functions aren't in namespace std either:
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
// and nor is <exception>
|
||||||
|
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
|
# endif
|
||||||
|
// There's no numeric_limits<long long> support unless _LONGLONG is defined:
|
||||||
|
# if !defined(_LONGLONG) && (_CPPLIB_VER <= 310)
|
||||||
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
|
# endif
|
||||||
|
// 3.06 appears to have (non-sgi versions of) <hash_set> & <hash_map>,
|
||||||
|
// and no <slist> at all
|
||||||
|
#else
|
||||||
|
# define BOOST_MSVC_STD_ITERATOR 1
|
||||||
|
# define BOOST_NO_STD_ITERATOR
|
||||||
|
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
# define BOOST_NO_STD_USE_FACET
|
||||||
|
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||||
|
# define BOOST_HAS_MACRO_USE_FACET
|
||||||
|
# ifndef _CPPLIB_VER
|
||||||
|
// Updated Dinkum library defines this, and provides
|
||||||
|
// its own min and max definitions, as does MTA version.
|
||||||
|
# ifndef __MTA__
|
||||||
|
# define BOOST_NO_STD_MIN_MAX
|
||||||
|
# endif
|
||||||
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// std extension namespace is stdext for vc7.1 and later,
|
||||||
|
// 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__)
|
||||||
|
# define BOOST_STD_EXTENSION_NAMESPACE stdext
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if (defined(_MSC_VER) && (_MSC_VER <= 1300) && !defined(__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)
|
||||||
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__ICL) && (__ICL < 800) && defined(_CPPLIB_VER) && (_CPPLIB_VER <= 310)
|
||||||
|
// Intel C++ chokes over any non-trivial use of <locale>
|
||||||
|
// this may be an overly restrictive define, but regex fails without it:
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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)))
|
||||||
|
#include <exception>
|
||||||
|
#endif
|
||||||
|
#include <typeinfo>
|
||||||
|
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) ) && !defined(__TI_COMPILER_VERSION__) && !defined(__VISUALDSPVERSION__)
|
||||||
|
# define BOOST_NO_STD_TYPEINFO
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers implemented in 520 (as shipped by Microsoft)
|
||||||
|
//
|
||||||
|
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ((!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)) \
|
||||||
|
&& (!defined(_CPPLIB_VER) || _CPPLIB_VER < 610)
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers implemented in 540 (as shipped by Microsoft)
|
||||||
|
//
|
||||||
|
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 540
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers implemented in 610 (as shipped by Microsoft)
|
||||||
|
//
|
||||||
|
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 610
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
// 540 has std::align but it is not a conforming implementation
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Before 650 std::pointer_traits has a broken rebind template
|
||||||
|
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
#elif defined(BOOST_MSVC) && BOOST_MSVC < 1910
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif (__cplusplus < 201402) && !defined(_MSC_VER)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#elif !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
#endif
|
||||||
|
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)
|
||||||
|
// Intel's compiler can't handle this header yet:
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
// 520..610 have std::addressof, but it doesn't support functions
|
||||||
|
//
|
||||||
|
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 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)
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
|
||||||
|
// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr and std::random_shuffle are not available.
|
||||||
|
// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
|
||||||
|
// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
|
||||||
|
# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
|
||||||
|
# define BOOST_NO_AUTO_PTR
|
||||||
|
# define BOOST_NO_CXX98_RANDOM_SHUFFLE
|
||||||
|
# define BOOST_NO_CXX98_FUNCTION_BASE
|
||||||
|
# define BOOST_NO_CXX98_BINDERS
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Things not supported by the CLR:
|
||||||
|
#ifdef _M_CEE
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_NO_FENV_H
|
||||||
|
# define BOOST_NO_FENV_H
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _CPPLIB_VER
|
||||||
|
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
||||||
|
#else
|
||||||
|
# define BOOST_DINKUMWARE_STDLIB 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _CPPLIB_VER
|
||||||
|
# define BOOST_STDLIB "Dinkumware standard library version " BOOST_STRINGIZE(_CPPLIB_VER)
|
||||||
|
#else
|
||||||
|
# define BOOST_STDLIB "Dinkumware standard library version 1.x"
|
||||||
|
#endif
|
|
@ -0,0 +1,91 @@
|
||||||
|
// (C) Copyright John Maddock 2002 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2002 - 2003.
|
||||||
|
// (C) Copyright Beman Dawes 2002 - 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Comeau STL:
|
||||||
|
|
||||||
|
#if !defined(__LIBCOMO__)
|
||||||
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
|
# if !defined(__LIBCOMO__)
|
||||||
|
# error "This is not the Comeau STL!"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// std::streambuf<wchar_t> is non-standard
|
||||||
|
// NOTE: versions of libcomo prior to beta28 have octal version numbering,
|
||||||
|
// e.g. version 25 is 21 (dec)
|
||||||
|
#if __LIBCOMO_VERSION__ <= 22
|
||||||
|
# define BOOST_NO_STD_WSTREAMBUF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (__LIBCOMO_VERSION__ <= 31) && defined(_WIN32)
|
||||||
|
#define BOOST_NO_SWPRINTF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __LIBCOMO_VERSION__ >= 31
|
||||||
|
# define BOOST_HAS_HASH
|
||||||
|
# define BOOST_HAS_SLIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers not yet implemented
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus < 201402
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
|
||||||
|
//
|
||||||
|
// Intrinsic type_traits support.
|
||||||
|
// The SGI STL has it's own __type_traits class, which
|
||||||
|
// has intrinsic compiler support with SGI's compilers.
|
||||||
|
// Whatever map SGI style type traits to boost equivalents:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "Comeau standard library " BOOST_STRINGIZE(__LIBCOMO_VERSION__)
|
|
@ -0,0 +1,124 @@
|
||||||
|
// (C) Copyright Christopher Jefferson 2011.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// config for libc++
|
||||||
|
// Might need more in here later.
|
||||||
|
|
||||||
|
#if !defined(_LIBCPP_VERSION)
|
||||||
|
# include <ciso646>
|
||||||
|
# if !defined(_LIBCPP_VERSION)
|
||||||
|
# error "This is not libc++!"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
|
||||||
|
|
||||||
|
#define BOOST_HAS_THREADS
|
||||||
|
|
||||||
|
#ifdef _LIBCPP_HAS_NO_VARIADICS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11
|
||||||
|
// allocator model. The C++11 allocator model requires a conforming
|
||||||
|
// std::allocator_traits which is only possible with C++11 template
|
||||||
|
// aliases since members rebind_alloc and rebind_traits require it.
|
||||||
|
#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __cplusplus < 201103
|
||||||
|
//
|
||||||
|
// These two appear to be somewhat useable in C++03 mode, there may be others...
|
||||||
|
//
|
||||||
|
//# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
//# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
#elif _LIBCPP_VERSION < 3700
|
||||||
|
//
|
||||||
|
// These appear to be unusable/incomplete so far:
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#if _LIBCPP_VERSION < 3700
|
||||||
|
// libc++ uses a non-standard messages_base
|
||||||
|
#define BOOST_NO_STD_MESSAGES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
#if (_LIBCPP_VERSION < 3700) || (__cplusplus <= 201402L)
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
#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
|
||||||
|
#endif
|
||||||
|
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR)
|
||||||
|
# define BOOST_NO_AUTO_PTR
|
||||||
|
#endif
|
||||||
|
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_RANDOM_SHUFFLE)
|
||||||
|
# define BOOST_NO_CXX98_RANDOM_SHUFFLE
|
||||||
|
#endif
|
||||||
|
#if (_LIBCPP_VERSION > 4000) && (__cplusplus > 201402L) && !defined(_LIBCPP_ENABLE_CXX17_REMOVED_BINDERS)
|
||||||
|
# define BOOST_NO_CXX98_BINDERS
|
||||||
|
#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
|
||||||
|
// support for thread_local, leading to linker errors such as
|
||||||
|
// "undefined reference to `__cxa_thread_atexit'". It is fixed in the
|
||||||
|
// most recent releases of libc++abi though...
|
||||||
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus <= 201103
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#elif __cplusplus < 201402
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// --- end ---
|
|
@ -0,0 +1,346 @@
|
||||||
|
// (C) Copyright John Maddock 2001.
|
||||||
|
// (C) Copyright Jens Maurer 2001.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// config for libstdc++ v3
|
||||||
|
// not much to go in here:
|
||||||
|
|
||||||
|
#define BOOST_GNU_STDLIB 1
|
||||||
|
|
||||||
|
#ifdef __GLIBCXX__
|
||||||
|
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
|
||||||
|
#else
|
||||||
|
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCPP__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(_GLIBCPP_USE_WCHAR_T) && !defined(_GLIBCXX_USE_WCHAR_T)
|
||||||
|
# define BOOST_NO_CWCHAR
|
||||||
|
# define BOOST_NO_CWCTYPE
|
||||||
|
# define BOOST_NO_STD_WSTRING
|
||||||
|
# define BOOST_NO_STD_WSTREAMBUF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__osf__) && !defined(_REENTRANT) \
|
||||||
|
&& ( defined(_GLIBCXX_HAVE_GTHR_DEFAULT) || defined(_GLIBCPP_HAVE_GTHR_DEFAULT) )
|
||||||
|
// GCC 3 on Tru64 forces the definition of _REENTRANT when any std lib header
|
||||||
|
// file is included, therefore for consistency we define it here as well.
|
||||||
|
# define _REENTRANT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
|
||||||
|
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|
||||||
|
|| defined(_GLIBCXX__PTHREADS) \
|
||||||
|
|| defined(_GLIBCXX_HAS_GTHREADS) \
|
||||||
|
|| defined(_WIN32) \
|
||||||
|
|| defined(_AIX) \
|
||||||
|
|| defined(__HAIKU__)
|
||||||
|
//
|
||||||
|
// If the std lib has thread support turned on, then turn it on in Boost
|
||||||
|
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
|
||||||
|
// while others do not...
|
||||||
|
//
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
# else
|
||||||
|
# define BOOST_DISABLE_THREADS
|
||||||
|
# endif
|
||||||
|
#elif defined(__GLIBCPP__) \
|
||||||
|
&& !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
|
||||||
|
&& !defined(_GLIBCPP__PTHREADS)
|
||||||
|
// disable thread support if the std lib was built single threaded:
|
||||||
|
# define BOOST_DISABLE_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
|
||||||
|
// linux on arm apparently doesn't define _REENTRANT
|
||||||
|
// so just turn on threading support whenever the std lib is thread safe:
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(_GLIBCPP_USE_LONG_LONG) \
|
||||||
|
&& !defined(_GLIBCXX_USE_LONG_LONG)\
|
||||||
|
&& defined(BOOST_HAS_LONG_LONG)
|
||||||
|
// May have been set by compiler/*.hpp, but "long long" without library
|
||||||
|
// support is useless.
|
||||||
|
# undef BOOST_HAS_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Apple doesn't seem to reliably defined a *unix* macro
|
||||||
|
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||||
|
|| defined(__unix) \
|
||||||
|
|| defined(unix) \
|
||||||
|
|| defined(__APPLE__) \
|
||||||
|
|| defined(__APPLE) \
|
||||||
|
|| defined(APPLE))
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
|
||||||
|
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
|
||||||
|
# define BOOST_HAS_SLIST
|
||||||
|
# define BOOST_HAS_HASH
|
||||||
|
# define BOOST_SLIST_HEADER <ext/slist>
|
||||||
|
# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
|
||||||
|
# define BOOST_HASH_SET_HEADER <ext/hash_set>
|
||||||
|
# define BOOST_HASH_MAP_HEADER <ext/hash_map>
|
||||||
|
# else
|
||||||
|
# define BOOST_HASH_SET_HEADER <backward/hash_set>
|
||||||
|
# define BOOST_HASH_MAP_HEADER <backward/hash_map>
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Decide whether we have C++11 support turned on:
|
||||||
|
//
|
||||||
|
#if defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus >= 201103)
|
||||||
|
# define BOOST_LIBSTDCXX11
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Decide which version of libstdc++ we have, normally
|
||||||
|
// libstdc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
|
||||||
|
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the libstdc++
|
||||||
|
// developers. He also commented:
|
||||||
|
//
|
||||||
|
// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
|
||||||
|
// GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
|
||||||
|
// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
|
||||||
|
// than any release in the 4.2 series."
|
||||||
|
//
|
||||||
|
// Another resource for understanding libstdc++ features is:
|
||||||
|
// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
|
||||||
|
//
|
||||||
|
// However, using the GCC version number fails when the compiler is clang since this
|
||||||
|
// only ever claims to emulate GCC-4.2, see https://svn.boost.org/trac/boost/ticket/7473
|
||||||
|
// for a long discussion on this issue. What we can do though is use clang's __has_include
|
||||||
|
// to detect the presence of a C++11 header that was introduced with a specific GCC release.
|
||||||
|
// We still have to be careful though as many such headers were buggy and/or incomplete when
|
||||||
|
// first introduced, so we only check for headers that were fully featured from day 1, and then
|
||||||
|
// use that to infer the underlying GCC version:
|
||||||
|
//
|
||||||
|
#ifdef __clang__
|
||||||
|
|
||||||
|
#if __has_include(<experimental/memory_resource>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 60100
|
||||||
|
#elif __has_include(<experimental/any>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 50100
|
||||||
|
#elif __has_include(<shared_mutex>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 40900
|
||||||
|
#elif __has_include(<ext/cmath>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 40800
|
||||||
|
#elif __has_include(<scoped_allocator>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 40700
|
||||||
|
#elif __has_include(<typeindex>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 40600
|
||||||
|
#elif __has_include(<future>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 40500
|
||||||
|
#elif __has_include(<ratio>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 40400
|
||||||
|
#elif __has_include(<array>)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION 40300
|
||||||
|
#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,
|
||||||
|
// defining it here is a terrible cludge, but should get things working:
|
||||||
|
extern "C" char *gets (char *__s);
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// clang is unable to parse some GCC headers, add those workarounds here:
|
||||||
|
//
|
||||||
|
#if BOOST_LIBSTDCXX_VERSION < 50000
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// GCC 4.7.x has no __cxa_thread_atexit which
|
||||||
|
// thread_local objects require for cleanup:
|
||||||
|
//
|
||||||
|
#if BOOST_LIBSTDCXX_VERSION < 40800
|
||||||
|
# define BOOST_NO_CXX11_THREAD_LOCAL
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Early clang versions can handle <chrono>, not exactly sure which versions
|
||||||
|
// but certainly up to clang-3.8 and gcc-4.6:
|
||||||
|
//
|
||||||
|
#if (__clang_major__ < 5)
|
||||||
|
# if BOOST_LIBSTDCXX_VERSION < 40800
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// GCC 4.8 and 9 add working versions of <atomic> and <regex> respectively.
|
||||||
|
// However, we have no test for these as the headers were present but broken
|
||||||
|
// in early GCC versions.
|
||||||
|
//
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130) && (__cplusplus >= 201103L)
|
||||||
|
//
|
||||||
|
// Oracle Solaris compiler uses it's own verison of libstdc++ but doesn't
|
||||||
|
// set __GNUC__
|
||||||
|
//
|
||||||
|
#if __SUNPRO_CC >= 0x5140
|
||||||
|
#define BOOST_LIBSTDCXX_VERSION 50100
|
||||||
|
#else
|
||||||
|
#define BOOST_LIBSTDCXX_VERSION 40800
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(BOOST_LIBSTDCXX_VERSION)
|
||||||
|
# define BOOST_LIBSTDCXX_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// std::auto_ptr isn't provided with _GLIBCXX_DEPRECATED=0 (GCC 4.5 and earlier)
|
||||||
|
// or _GLIBCXX_USE_DEPRECATED=0 (GCC 4.6 and later).
|
||||||
|
#if defined(BOOST_LIBSTDCXX11)
|
||||||
|
# if BOOST_LIBSTDCXX_VERSION < 40600
|
||||||
|
# if !_GLIBCXX_DEPRECATED
|
||||||
|
# define BOOST_NO_AUTO_PTR
|
||||||
|
# endif
|
||||||
|
# elif !_GLIBCXX_USE_DEPRECATED
|
||||||
|
# define BOOST_NO_AUTO_PTR
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers in GCC 4.3.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 40300) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers in GCC 4.4.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 40400) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
#else
|
||||||
|
# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
|
||||||
|
# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in GCC 4.5.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 40500) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in GCC 4.6.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 40600) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x features in GCC 4.7.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 40700) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
// Note that although <chrono> existed prior to 4.7, "steady_clock" is spelled "monotonic_clock"
|
||||||
|
// so 4.7.0 is the first truly conforming one.
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
#endif
|
||||||
|
// C++0x features in GCC 4.8.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 40800) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
// Note that although <atomic> existed prior to gcc 4.8 it was largely unimplemented for many types:
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
#endif
|
||||||
|
// C++0x features in GCC 4.9.0 and later
|
||||||
|
//
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
// Although <regex> is present and compilable against, the actual implementation is not functional
|
||||||
|
// even for the simplest patterns such as "\d" or "[0-9]". This is the case at least in gcc up to 4.8, inclusively.
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
#endif
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 40900) || (__cplusplus <= 201103)
|
||||||
|
# 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
|
||||||
|
//
|
||||||
|
#if (BOOST_LIBSTDCXX_VERSION < 50100) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// C++17 features in GCC 6.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_APPLY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus <= 201103
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#elif __cplusplus < 201402 || (BOOST_LIBSTDCXX_VERSION < 40900) || !defined(BOOST_LIBSTDCXX11)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Headers not present on Solaris with the Oracle compiler:
|
||||||
|
#if defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x5140)
|
||||||
|
#define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
#define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
// shared_ptr is present, but is not convertible to bool
|
||||||
|
// which causes all kinds of problems especially in Boost.Thread
|
||||||
|
// but probably elsewhere as well.
|
||||||
|
#define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1))
|
||||||
|
// Headers not always available:
|
||||||
|
# ifndef BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if (!defined(_GTHREAD_USE_MUTEX_TIMEDLOCK) || (_GTHREAD_USE_MUTEX_TIMEDLOCK == 0)) && !defined(BOOST_NO_CXX11_HDR_MUTEX)
|
||||||
|
// Timed mutexes are not always available:
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// --- end ---
|
|
@ -0,0 +1,77 @@
|
||||||
|
// (C) Copyright Jens Maurer 2001.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Modena C++ standard library (comes with KAI C++)
|
||||||
|
|
||||||
|
#if !defined(MSIPL_COMPILE_H)
|
||||||
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
|
# if !defined(__MSIPL_COMPILE_H)
|
||||||
|
# error "This is not the Modena C++ library!"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MSIPL_NL_TYPES
|
||||||
|
#define BOOST_NO_STD_MESSAGES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MSIPL_WCHART
|
||||||
|
#define BOOST_NO_STD_WSTRING
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers not yet implemented
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus < 201402
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "Modena C++ standard library"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,96 @@
|
||||||
|
// (C) Copyright John Maddock 2001.
|
||||||
|
// (C) Copyright Darin Adler 2001.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Metrowerks standard library:
|
||||||
|
|
||||||
|
#ifndef __MSL_CPP__
|
||||||
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
|
# ifndef __MSL_CPP__
|
||||||
|
# error This is not the MSL standard library!
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __MSL_CPP__ >= 0x6000 // Pro 6
|
||||||
|
# define BOOST_HAS_HASH
|
||||||
|
# define BOOST_STD_EXTENSION_NAMESPACE Metrowerks
|
||||||
|
#endif
|
||||||
|
#define BOOST_HAS_SLIST
|
||||||
|
|
||||||
|
#if __MSL_CPP__ < 0x6209
|
||||||
|
# define BOOST_NO_STD_MESSAGES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// check C lib version for <stdint.h>
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
#if defined(__MSL__) && (__MSL__ >= 0x5000)
|
||||||
|
# define BOOST_HAS_STDINT_H
|
||||||
|
# if !defined(__PALMOS_TRAPS__)
|
||||||
|
# define BOOST_HAS_UNISTD_H
|
||||||
|
# endif
|
||||||
|
// boilerplate code:
|
||||||
|
# include <boost/config/detail/posix_features.hpp>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_MWMT) || _MSL_THREADSAFE
|
||||||
|
# define BOOST_HAS_THREADS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
|
||||||
|
# define BOOST_NO_STD_USE_FACET
|
||||||
|
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers not yet implemented
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus < 201402
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
|
|
@ -0,0 +1,206 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Jens Maurer 2001.
|
||||||
|
// (C) Copyright David Abrahams 2003.
|
||||||
|
// (C) Copyright Boris Gubenko 2007.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// Rogue Wave std lib:
|
||||||
|
|
||||||
|
#define BOOST_RW_STDLIB 1
|
||||||
|
|
||||||
|
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||||
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
|
# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||||
|
# error This is not the Rogue Wave standard library
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// figure out a consistent version number:
|
||||||
|
//
|
||||||
|
#ifndef _RWSTD_VER
|
||||||
|
# define BOOST_RWSTD_VER 0x010000
|
||||||
|
#elif _RWSTD_VER < 0x010000
|
||||||
|
# define BOOST_RWSTD_VER (_RWSTD_VER << 8)
|
||||||
|
#else
|
||||||
|
# define BOOST_RWSTD_VER _RWSTD_VER
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _RWSTD_VER
|
||||||
|
# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
|
||||||
|
#elif _RWSTD_VER < 0x04010200
|
||||||
|
# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
||||||
|
#else
|
||||||
|
# ifdef _RWSTD_VER_STR
|
||||||
|
# define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
|
||||||
|
# else
|
||||||
|
# define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Prior to version 2.2.0 the primary template for std::numeric_limits
|
||||||
|
// does not have compile time constants, even though specializations of that
|
||||||
|
// template do:
|
||||||
|
//
|
||||||
|
#if BOOST_RWSTD_VER < 0x020200
|
||||||
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Sun CC 5.5 patch 113817-07 adds long long specialization, but does not change the
|
||||||
|
// library version number (http://sunsolve6.sun.com/search/document.do?assetkey=1-21-113817):
|
||||||
|
#if BOOST_RWSTD_VER <= 0x020101 && (!defined(__SUNPRO_CC) || (__SUNPRO_CC < 0x550))
|
||||||
|
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
|
||||||
|
# endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Borland version of numeric_limits lacks __int64 specialisation:
|
||||||
|
//
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No std::iterator if it can't figure out default template args:
|
||||||
|
//
|
||||||
|
#if defined(_RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || defined(RWSTD_NO_SIMPLE_DEFAULT_TEMPLATES) || (BOOST_RWSTD_VER < 0x020000)
|
||||||
|
# define BOOST_NO_STD_ITERATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No iterator traits without partial specialization:
|
||||||
|
//
|
||||||
|
#if defined(_RWSTD_NO_CLASS_PARTIAL_SPEC) || defined(RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Prior to version 2.0, std::auto_ptr was buggy, and there were no
|
||||||
|
// new-style iostreams, and no conformant std::allocator:
|
||||||
|
//
|
||||||
|
#if (BOOST_RWSTD_VER < 0x020000)
|
||||||
|
# define BOOST_NO_AUTO_PTR
|
||||||
|
# define BOOST_NO_STRINGSTREAM
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No template iterator constructors without member template support:
|
||||||
|
//
|
||||||
|
#if defined(RWSTD_NO_MEMBER_TEMPLATES) || defined(_RWSTD_NO_MEMBER_TEMPLATES)
|
||||||
|
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// RW defines _RWSTD_ALLOCATOR if the allocator is conformant and in use
|
||||||
|
// (the or _HPACC_ part is a hack - the library seems to define _RWSTD_ALLOCATOR
|
||||||
|
// on HP aCC systems even though the allocator is in fact broken):
|
||||||
|
//
|
||||||
|
#if !defined(_RWSTD_ALLOCATOR) || (defined(__HP_aCC) && __HP_aCC <= 33100)
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// If we have a std::locale, we still may not have std::use_facet:
|
||||||
|
//
|
||||||
|
#if defined(_RWSTD_NO_TEMPLATE_ON_RETURN_TYPE) && !defined(BOOST_NO_STD_LOCALE)
|
||||||
|
# define BOOST_NO_STD_USE_FACET
|
||||||
|
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// There's no std::distance prior to version 2, or without
|
||||||
|
// partial specialization support:
|
||||||
|
//
|
||||||
|
#if (BOOST_RWSTD_VER < 0x020000) || defined(_RWSTD_NO_CLASS_PARTIAL_SPEC)
|
||||||
|
#define BOOST_NO_STD_DISTANCE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Some versions of the rogue wave library don't have assignable
|
||||||
|
// OutputIterators:
|
||||||
|
//
|
||||||
|
#if BOOST_RWSTD_VER < 0x020100
|
||||||
|
# define BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Disable BOOST_HAS_LONG_LONG when the library has no support for it.
|
||||||
|
//
|
||||||
|
#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
|
||||||
|
# undef BOOST_HAS_LONG_LONG
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// check that on HP-UX, the proper RW library is used
|
||||||
|
//
|
||||||
|
#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)
|
||||||
|
# error "Boost requires Standard RW library. Please compile and link with -AA"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Define macros specific to RW V2.2 on HP-UX
|
||||||
|
//
|
||||||
|
#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
|
||||||
|
# ifndef __HP_TC1_MAKE_PAIR
|
||||||
|
# define __HP_TC1_MAKE_PAIR
|
||||||
|
# endif
|
||||||
|
# ifndef _HP_INSTANTIATE_STD2_VL
|
||||||
|
# define _HP_INSTANTIATE_STD2_VL
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if _RWSTD_VER < 0x05000000
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
#endif
|
||||||
|
// type_traits header is incomplete:
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
//
|
||||||
|
// C++0x headers not yet implemented
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus < 201402
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
|
@ -0,0 +1,166 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2003.
|
||||||
|
// (C) Copyright Darin Adler 2001.
|
||||||
|
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// generic SGI STL:
|
||||||
|
|
||||||
|
#if !defined(__STL_CONFIG_H)
|
||||||
|
# include <boost/config/no_tr1/utility.hpp>
|
||||||
|
# if !defined(__STL_CONFIG_H)
|
||||||
|
# error "This is not the SGI STL!"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No std::iterator traits without partial specialisation:
|
||||||
|
//
|
||||||
|
#if !defined(__STL_CLASS_PARTIAL_SPECIALIZATION)
|
||||||
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No std::stringstream with gcc < 3
|
||||||
|
//
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ < 3) && \
|
||||||
|
((__GNUC_MINOR__ < 95) || (__GNUC_MINOR__ == 96)) && \
|
||||||
|
!defined(__STL_USE_NEW_IOSTREAMS) || \
|
||||||
|
defined(__APPLE_CC__)
|
||||||
|
// Note that we only set this for GNU C++ prior to 2.95 since the
|
||||||
|
// latest patches for that release do contain a minimal <sstream>
|
||||||
|
// If you are running a 2.95 release prior to 2.95.3 then this will need
|
||||||
|
// setting, but there is no way to detect that automatically (other
|
||||||
|
// than by running the configure script).
|
||||||
|
// Also, the unofficial GNU C++ 2.96 included in RedHat 7.1 doesn't
|
||||||
|
// have <sstream>.
|
||||||
|
# define BOOST_NO_STRINGSTREAM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Apple doesn't seem to reliably defined a *unix* macro
|
||||||
|
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||||
|
|| defined(__unix) \
|
||||||
|
|| defined(unix) \
|
||||||
|
|| defined(__APPLE__) \
|
||||||
|
|| defined(__APPLE) \
|
||||||
|
|| defined(APPLE))
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// Assume no std::locale without own iostreams (this may be an
|
||||||
|
// incorrect assumption in some cases):
|
||||||
|
//
|
||||||
|
#if !defined(__SGI_STL_OWN_IOSTREAMS) && !defined(__STL_USE_NEW_IOSTREAMS)
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Original native SGI streams have non-standard std::messages facet:
|
||||||
|
//
|
||||||
|
#if defined(__sgi) && (_COMPILER_VERSION <= 650) && !defined(__SGI_STL_OWN_IOSTREAMS)
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// SGI's new iostreams have missing "const" in messages<>::open
|
||||||
|
//
|
||||||
|
#if defined(__sgi) && (_COMPILER_VERSION <= 740) && defined(__STL_USE_NEW_IOSTREAMS)
|
||||||
|
# define BOOST_NO_STD_MESSAGES
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No template iterator constructors, or std::allocator
|
||||||
|
// without member templates:
|
||||||
|
//
|
||||||
|
#if !defined(__STL_MEMBER_TEMPLATES)
|
||||||
|
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// We always have SGI style hash_set, hash_map, and slist:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_HASH
|
||||||
|
#define BOOST_HAS_SLIST
|
||||||
|
|
||||||
|
//
|
||||||
|
// If this is GNU libstdc++2, then no <limits> and no std::wstring:
|
||||||
|
//
|
||||||
|
#if (defined(__GNUC__) && (__GNUC__ < 3))
|
||||||
|
# include <string>
|
||||||
|
# if defined(__BASTRING__)
|
||||||
|
# define BOOST_NO_LIMITS
|
||||||
|
// Note: <boost/limits.hpp> will provide compile-time constants
|
||||||
|
# undef BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
# define BOOST_NO_STD_WSTRING
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// There is no standard iterator unless we have namespace support:
|
||||||
|
//
|
||||||
|
#if !defined(__STL_USE_NAMESPACES)
|
||||||
|
# define BOOST_NO_STD_ITERATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Intrinsic type_traits support.
|
||||||
|
// The SGI STL has it's own __type_traits class, which
|
||||||
|
// has intrinsic compiler support with SGI's compilers.
|
||||||
|
// Whatever map SGI style type traits to boost equivalents:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||||
|
|
||||||
|
// C++0x headers not yet implemented
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus < 201402
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "SGI standard library"
|
|
@ -0,0 +1,256 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
|
// (C) Copyright Darin Adler 2001.
|
||||||
|
// (C) Copyright Jens Maurer 2001.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
// STLPort standard library config:
|
||||||
|
|
||||||
|
#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||||
|
# include <cstddef>
|
||||||
|
# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||||
|
# error "This is not STLPort!"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Apple doesn't seem to reliably defined a *unix* macro
|
||||||
|
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||||
|
|| defined(__unix) \
|
||||||
|
|| defined(unix) \
|
||||||
|
|| defined(__APPLE__) \
|
||||||
|
|| defined(__APPLE) \
|
||||||
|
|| defined(APPLE))
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
// for versions prior to 4.1(beta)
|
||||||
|
//
|
||||||
|
#if (defined(__STL_STATIC_CONST_INIT_BUG) || defined(_STLP_STATIC_CONST_INIT_BUG)) && (__SGI_STL_PORT <= 0x400)
|
||||||
|
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// If STLport thinks that there is no partial specialisation, then there is no
|
||||||
|
// std::iterator traits:
|
||||||
|
//
|
||||||
|
#if !(defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined(__STL_CLASS_PARTIAL_SPECIALIZATION))
|
||||||
|
# define BOOST_NO_STD_ITERATOR_TRAITS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No new style iostreams on GCC without STLport's iostreams enabled:
|
||||||
|
//
|
||||||
|
#if (defined(__GNUC__) && (__GNUC__ < 3)) && !(defined(__SGI_STL_OWN_IOSTREAMS) || defined(_STLP_OWN_IOSTREAMS))
|
||||||
|
# define BOOST_NO_STRINGSTREAM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// No new iostreams implies no std::locale, and no std::stringstream:
|
||||||
|
//
|
||||||
|
#if defined(__STL_NO_IOSTREAMS) || defined(__STL_NO_NEW_IOSTREAMS) || defined(_STLP_NO_IOSTREAMS) || defined(_STLP_NO_NEW_IOSTREAMS)
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
# define BOOST_NO_STRINGSTREAM
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// If the streams are not native, and we have a "using ::x" compiler bug
|
||||||
|
// 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__)
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
# endif
|
||||||
|
#else
|
||||||
|
# if !defined(__SGI_STL_OWN_IOSTREAMS) && defined(__STL_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
|
||||||
|
# define BOOST_NO_STD_LOCALE
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
|
||||||
|
# define BOOST_HAS_TR1_UNORDERED_SET
|
||||||
|
# define BOOST_HAS_TR1_UNORDERED_MAP
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Without member template support enabled, their are no template
|
||||||
|
// iterate constructors, and no std::allocator:
|
||||||
|
//
|
||||||
|
#if !(defined(__STL_MEMBER_TEMPLATES) || defined(_STLP_MEMBER_TEMPLATES))
|
||||||
|
# define BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// however we always have at least a partial allocator:
|
||||||
|
//
|
||||||
|
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
|
||||||
|
|
||||||
|
#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(_STLP_NO_MEMBER_TEMPLATE_KEYWORD) && defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// If STLport thinks there is no wchar_t at all, then we have to disable
|
||||||
|
// the support for the relevant specilazations of std:: templates.
|
||||||
|
//
|
||||||
|
#if !defined(_STLP_HAS_WCHAR_T) && !defined(_STLP_WCHAR_T_IS_USHORT)
|
||||||
|
# ifndef BOOST_NO_STD_WSTRING
|
||||||
|
# define BOOST_NO_STD_WSTRING
|
||||||
|
# endif
|
||||||
|
# ifndef BOOST_NO_STD_WSTREAMBUF
|
||||||
|
# define BOOST_NO_STD_WSTREAMBUF
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// We always have SGI style hash_set, hash_map, and slist:
|
||||||
|
//
|
||||||
|
#ifndef _STLP_NO_EXTENSIONS
|
||||||
|
#define BOOST_HAS_HASH
|
||||||
|
#define BOOST_HAS_SLIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// STLport does a good job of importing names into namespace std::,
|
||||||
|
// but doesn't always get them all, define BOOST_NO_STDC_NAMESPACE, since our
|
||||||
|
// workaround does not conflict with STLports:
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Harold Howe says:
|
||||||
|
// Borland switched to STLport in BCB6. Defining BOOST_NO_STDC_NAMESPACE with
|
||||||
|
// BCB6 does cause problems. If we detect C++ Builder, then don't define
|
||||||
|
// BOOST_NO_STDC_NAMESPACE
|
||||||
|
//
|
||||||
|
#if !defined(__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
|
||||||
|
// (by defining BOOST_NO_STDC_NAMESPACE), we do this because STLport doesn't
|
||||||
|
// necessarily import all the names we need into namespace std::
|
||||||
|
//
|
||||||
|
# if (defined(__STL_IMPORT_VENDOR_CSTD) \
|
||||||
|
|| defined(__STL_USE_OWN_NAMESPACE) \
|
||||||
|
|| defined(_STLP_IMPORT_VENDOR_CSTD) \
|
||||||
|
|| defined(_STLP_USE_OWN_NAMESPACE)) \
|
||||||
|
&& (defined(__STL_VENDOR_GLOBAL_CSTD) || defined (_STLP_VENDOR_GLOBAL_CSTD))
|
||||||
|
# define BOOST_NO_STDC_NAMESPACE
|
||||||
|
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
|
||||||
|
# endif
|
||||||
|
#elif defined(__BORLANDC__) && __BORLANDC__ < 0x560
|
||||||
|
// STLport doesn't import std::abs correctly:
|
||||||
|
#include <stdlib.h>
|
||||||
|
namespace std { using ::abs; }
|
||||||
|
// and strcmp/strcpy don't get imported either ('cos they are macros)
|
||||||
|
#include <string.h>
|
||||||
|
#ifdef strcpy
|
||||||
|
# undef strcpy
|
||||||
|
#endif
|
||||||
|
#ifdef strcmp
|
||||||
|
# undef strcmp
|
||||||
|
#endif
|
||||||
|
#ifdef _STLP_VENDOR_CSTD
|
||||||
|
namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy; }
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// std::use_facet may be non-standard, uses a class instead:
|
||||||
|
//
|
||||||
|
#if defined(__STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
|
||||||
|
# define BOOST_NO_STD_USE_FACET
|
||||||
|
# define BOOST_HAS_STLP_USE_FACET
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// If STLport thinks there are no wide functions, <cwchar> etc. is not working; but
|
||||||
|
// only if BOOST_NO_STDC_NAMESPACE is not defined (if it is then we do the import
|
||||||
|
// into std:: ourselves).
|
||||||
|
//
|
||||||
|
#if defined(_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined(BOOST_NO_STDC_NAMESPACE)
|
||||||
|
# define BOOST_NO_CWCHAR
|
||||||
|
# define BOOST_NO_CWCTYPE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// If STLport for some reason was configured so that it thinks that wchar_t
|
||||||
|
// is not an intrinsic type, then we have to disable the support for it as
|
||||||
|
// well (we would be missing required specializations otherwise).
|
||||||
|
//
|
||||||
|
#if !defined( _STLP_HAS_WCHAR_T) || defined(_STLP_WCHAR_T_IS_USHORT)
|
||||||
|
# undef BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// Borland ships a version of STLport with C++ Builder 6 that lacks
|
||||||
|
// hashtables and the like:
|
||||||
|
//
|
||||||
|
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x560)
|
||||||
|
# undef BOOST_HAS_HASH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// gcc-2.95.3/STLPort does not like the using declarations we use to get ADL with std::min/max
|
||||||
|
//
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ < 3)
|
||||||
|
# include <algorithm> // for std::min and std::max
|
||||||
|
# define BOOST_USING_STD_MIN() ((void)0)
|
||||||
|
# define BOOST_USING_STD_MAX() ((void)0)
|
||||||
|
namespace boost { using std::min; using std::max; }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers not yet implemented
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus < 201402
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
|
|
@ -0,0 +1,72 @@
|
||||||
|
// (C) Copyright John Maddock 2001 - 2002.
|
||||||
|
// 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.
|
||||||
|
|
||||||
|
#if __IBMCPP__ <= 501
|
||||||
|
# define BOOST_NO_STD_ALLOCATOR
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_HAS_MACRO_USE_FACET
|
||||||
|
#define BOOST_NO_STD_MESSAGES
|
||||||
|
|
||||||
|
// Apple doesn't seem to reliably defined a *unix* macro
|
||||||
|
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||||
|
|| defined(__unix) \
|
||||||
|
|| defined(unix) \
|
||||||
|
|| defined(__APPLE__) \
|
||||||
|
|| defined(__APPLE) \
|
||||||
|
|| defined(APPLE))
|
||||||
|
# include <unistd.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++0x headers not yet implemented
|
||||||
|
//
|
||||||
|
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
# define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
# define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
# define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
# define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
# define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
# define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
# define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
# define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
|
||||||
|
#if defined(__has_include)
|
||||||
|
#if !__has_include(<shared_mutex>)
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#elif __cplusplus < 201402
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// C++14 features
|
||||||
|
# define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
|
||||||
|
// C++17 features
|
||||||
|
# define BOOST_NO_CXX17_STD_APPLY
|
||||||
|
# define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "Visual Age default standard library"
|
|
@ -0,0 +1,59 @@
|
||||||
|
// Copyright (c) 2017 Dynatrace
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
// See http://www.boost.org for most recent version.
|
||||||
|
|
||||||
|
// Standard library setup for IBM z/OS XL C/C++ compiler.
|
||||||
|
|
||||||
|
// Oldest library version currently supported is 2.1 (V2R1)
|
||||||
|
#if __TARGET_LIB__ < 0x42010000
|
||||||
|
# error "Library version not supported or configured - please reconfigure"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if __TARGET_LIB__ > 0x42010000
|
||||||
|
# if defined(BOOST_ASSERT_CONFIG)
|
||||||
|
# error "Unknown library version - please run the configure tests and report the results"
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define BOOST_STDLIB "IBM z/OS XL C/C++ standard library"
|
||||||
|
|
||||||
|
#define BOOST_HAS_MACRO_USE_FACET
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||||
|
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX11_ADDRESSOF
|
||||||
|
#define BOOST_NO_CXX11_SMART_PTR
|
||||||
|
#define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||||
|
#define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||||
|
#define BOOST_NO_CXX11_ALLOCATOR
|
||||||
|
#define BOOST_NO_CXX11_POINTER_TRAITS
|
||||||
|
#define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||||
|
#define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||||
|
#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||||
|
#define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||||
|
#define BOOST_NO_CXX11_HDR_TUPLE
|
||||||
|
#define BOOST_NO_CXX11_HDR_THREAD
|
||||||
|
#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||||
|
#define BOOST_NO_CXX11_HDR_REGEX
|
||||||
|
#define BOOST_NO_CXX11_HDR_RATIO
|
||||||
|
#define BOOST_NO_CXX11_HDR_RANDOM
|
||||||
|
#define BOOST_NO_CXX11_HDR_MUTEX
|
||||||
|
#define BOOST_NO_CXX11_HDR_FUTURE
|
||||||
|
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||||
|
#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||||
|
#define BOOST_NO_CXX11_HDR_CODECVT
|
||||||
|
#define BOOST_NO_CXX11_HDR_CHRONO
|
||||||
|
#define BOOST_NO_CXX11_HDR_ATOMIC
|
||||||
|
#define BOOST_NO_CXX11_HDR_ARRAY
|
||||||
|
#define BOOST_NO_CXX11_STD_ALIGN
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX14_STD_EXCHANGE
|
||||||
|
#define BOOST_NO_CXX14_HDR_SHARED_MUTEX
|
||||||
|
|
||||||
|
#define BOOST_NO_CXX17_STD_INVOKE
|
||||||
|
#define BOOST_NO_CXX17_STD_APPLY
|
|
@ -0,0 +1,277 @@
|
||||||
|
// Copyright David Abrahams 2002.
|
||||||
|
// 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 BOOST_CONFIG_WORKAROUND_HPP
|
||||||
|
#define BOOST_CONFIG_WORKAROUND_HPP
|
||||||
|
|
||||||
|
// Compiler/library version workaround macro
|
||||||
|
//
|
||||||
|
// Usage:
|
||||||
|
//
|
||||||
|
// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
|
||||||
|
// // workaround for eVC4 and VC6
|
||||||
|
// ... // workaround code here
|
||||||
|
// #endif
|
||||||
|
//
|
||||||
|
// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
|
||||||
|
// first argument must be undefined or expand to a numeric
|
||||||
|
// value. The above expands to:
|
||||||
|
//
|
||||||
|
// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300
|
||||||
|
//
|
||||||
|
// When used for workarounds that apply to the latest known version
|
||||||
|
// and all earlier versions of a compiler, the following convention
|
||||||
|
// should be observed:
|
||||||
|
//
|
||||||
|
// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301))
|
||||||
|
//
|
||||||
|
// The version number in this case corresponds to the last version in
|
||||||
|
// which the workaround was known to have been required. When
|
||||||
|
// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
|
||||||
|
// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
|
||||||
|
// the workaround for any version of the compiler. When
|
||||||
|
// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
|
||||||
|
// error will be issued if the compiler version exceeds the argument
|
||||||
|
// to BOOST_TESTED_AT(). This can be used to locate workarounds which
|
||||||
|
// may be obsoleted by newer versions.
|
||||||
|
|
||||||
|
#ifndef BOOST_STRICT_CONFIG
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#ifndef __BORLANDC__
|
||||||
|
#define __BORLANDC___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __BORLANDC___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __CODEGEARC__
|
||||||
|
#define __CODEGEARC___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __CODEGEARC___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef _MSC_VER
|
||||||
|
#define _MSC_VER_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define _MSC_VER_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef _MSC_FULL_VER
|
||||||
|
#define _MSC_FULL_VER_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define _MSC_FULL_VER_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_MSVC
|
||||||
|
#define BOOST_MSVC_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_MSVC_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_MSVC_FULL_VER
|
||||||
|
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __GNUC__
|
||||||
|
#define __GNUC___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __GNUC___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __GNUC_MINOR__
|
||||||
|
#define __GNUC_MINOR___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __GNUC_MINOR___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __GNUC_PATCHLEVEL__
|
||||||
|
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_GCC
|
||||||
|
#define BOOST_GCC_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_GCC_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_XLCPP_ZOS
|
||||||
|
#define BOOST_XLCPP_ZOS_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_XLCPP_ZOS_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __IBMCPP__
|
||||||
|
#define __IBMCPP___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __IBMCPP___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __SUNPRO_CC
|
||||||
|
#define __SUNPRO_CC_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __SUNPRO_CC_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __DECCXX_VER
|
||||||
|
#define __DECCXX_VER_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __DECCXX_VER_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __MWERKS__
|
||||||
|
#define __MWERKS___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __MWERKS___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __EDG__
|
||||||
|
#define __EDG___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __EDG___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __EDG_VERSION__
|
||||||
|
#define __EDG_VERSION___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __EDG_VERSION___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __HP_aCC
|
||||||
|
#define __HP_aCC_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __HP_aCC_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __hpxstd98
|
||||||
|
#define __hpxstd98_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __hpxstd98_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef _CRAYC
|
||||||
|
#define _CRAYC_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define _CRAYC_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __DMC__
|
||||||
|
#define __DMC___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __DMC___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef MPW_CPLUS
|
||||||
|
#define MPW_CPLUS_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define MPW_CPLUS_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __COMO__
|
||||||
|
#define __COMO___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __COMO___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __COMO_VERSION__
|
||||||
|
#define __COMO_VERSION___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __COMO_VERSION___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __INTEL_COMPILER
|
||||||
|
#define __INTEL_COMPILER_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __INTEL_COMPILER_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __ICL
|
||||||
|
#define __ICL_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __ICL_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef _COMPILER_VERSION
|
||||||
|
#define _COMPILER_VERSION_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define _COMPILER_VERSION_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _RWSTD_VER
|
||||||
|
#define _RWSTD_VER_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define _RWSTD_VER_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_RWSTD_VER
|
||||||
|
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __GLIBCPP__
|
||||||
|
#define __GLIBCPP___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __GLIBCPP___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
|
||||||
|
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __SGI_STL_PORT
|
||||||
|
#define __SGI_STL_PORT_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __SGI_STL_PORT_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef _STLPORT_VERSION
|
||||||
|
#define _STLPORT_VERSION_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define _STLPORT_VERSION_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef __LIBCOMO_VERSION__
|
||||||
|
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef _CPPLIB_VER
|
||||||
|
#define _CPPLIB_VER_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define _CPPLIB_VER_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef BOOST_INTEL_CXX_VERSION
|
||||||
|
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_INTEL_WIN
|
||||||
|
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_DINKUMWARE_STDLIB
|
||||||
|
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
|
||||||
|
#endif
|
||||||
|
#ifndef BOOST_INTEL
|
||||||
|
#define BOOST_INTEL_WORKAROUND_GUARD 1
|
||||||
|
#else
|
||||||
|
#define BOOST_INTEL_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
|
||||||
|
|
||||||
|
#define BOOST_WORKAROUND(symbol, test) \
|
||||||
|
((symbol ## _WORKAROUND_GUARD + 0 == 0) && \
|
||||||
|
(symbol != 0) && (1 % (( (symbol test) ) + 1)))
|
||||||
|
// ^ ^ ^ ^
|
||||||
|
// The extra level of parenthesis nesting above, along with the
|
||||||
|
// BOOST_OPEN_PAREN indirection below, is required to satisfy the
|
||||||
|
// broken preprocessor in MWCW 8.3 and earlier.
|
||||||
|
//
|
||||||
|
// The basic mechanism works as follows:
|
||||||
|
// (symbol test) + 1 => if (symbol test) then 2 else 1
|
||||||
|
// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0
|
||||||
|
//
|
||||||
|
// The complication with % is for cooperation with BOOST_TESTED_AT().
|
||||||
|
// When "test" is BOOST_TESTED_AT(x) and
|
||||||
|
// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
|
||||||
|
//
|
||||||
|
// symbol test => if (symbol <= x) then 1 else -1
|
||||||
|
// (symbol test) + 1 => if (symbol <= x) then 2 else 0
|
||||||
|
// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
|
||||||
|
# define BOOST_OPEN_PAREN (
|
||||||
|
# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1
|
||||||
|
#else
|
||||||
|
# define BOOST_TESTED_AT(value) != ((value)-(value))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define BOOST_WORKAROUND(symbol, test) 0
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // BOOST_CONFIG_WORKAROUND_HPP
|
|
@ -0,0 +1,274 @@
|
||||||
|
/*
|
||||||
|
Copyright (C) 2002 Brad King (brad.king@kitware.com)
|
||||||
|
Douglas Gregor (gregod@cs.rpi.edu)
|
||||||
|
|
||||||
|
Copyright (C) 2002, 2008, 2013 Peter Dimov
|
||||||
|
|
||||||
|
Copyright (C) 2017 Glen Joseph Fernandes (glenjofe@gmail.com)
|
||||||
|
|
||||||
|
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 BOOST_CORE_ADDRESSOF_HPP
|
||||||
|
#define BOOST_CORE_ADDRESSOF_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
#if defined(BOOST_MSVC_FULL_VER) && BOOST_MSVC_FULL_VER >= 190024215
|
||||||
|
#define BOOST_CORE_HAS_BUILTIN_ADDRESSOF
|
||||||
|
#elif defined(BOOST_GCC) && BOOST_GCC >= 70000
|
||||||
|
#define BOOST_CORE_HAS_BUILTIN_ADDRESSOF
|
||||||
|
#elif defined(__has_builtin)
|
||||||
|
#if __has_builtin(__builtin_addressof)
|
||||||
|
#define BOOST_CORE_HAS_BUILTIN_ADDRESSOF
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(BOOST_CORE_HAS_BUILTIN_ADDRESSOF)
|
||||||
|
#if defined(BOOST_NO_CXX11_CONSTEXPR)
|
||||||
|
#define BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
BOOST_CONSTEXPR inline T*
|
||||||
|
addressof(T& o) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
return __builtin_addressof(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* boost */
|
||||||
|
#else
|
||||||
|
#include <boost/config/workaround.hpp>
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
class addressof_ref {
|
||||||
|
public:
|
||||||
|
BOOST_FORCEINLINE addressof_ref(T& o) BOOST_NOEXCEPT
|
||||||
|
: o_(o) { }
|
||||||
|
BOOST_FORCEINLINE operator T&() const BOOST_NOEXCEPT {
|
||||||
|
return o_;
|
||||||
|
}
|
||||||
|
private:
|
||||||
|
addressof_ref& operator=(const addressof_ref&);
|
||||||
|
T& o_;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct address_of {
|
||||||
|
static BOOST_FORCEINLINE T* get(T& o, long) BOOST_NOEXCEPT {
|
||||||
|
return reinterpret_cast<T*>(&
|
||||||
|
const_cast<char&>(reinterpret_cast<const volatile char&>(o)));
|
||||||
|
}
|
||||||
|
static BOOST_FORCEINLINE T* get(T* p, int) BOOST_NOEXCEPT {
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_CXX11_NULLPTR)
|
||||||
|
#if !defined(BOOST_NO_CXX11_DECLTYPE) && \
|
||||||
|
(defined(__INTEL_COMPILER) || \
|
||||||
|
(defined(__clang__) && !defined(_LIBCPP_VERSION)))
|
||||||
|
typedef decltype(nullptr) addressof_null_t;
|
||||||
|
#else
|
||||||
|
typedef std::nullptr_t addressof_null_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct address_of<addressof_null_t> {
|
||||||
|
typedef addressof_null_t type;
|
||||||
|
static BOOST_FORCEINLINE type* get(type& o, int) BOOST_NOEXCEPT {
|
||||||
|
return &o;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct address_of<const addressof_null_t> {
|
||||||
|
typedef const addressof_null_t type;
|
||||||
|
static BOOST_FORCEINLINE type* get(type& o, int) BOOST_NOEXCEPT {
|
||||||
|
return &o;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct address_of<volatile addressof_null_t> {
|
||||||
|
typedef volatile addressof_null_t type;
|
||||||
|
static BOOST_FORCEINLINE type* get(type& o, int) BOOST_NOEXCEPT {
|
||||||
|
return &o;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct address_of<const volatile addressof_null_t> {
|
||||||
|
typedef const volatile addressof_null_t type;
|
||||||
|
static BOOST_FORCEINLINE type* get(type& o, int) BOOST_NOEXCEPT {
|
||||||
|
return &o;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} /* detail */
|
||||||
|
|
||||||
|
#if defined(BOOST_NO_CXX11_SFINAE_EXPR) || \
|
||||||
|
defined(BOOST_NO_CXX11_CONSTEXPR) || \
|
||||||
|
defined(BOOST_NO_CXX11_DECLTYPE)
|
||||||
|
#define BOOST_CORE_NO_CONSTEXPR_ADDRESSOF
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
BOOST_FORCEINLINE T*
|
||||||
|
addressof(T& o) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x610)) || \
|
||||||
|
BOOST_WORKAROUND(__SUNPRO_CC, <= 0x5120)
|
||||||
|
return detail::address_of<T>::get(o, 0);
|
||||||
|
#else
|
||||||
|
return detail::address_of<T>::get(detail::addressof_ref<T>(o), 0);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#if BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct addressof_result {
|
||||||
|
typedef T* type;
|
||||||
|
};
|
||||||
|
|
||||||
|
} /* detail */
|
||||||
|
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
BOOST_FORCEINLINE typename detail::addressof_result<T[N]>::type
|
||||||
|
addressof(T (&o)[N]) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
return &o;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
BOOST_FORCEINLINE
|
||||||
|
T (*addressof(T (&o)[N]) BOOST_NOEXCEPT)[N]
|
||||||
|
{
|
||||||
|
return reinterpret_cast<T(*)[N]>(&o);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T, std::size_t N>
|
||||||
|
BOOST_FORCEINLINE
|
||||||
|
const T (*addressof(const T (&o)[N]) BOOST_NOEXCEPT)[N]
|
||||||
|
{
|
||||||
|
return reinterpret_cast<const T(*)[N]>(&o);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
namespace detail {
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
T addressof_declval() BOOST_NOEXCEPT;
|
||||||
|
|
||||||
|
template<class>
|
||||||
|
struct addressof_void {
|
||||||
|
typedef void type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T, class E = void>
|
||||||
|
struct addressof_member_operator {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct addressof_member_operator<T, typename
|
||||||
|
addressof_void<decltype(addressof_declval<T&>().operator&())>::type> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
#if BOOST_WORKAROUND(BOOST_INTEL, < 1600)
|
||||||
|
struct addressof_addressable { };
|
||||||
|
|
||||||
|
addressof_addressable*
|
||||||
|
operator&(addressof_addressable&) BOOST_NOEXCEPT;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template<class T, class E = void>
|
||||||
|
struct addressof_non_member_operator {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct addressof_non_member_operator<T, typename
|
||||||
|
addressof_void<decltype(operator&(addressof_declval<T&>()))>::type> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T, class E = void>
|
||||||
|
struct addressof_expression {
|
||||||
|
static constexpr bool value = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct addressof_expression<T,
|
||||||
|
typename addressof_void<decltype(&addressof_declval<T&>())>::type> {
|
||||||
|
static constexpr bool value = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct addressof_is_constexpr {
|
||||||
|
static constexpr bool value = addressof_expression<T>::value &&
|
||||||
|
!addressof_member_operator<T>::value &&
|
||||||
|
!addressof_non_member_operator<T>::value;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<bool E, class T>
|
||||||
|
struct addressof_if { };
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
struct addressof_if<true, T> {
|
||||||
|
typedef T* type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
BOOST_FORCEINLINE
|
||||||
|
typename addressof_if<!addressof_is_constexpr<T>::value, T>::type
|
||||||
|
addressof(T& o) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
return address_of<T>::get(addressof_ref<T>(o), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
constexpr BOOST_FORCEINLINE
|
||||||
|
typename addressof_if<addressof_is_constexpr<T>::value, T>::type
|
||||||
|
addressof(T& o) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
return &o;
|
||||||
|
}
|
||||||
|
|
||||||
|
} /* detail */
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
constexpr BOOST_FORCEINLINE T*
|
||||||
|
addressof(T& o) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
return detail::addressof(o);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} /* boost */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && \
|
||||||
|
!defined(BOOST_NO_CXX11_DELETED_FUNCTIONS)
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
const T* addressof(const T&&) = delete;
|
||||||
|
|
||||||
|
} /* boost */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,126 @@
|
||||||
|
#ifndef BOOST_CORE_DEMANGLE_HPP_INCLUDED
|
||||||
|
#define BOOST_CORE_DEMANGLE_HPP_INCLUDED
|
||||||
|
|
||||||
|
// core::demangle
|
||||||
|
//
|
||||||
|
// Copyright 2014 Peter Dimov
|
||||||
|
// Copyright 2014 Andrey Semashev
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
||||||
|
# pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// __has_include is currently supported by GCC and Clang. However GCC 4.9 may have issues and
|
||||||
|
// returns 1 for 'defined( __has_include )', while '__has_include' is actually not supported:
|
||||||
|
// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63662
|
||||||
|
#if defined( __has_include ) && (!defined( BOOST_GCC ) || (__GNUC__ + 0) >= 5)
|
||||||
|
# if __has_include(<cxxabi.h>)
|
||||||
|
# define BOOST_CORE_HAS_CXXABI_H
|
||||||
|
# endif
|
||||||
|
#elif defined( __GLIBCXX__ ) || defined( __GLIBCPP__ )
|
||||||
|
# define BOOST_CORE_HAS_CXXABI_H
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined( BOOST_CORE_HAS_CXXABI_H )
|
||||||
|
# include <cxxabi.h>
|
||||||
|
// For some archtectures (mips, mips64, x86, x86_64) cxxabi.h in Android NDK is implemented by gabi++ library
|
||||||
|
// (https://android.googlesource.com/platform/ndk/+/master/sources/cxx-stl/gabi++/), which does not implement
|
||||||
|
// abi::__cxa_demangle(). We detect this implementation by checking the include guard here.
|
||||||
|
# if defined( __GABIXX_CXXABI_H__ )
|
||||||
|
# undef BOOST_CORE_HAS_CXXABI_H
|
||||||
|
# else
|
||||||
|
# include <cstdlib>
|
||||||
|
# include <cstddef>
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
|
||||||
|
namespace core
|
||||||
|
{
|
||||||
|
|
||||||
|
inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT;
|
||||||
|
inline void demangle_free( char const * name ) BOOST_NOEXCEPT;
|
||||||
|
|
||||||
|
class scoped_demangled_name
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
char const * m_p;
|
||||||
|
|
||||||
|
public:
|
||||||
|
explicit scoped_demangled_name( char const * name ) BOOST_NOEXCEPT :
|
||||||
|
m_p( demangle_alloc( name ) )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
~scoped_demangled_name() BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
demangle_free( m_p );
|
||||||
|
}
|
||||||
|
|
||||||
|
char const * get() const BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
return m_p;
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_DELETED_FUNCTION(scoped_demangled_name( scoped_demangled_name const& ))
|
||||||
|
BOOST_DELETED_FUNCTION(scoped_demangled_name& operator= ( scoped_demangled_name const& ))
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#if defined( BOOST_CORE_HAS_CXXABI_H )
|
||||||
|
|
||||||
|
inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
int status = 0;
|
||||||
|
std::size_t size = 0;
|
||||||
|
return abi::__cxa_demangle( name, NULL, &size, &status );
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void demangle_free( char const * name ) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
std::free( const_cast< char* >( name ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
inline std::string demangle( char const * name )
|
||||||
|
{
|
||||||
|
scoped_demangled_name demangled_name( name );
|
||||||
|
char const * p = demangled_name.get();
|
||||||
|
if( !p )
|
||||||
|
p = name;
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
inline char const * demangle_alloc( char const * name ) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void demangle_free( char const * ) BOOST_NOEXCEPT
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
inline std::string demangle( char const * name )
|
||||||
|
{
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} // namespace core
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#undef BOOST_CORE_HAS_CXXABI_H
|
||||||
|
|
||||||
|
#endif // #ifndef BOOST_CORE_DEMANGLE_HPP_INCLUDED
|
|
@ -0,0 +1,128 @@
|
||||||
|
// Boost enable_if library
|
||||||
|
|
||||||
|
// Copyright 2003 (c) The Trustees of Indiana University.
|
||||||
|
|
||||||
|
// Use, modification, and distribution is 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)
|
||||||
|
|
||||||
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef BOOST_CORE_ENABLE_IF_HPP
|
||||||
|
#define BOOST_CORE_ENABLE_IF_HPP
|
||||||
|
|
||||||
|
#include "boost/config.hpp"
|
||||||
|
|
||||||
|
// Even the definition of enable_if causes problems on some compilers,
|
||||||
|
// so it's macroed out for all compilers that do not support SFINAE
|
||||||
|
|
||||||
|
#ifndef BOOST_NO_SFINAE
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
template<typename T, typename R=void>
|
||||||
|
struct enable_if_has_type
|
||||||
|
{
|
||||||
|
typedef R type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <bool B, class T = void>
|
||||||
|
struct enable_if_c {
|
||||||
|
typedef T type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct enable_if_c<false, T> {};
|
||||||
|
|
||||||
|
template <class Cond, class T = void>
|
||||||
|
struct enable_if : public enable_if_c<Cond::value, T> {};
|
||||||
|
|
||||||
|
template <bool B, class T>
|
||||||
|
struct lazy_enable_if_c {
|
||||||
|
typedef typename T::type type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct lazy_enable_if_c<false, T> {};
|
||||||
|
|
||||||
|
template <class Cond, class T>
|
||||||
|
struct lazy_enable_if : public lazy_enable_if_c<Cond::value, T> {};
|
||||||
|
|
||||||
|
|
||||||
|
template <bool B, class T = void>
|
||||||
|
struct disable_if_c {
|
||||||
|
typedef T type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct disable_if_c<true, T> {};
|
||||||
|
|
||||||
|
template <class Cond, class T = void>
|
||||||
|
struct disable_if : public disable_if_c<Cond::value, T> {};
|
||||||
|
|
||||||
|
template <bool B, class T>
|
||||||
|
struct lazy_disable_if_c {
|
||||||
|
typedef typename T::type type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct lazy_disable_if_c<true, T> {};
|
||||||
|
|
||||||
|
template <class Cond, class T>
|
||||||
|
struct lazy_disable_if : public lazy_disable_if_c<Cond::value, T> {};
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
namespace detail { typedef void enable_if_default_T; }
|
||||||
|
|
||||||
|
template <typename T>
|
||||||
|
struct enable_if_does_not_work_on_this_compiler;
|
||||||
|
|
||||||
|
template<typename T, typename R=void>
|
||||||
|
struct enable_if_has_type : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
template <bool B, class T = detail::enable_if_default_T>
|
||||||
|
struct enable_if_c : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
template <bool B, class T = detail::enable_if_default_T>
|
||||||
|
struct disable_if_c : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
template <bool B, class T = detail::enable_if_default_T>
|
||||||
|
struct lazy_enable_if_c : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
template <bool B, class T = detail::enable_if_default_T>
|
||||||
|
struct lazy_disable_if_c : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
template <class Cond, class T = detail::enable_if_default_T>
|
||||||
|
struct enable_if : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
template <class Cond, class T = detail::enable_if_default_T>
|
||||||
|
struct disable_if : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
template <class Cond, class T = detail::enable_if_default_T>
|
||||||
|
struct lazy_enable_if : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
template <class Cond, class T = detail::enable_if_default_T>
|
||||||
|
struct lazy_disable_if : enable_if_does_not_work_on_this_compiler<T>
|
||||||
|
{ };
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // BOOST_NO_SFINAE
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,560 @@
|
||||||
|
// boost cstdint.hpp header file ------------------------------------------//
|
||||||
|
|
||||||
|
// (C) Copyright Beman Dawes 1999.
|
||||||
|
// (C) Copyright Jens Mauer 2001
|
||||||
|
// (C) Copyright John Maddock 2001
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// See http://www.boost.org/libs/integer for documentation.
|
||||||
|
|
||||||
|
// Revision History
|
||||||
|
// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.)
|
||||||
|
// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer)
|
||||||
|
// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer)
|
||||||
|
// 12 Nov 00 Merged <boost/stdint.h> (Jens Maurer)
|
||||||
|
// 23 Sep 00 Added INTXX_C macro support (John Maddock).
|
||||||
|
// 22 Sep 00 Better 64-bit support (John Maddock)
|
||||||
|
// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost
|
||||||
|
// 8 Aug 99 Initial version (Beman Dawes)
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef BOOST_CSTDINT_HPP
|
||||||
|
#define BOOST_CSTDINT_HPP
|
||||||
|
|
||||||
|
//
|
||||||
|
// Since we always define the INT#_C macros as per C++0x,
|
||||||
|
// define __STDC_CONSTANT_MACROS so that <stdint.h> does the right
|
||||||
|
// thing if possible, and so that the user knows that the macros
|
||||||
|
// are actually defined as per C99.
|
||||||
|
//
|
||||||
|
#ifndef __STDC_CONSTANT_MACROS
|
||||||
|
# define __STDC_CONSTANT_MACROS
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
|
//
|
||||||
|
// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not
|
||||||
|
// depending upon what headers happen to have been included first...
|
||||||
|
// 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) \
|
||||||
|
|| (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
|
||||||
|
|
||||||
|
// The following #include is an implementation artifact; not part of interface.
|
||||||
|
# ifdef __hpux
|
||||||
|
// HP-UX has a vaguely nice <stdint.h> in a non-standard location
|
||||||
|
# include <inttypes.h>
|
||||||
|
# ifdef __STDC_32_MODE__
|
||||||
|
// this is triggered with GCC, because it defines __cplusplus < 199707L
|
||||||
|
# define BOOST_NO_INT64_T
|
||||||
|
# endif
|
||||||
|
# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX)
|
||||||
|
# include <inttypes.h>
|
||||||
|
# else
|
||||||
|
# include <stdint.h>
|
||||||
|
|
||||||
|
// There is a bug in Cygwin two _C macros
|
||||||
|
# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
|
||||||
|
# undef INTMAX_C
|
||||||
|
# undef UINTMAX_C
|
||||||
|
# define INTMAX_C(c) c##LL
|
||||||
|
# define UINTMAX_C(c) c##ULL
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#if defined(__QNX__) && defined(__EXT_QNX)
|
||||||
|
|
||||||
|
// QNX (Dinkumware stdlib) defines these as non-standard names.
|
||||||
|
// Reflect to the standard names.
|
||||||
|
|
||||||
|
typedef ::intleast8_t int_least8_t;
|
||||||
|
typedef ::intfast8_t int_fast8_t;
|
||||||
|
typedef ::uintleast8_t uint_least8_t;
|
||||||
|
typedef ::uintfast8_t uint_fast8_t;
|
||||||
|
|
||||||
|
typedef ::intleast16_t int_least16_t;
|
||||||
|
typedef ::intfast16_t int_fast16_t;
|
||||||
|
typedef ::uintleast16_t uint_least16_t;
|
||||||
|
typedef ::uintfast16_t uint_fast16_t;
|
||||||
|
|
||||||
|
typedef ::intleast32_t int_least32_t;
|
||||||
|
typedef ::intfast32_t int_fast32_t;
|
||||||
|
typedef ::uintleast32_t uint_least32_t;
|
||||||
|
typedef ::uintfast32_t uint_fast32_t;
|
||||||
|
|
||||||
|
# ifndef BOOST_NO_INT64_T
|
||||||
|
|
||||||
|
typedef ::intleast64_t int_least64_t;
|
||||||
|
typedef ::intfast64_t int_fast64_t;
|
||||||
|
typedef ::uintleast64_t uint_least64_t;
|
||||||
|
typedef ::uintfast64_t uint_fast64_t;
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
|
||||||
|
using ::int8_t;
|
||||||
|
using ::int_least8_t;
|
||||||
|
using ::int_fast8_t;
|
||||||
|
using ::uint8_t;
|
||||||
|
using ::uint_least8_t;
|
||||||
|
using ::uint_fast8_t;
|
||||||
|
|
||||||
|
using ::int16_t;
|
||||||
|
using ::int_least16_t;
|
||||||
|
using ::int_fast16_t;
|
||||||
|
using ::uint16_t;
|
||||||
|
using ::uint_least16_t;
|
||||||
|
using ::uint_fast16_t;
|
||||||
|
|
||||||
|
using ::int32_t;
|
||||||
|
using ::int_least32_t;
|
||||||
|
using ::int_fast32_t;
|
||||||
|
using ::uint32_t;
|
||||||
|
using ::uint_least32_t;
|
||||||
|
using ::uint_fast32_t;
|
||||||
|
|
||||||
|
# ifndef BOOST_NO_INT64_T
|
||||||
|
|
||||||
|
using ::int64_t;
|
||||||
|
using ::int_least64_t;
|
||||||
|
using ::int_fast64_t;
|
||||||
|
using ::uint64_t;
|
||||||
|
using ::uint_least64_t;
|
||||||
|
using ::uint_fast64_t;
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
using ::intmax_t;
|
||||||
|
using ::uintmax_t;
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS) || defined(__SOLARIS9__) || defined(__NetBSD__)
|
||||||
|
// FreeBSD and Tru64 have an <inttypes.h> that contains much of what we need.
|
||||||
|
# include <inttypes.h>
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
|
||||||
|
using ::int8_t;
|
||||||
|
typedef int8_t int_least8_t;
|
||||||
|
typedef int8_t int_fast8_t;
|
||||||
|
using ::uint8_t;
|
||||||
|
typedef uint8_t uint_least8_t;
|
||||||
|
typedef uint8_t uint_fast8_t;
|
||||||
|
|
||||||
|
using ::int16_t;
|
||||||
|
typedef int16_t int_least16_t;
|
||||||
|
typedef int16_t int_fast16_t;
|
||||||
|
using ::uint16_t;
|
||||||
|
typedef uint16_t uint_least16_t;
|
||||||
|
typedef uint16_t uint_fast16_t;
|
||||||
|
|
||||||
|
using ::int32_t;
|
||||||
|
typedef int32_t int_least32_t;
|
||||||
|
typedef int32_t int_fast32_t;
|
||||||
|
using ::uint32_t;
|
||||||
|
typedef uint32_t uint_least32_t;
|
||||||
|
typedef uint32_t uint_fast32_t;
|
||||||
|
|
||||||
|
# ifndef BOOST_NO_INT64_T
|
||||||
|
|
||||||
|
using ::int64_t;
|
||||||
|
typedef int64_t int_least64_t;
|
||||||
|
typedef int64_t int_fast64_t;
|
||||||
|
using ::uint64_t;
|
||||||
|
typedef uint64_t uint_least64_t;
|
||||||
|
typedef uint64_t uint_fast64_t;
|
||||||
|
|
||||||
|
typedef int64_t intmax_t;
|
||||||
|
typedef uint64_t uintmax_t;
|
||||||
|
|
||||||
|
# else
|
||||||
|
|
||||||
|
typedef int32_t intmax_t;
|
||||||
|
typedef uint32_t uintmax_t;
|
||||||
|
|
||||||
|
# endif
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#else // BOOST_HAS_STDINT_H
|
||||||
|
|
||||||
|
# include <boost/limits.hpp> // implementation artifact; not part of interface
|
||||||
|
# include <limits.h> // needed for limits macros
|
||||||
|
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
|
||||||
|
// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit
|
||||||
|
// platforms. For other systems, they will have to be hand tailored.
|
||||||
|
//
|
||||||
|
// Because the fast types are assumed to be the same as the undecorated types,
|
||||||
|
// it may be possible to hand tailor a more efficient implementation. Such
|
||||||
|
// an optimization may be illusionary; on the Intel x86-family 386 on, for
|
||||||
|
// example, byte arithmetic and load/stores are as fast as "int" sized ones.
|
||||||
|
|
||||||
|
// 8-bit types ------------------------------------------------------------//
|
||||||
|
|
||||||
|
# if UCHAR_MAX == 0xff
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef signed char int_least8_t;
|
||||||
|
typedef signed char int_fast8_t;
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef unsigned char uint_least8_t;
|
||||||
|
typedef unsigned char uint_fast8_t;
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// 16-bit types -----------------------------------------------------------//
|
||||||
|
|
||||||
|
# if USHRT_MAX == 0xffff
|
||||||
|
# if defined(__crayx1)
|
||||||
|
// The Cray X1 has a 16-bit short, however it is not recommend
|
||||||
|
// for use in performance critical code.
|
||||||
|
typedef short int16_t;
|
||||||
|
typedef short int_least16_t;
|
||||||
|
typedef int int_fast16_t;
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
typedef unsigned short uint_least16_t;
|
||||||
|
typedef unsigned int uint_fast16_t;
|
||||||
|
# else
|
||||||
|
typedef short int16_t;
|
||||||
|
typedef short int_least16_t;
|
||||||
|
typedef short int_fast16_t;
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
typedef unsigned short uint_least16_t;
|
||||||
|
typedef unsigned short uint_fast16_t;
|
||||||
|
# endif
|
||||||
|
# elif (USHRT_MAX == 0xffffffff) && defined(__MTA__)
|
||||||
|
// On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified
|
||||||
|
// MTA / XMT does support the following non-standard integer types
|
||||||
|
typedef __short16 int16_t;
|
||||||
|
typedef __short16 int_least16_t;
|
||||||
|
typedef __short16 int_fast16_t;
|
||||||
|
typedef unsigned __short16 uint16_t;
|
||||||
|
typedef unsigned __short16 uint_least16_t;
|
||||||
|
typedef unsigned __short16 uint_fast16_t;
|
||||||
|
# elif (USHRT_MAX == 0xffffffff) && defined(CRAY)
|
||||||
|
// no 16-bit types on Cray:
|
||||||
|
typedef short int_least16_t;
|
||||||
|
typedef short int_fast16_t;
|
||||||
|
typedef unsigned short uint_least16_t;
|
||||||
|
typedef unsigned short uint_fast16_t;
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// 32-bit types -----------------------------------------------------------//
|
||||||
|
|
||||||
|
# if UINT_MAX == 0xffffffff
|
||||||
|
typedef int int32_t;
|
||||||
|
typedef int int_least32_t;
|
||||||
|
typedef int int_fast32_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
typedef unsigned int uint_least32_t;
|
||||||
|
typedef unsigned int uint_fast32_t;
|
||||||
|
# elif (USHRT_MAX == 0xffffffff)
|
||||||
|
typedef short int32_t;
|
||||||
|
typedef short int_least32_t;
|
||||||
|
typedef short int_fast32_t;
|
||||||
|
typedef unsigned short uint32_t;
|
||||||
|
typedef unsigned short uint_least32_t;
|
||||||
|
typedef unsigned short uint_fast32_t;
|
||||||
|
# elif ULONG_MAX == 0xffffffff
|
||||||
|
typedef long int32_t;
|
||||||
|
typedef long int_least32_t;
|
||||||
|
typedef long int_fast32_t;
|
||||||
|
typedef unsigned long uint32_t;
|
||||||
|
typedef unsigned long uint_least32_t;
|
||||||
|
typedef unsigned long uint_fast32_t;
|
||||||
|
# elif (UINT_MAX == 0xffffffffffffffff) && defined(__MTA__)
|
||||||
|
// Integers are 64 bits on the MTA / XMT
|
||||||
|
typedef __int32 int32_t;
|
||||||
|
typedef __int32 int_least32_t;
|
||||||
|
typedef __int32 int_fast32_t;
|
||||||
|
typedef unsigned __int32 uint32_t;
|
||||||
|
typedef unsigned __int32 uint_least32_t;
|
||||||
|
typedef unsigned __int32 uint_fast32_t;
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// 64-bit types + intmax_t and uintmax_t ----------------------------------//
|
||||||
|
|
||||||
|
# if defined(BOOST_HAS_LONG_LONG) && \
|
||||||
|
!defined(BOOST_MSVC) && !defined(__BORLANDC__) && \
|
||||||
|
(!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \
|
||||||
|
(defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
|
||||||
|
# if defined(__hpux)
|
||||||
|
// HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
|
||||||
|
# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL)
|
||||||
|
// 2**64 - 1
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
|
||||||
|
typedef ::boost::long_long_type intmax_t;
|
||||||
|
typedef ::boost::ulong_long_type uintmax_t;
|
||||||
|
typedef ::boost::long_long_type int64_t;
|
||||||
|
typedef ::boost::long_long_type int_least64_t;
|
||||||
|
typedef ::boost::long_long_type int_fast64_t;
|
||||||
|
typedef ::boost::ulong_long_type uint64_t;
|
||||||
|
typedef ::boost::ulong_long_type uint_least64_t;
|
||||||
|
typedef ::boost::ulong_long_type uint_fast64_t;
|
||||||
|
|
||||||
|
# elif ULONG_MAX != 0xffffffff
|
||||||
|
|
||||||
|
# if ULONG_MAX == 18446744073709551615 // 2**64 - 1
|
||||||
|
typedef long intmax_t;
|
||||||
|
typedef unsigned long uintmax_t;
|
||||||
|
typedef long int64_t;
|
||||||
|
typedef long int_least64_t;
|
||||||
|
typedef long int_fast64_t;
|
||||||
|
typedef unsigned long uint64_t;
|
||||||
|
typedef unsigned long uint_least64_t;
|
||||||
|
typedef unsigned long uint_fast64_t;
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG)
|
||||||
|
__extension__ typedef long long intmax_t;
|
||||||
|
__extension__ typedef unsigned long long uintmax_t;
|
||||||
|
__extension__ typedef long long int64_t;
|
||||||
|
__extension__ typedef long long int_least64_t;
|
||||||
|
__extension__ typedef long long int_fast64_t;
|
||||||
|
__extension__ typedef unsigned long long uint64_t;
|
||||||
|
__extension__ typedef unsigned long long uint_least64_t;
|
||||||
|
__extension__ typedef unsigned long long uint_fast64_t;
|
||||||
|
# elif defined(BOOST_HAS_MS_INT64)
|
||||||
|
//
|
||||||
|
// we have Borland/Intel/Microsoft __int64:
|
||||||
|
//
|
||||||
|
typedef __int64 intmax_t;
|
||||||
|
typedef unsigned __int64 uintmax_t;
|
||||||
|
typedef __int64 int64_t;
|
||||||
|
typedef __int64 int_least64_t;
|
||||||
|
typedef __int64 int_fast64_t;
|
||||||
|
typedef unsigned __int64 uint64_t;
|
||||||
|
typedef unsigned __int64 uint_least64_t;
|
||||||
|
typedef unsigned __int64 uint_fast64_t;
|
||||||
|
# else // assume no 64-bit integers
|
||||||
|
# define BOOST_NO_INT64_T
|
||||||
|
typedef int32_t intmax_t;
|
||||||
|
typedef uint32_t uintmax_t;
|
||||||
|
# endif
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
|
||||||
|
#endif // BOOST_HAS_STDINT_H
|
||||||
|
|
||||||
|
// intptr_t/uintptr_t are defined separately because they are optional and not universally available
|
||||||
|
#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H)
|
||||||
|
// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h
|
||||||
|
#include <stddef.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config.
|
||||||
|
#if !defined(__PGIC__)
|
||||||
|
|
||||||
|
#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \
|
||||||
|
|| (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \
|
||||||
|
|| defined(__CYGWIN__) \
|
||||||
|
|| defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
|
||||||
|
|| defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || (defined(sun) && !defined(BOOST_HAS_STDINT_H)) || defined(INTPTR_MAX)
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
using ::intptr_t;
|
||||||
|
using ::uintptr_t;
|
||||||
|
}
|
||||||
|
#define BOOST_HAS_INTPTR_T
|
||||||
|
|
||||||
|
// Clang pretends to be GCC, so it'll match this condition
|
||||||
|
#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__)
|
||||||
|
|
||||||
|
namespace boost {
|
||||||
|
typedef __INTPTR_TYPE__ intptr_t;
|
||||||
|
typedef __UINTPTR_TYPE__ uintptr_t;
|
||||||
|
}
|
||||||
|
#define BOOST_HAS_INTPTR_T
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // !defined(__PGIC__)
|
||||||
|
|
||||||
|
#endif // BOOST_CSTDINT_HPP
|
||||||
|
|
||||||
|
|
||||||
|
/****************************************************
|
||||||
|
|
||||||
|
Macro definition section:
|
||||||
|
|
||||||
|
Added 23rd September 2000 (John Maddock).
|
||||||
|
Modified 11th September 2001 to be excluded when
|
||||||
|
BOOST_HAS_STDINT_H is defined (John Maddock).
|
||||||
|
Modified 11th Dec 2009 to always define the
|
||||||
|
INT#_C macros if they're not already defined (John Maddock).
|
||||||
|
|
||||||
|
******************************************************/
|
||||||
|
|
||||||
|
#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \
|
||||||
|
(!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C))
|
||||||
|
//
|
||||||
|
// For the following code we get several warnings along the lines of:
|
||||||
|
//
|
||||||
|
// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant
|
||||||
|
//
|
||||||
|
// So we declare this a system header to suppress these warnings.
|
||||||
|
//
|
||||||
|
#if defined(__GNUC__) && (__GNUC__ >= 4)
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Undef the macros as a precaution, since we may get here if <stdint.h> has failed
|
||||||
|
// to define them all, see https://svn.boost.org/trac/boost/ticket/12786
|
||||||
|
//
|
||||||
|
#undef INT8_C
|
||||||
|
#undef INT16_C
|
||||||
|
#undef INT32_C
|
||||||
|
#undef INT64_C
|
||||||
|
#undef INTMAX_C
|
||||||
|
#undef UINT8_C
|
||||||
|
#undef UINT16_C
|
||||||
|
#undef UINT32_C
|
||||||
|
#undef UINT64_C
|
||||||
|
#undef UINTMAX_C
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
# define BOOST__STDC_CONSTANT_MACROS_DEFINED
|
||||||
|
# if defined(BOOST_HAS_MS_INT64)
|
||||||
|
//
|
||||||
|
// Borland/Intel/Microsoft compilers have width specific suffixes:
|
||||||
|
//
|
||||||
|
#ifndef INT8_C
|
||||||
|
# define INT8_C(value) value##i8
|
||||||
|
#endif
|
||||||
|
#ifndef INT16_C
|
||||||
|
# define INT16_C(value) value##i16
|
||||||
|
#endif
|
||||||
|
#ifndef INT32_C
|
||||||
|
# define INT32_C(value) value##i32
|
||||||
|
#endif
|
||||||
|
#ifndef INT64_C
|
||||||
|
# define INT64_C(value) value##i64
|
||||||
|
#endif
|
||||||
|
# ifdef __BORLANDC__
|
||||||
|
// Borland bug: appending ui8 makes the type a signed char
|
||||||
|
# define UINT8_C(value) static_cast<unsigned char>(value##u)
|
||||||
|
# else
|
||||||
|
# define UINT8_C(value) value##ui8
|
||||||
|
# endif
|
||||||
|
#ifndef UINT16_C
|
||||||
|
# define UINT16_C(value) value##ui16
|
||||||
|
#endif
|
||||||
|
#ifndef UINT32_C
|
||||||
|
# define UINT32_C(value) value##ui32
|
||||||
|
#endif
|
||||||
|
#ifndef UINT64_C
|
||||||
|
# define UINT64_C(value) value##ui64
|
||||||
|
#endif
|
||||||
|
#ifndef INTMAX_C
|
||||||
|
# define INTMAX_C(value) value##i64
|
||||||
|
# define UINTMAX_C(value) value##ui64
|
||||||
|
#endif
|
||||||
|
|
||||||
|
# else
|
||||||
|
// do it the old fashioned way:
|
||||||
|
|
||||||
|
// 8-bit types ------------------------------------------------------------//
|
||||||
|
|
||||||
|
# if (UCHAR_MAX == 0xff) && !defined(INT8_C)
|
||||||
|
# define INT8_C(value) static_cast<boost::int8_t>(value)
|
||||||
|
# define UINT8_C(value) static_cast<boost::uint8_t>(value##u)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// 16-bit types -----------------------------------------------------------//
|
||||||
|
|
||||||
|
# if (USHRT_MAX == 0xffff) && !defined(INT16_C)
|
||||||
|
# define INT16_C(value) static_cast<boost::int16_t>(value)
|
||||||
|
# define UINT16_C(value) static_cast<boost::uint16_t>(value##u)
|
||||||
|
# endif
|
||||||
|
|
||||||
|
// 32-bit types -----------------------------------------------------------//
|
||||||
|
#ifndef INT32_C
|
||||||
|
# if (UINT_MAX == 0xffffffff)
|
||||||
|
# define INT32_C(value) value
|
||||||
|
# define UINT32_C(value) value##u
|
||||||
|
# elif ULONG_MAX == 0xffffffff
|
||||||
|
# define INT32_C(value) value##L
|
||||||
|
# define UINT32_C(value) value##uL
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// 64-bit types + intmax_t and uintmax_t ----------------------------------//
|
||||||
|
#ifndef INT64_C
|
||||||
|
# if defined(BOOST_HAS_LONG_LONG) && \
|
||||||
|
(defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_ULLONG_MAX) || defined(_LLONG_MAX))
|
||||||
|
|
||||||
|
# if defined(__hpux)
|
||||||
|
// HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
|
||||||
|
# define INT64_C(value) value##LL
|
||||||
|
# define UINT64_C(value) value##uLL
|
||||||
|
# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \
|
||||||
|
(defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \
|
||||||
|
(defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \
|
||||||
|
(defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \
|
||||||
|
(defined(_LLONG_MAX) && _LLONG_MAX == 9223372036854775807LL)
|
||||||
|
|
||||||
|
# define INT64_C(value) value##LL
|
||||||
|
# define UINT64_C(value) value##uLL
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
# elif ULONG_MAX != 0xffffffff
|
||||||
|
|
||||||
|
# if ULONG_MAX == 18446744073709551615U // 2**64 - 1
|
||||||
|
# define INT64_C(value) value##L
|
||||||
|
# define UINT64_C(value) value##uL
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
# elif defined(BOOST_HAS_LONG_LONG)
|
||||||
|
// Usual macros not defined, work things out for ourselves:
|
||||||
|
# if(~0uLL == 18446744073709551615ULL)
|
||||||
|
# define INT64_C(value) value##LL
|
||||||
|
# define UINT64_C(value) value##uLL
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# error defaults not correct; you must hand modify boost/cstdint.hpp
|
||||||
|
# endif
|
||||||
|
|
||||||
|
# ifdef BOOST_NO_INT64_T
|
||||||
|
# define INTMAX_C(value) INT32_C(value)
|
||||||
|
# define UINTMAX_C(value) UINT32_C(value)
|
||||||
|
# else
|
||||||
|
# define INTMAX_C(value) INT64_C(value)
|
||||||
|
# define UINTMAX_C(value) UINT64_C(value)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
# endif // Borland/Microsoft specific width suffixes
|
||||||
|
|
||||||
|
#endif // INT#_C macros.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
#ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
|
||||||
|
#define BOOST_CURRENT_FUNCTION_HPP_INCLUDED
|
||||||
|
|
||||||
|
// MS compatible compilers support #pragma once
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
|
||||||
|
# pragma once
|
||||||
|
#endif
|
||||||
|
|
||||||
|
//
|
||||||
|
// boost/current_function.hpp - BOOST_CURRENT_FUNCTION
|
||||||
|
//
|
||||||
|
// Copyright (c) 2002 Peter Dimov and Multi Media Ltd.
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
// http://www.boost.org/libs/assert/current_function.html
|
||||||
|
//
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
|
||||||
|
namespace detail
|
||||||
|
{
|
||||||
|
|
||||||
|
inline void current_function_helper()
|
||||||
|
{
|
||||||
|
|
||||||
|
#if defined( BOOST_DISABLE_CURRENT_FUNCTION )
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION "(unknown)"
|
||||||
|
|
||||||
|
#elif defined(__GNUC__) || (defined(__MWERKS__) && (__MWERKS__ >= 0x3000)) || (defined(__ICC) && (__ICC >= 600)) || defined(__ghs__)
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
|
||||||
|
|
||||||
|
#elif defined(__DMC__) && (__DMC__ >= 0x810)
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION __PRETTY_FUNCTION__
|
||||||
|
|
||||||
|
#elif defined(__FUNCSIG__)
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION __FUNCSIG__
|
||||||
|
|
||||||
|
#elif (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 600)) || (defined(__IBMCPP__) && (__IBMCPP__ >= 500))
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION __FUNCTION__
|
||||||
|
|
||||||
|
#elif defined(__BORLANDC__) && (__BORLANDC__ >= 0x550)
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION __FUNC__
|
||||||
|
|
||||||
|
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION __func__
|
||||||
|
|
||||||
|
#elif defined(__cplusplus) && (__cplusplus >= 201103)
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION __func__
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
# define BOOST_CURRENT_FUNCTION "(unknown)"
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace detail
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // #ifndef BOOST_CURRENT_FUNCTION_HPP_INCLUDED
|
|
@ -0,0 +1,39 @@
|
||||||
|
// (C) Copyright David Abrahams 2002.
|
||||||
|
// 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 ITERATOR_DWA122600_HPP_
|
||||||
|
#define ITERATOR_DWA122600_HPP_
|
||||||
|
|
||||||
|
// This header is obsolete and will be deprecated.
|
||||||
|
|
||||||
|
#include <iterator>
|
||||||
|
#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
|
||||||
|
#include <cstddef>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
|
||||||
|
namespace detail
|
||||||
|
{
|
||||||
|
|
||||||
|
using std::iterator_traits;
|
||||||
|
using std::distance;
|
||||||
|
|
||||||
|
#if defined(__SUNPRO_CC) && (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION))
|
||||||
|
// std::distance from stlport with Oracle compiler 12.4 and 12.5 fails to deduce template parameters
|
||||||
|
// when one of the arguments is an array and the other one is a pointer.
|
||||||
|
template< typename T, std::size_t N >
|
||||||
|
inline typename std::iterator_traits< T* >::difference_type distance(T (&left)[N], T* right)
|
||||||
|
{
|
||||||
|
return std::distance(static_cast< T* >(left), right);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
} // namespace detail
|
||||||
|
|
||||||
|
} // namespace boost
|
||||||
|
|
||||||
|
#endif // ITERATOR_DWA122600_HPP_
|
|
@ -0,0 +1,10 @@
|
||||||
|
// Copyright David Abrahams 2002.
|
||||||
|
// 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
|
||||||
|
|
||||||
|
#include <boost/config/workaround.hpp>
|
||||||
|
|
||||||
|
#endif // WORKAROUND_DWA2002126_HPP
|
|
@ -0,0 +1,521 @@
|
||||||
|
//Copyright (c) 2006-2009 Emil Dotchevski and Reverge Studios, Inc.
|
||||||
|
|
||||||
|
//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 UUID_274DA366004E11DCB1DDFE2E56D89593
|
||||||
|
#define UUID_274DA366004E11DCB1DDFE2E56D89593
|
||||||
|
#if (__GNUC__*100+__GNUC_MINOR__>301) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
|
||||||
|
#pragma GCC system_header
|
||||||
|
#endif
|
||||||
|
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
|
||||||
|
#pragma warning(push,1)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef BOOST_EXCEPTION_MINI_BOOST
|
||||||
|
#include <memory>
|
||||||
|
namespace boost { namespace exception_detail { using std::shared_ptr; } }
|
||||||
|
#else
|
||||||
|
namespace boost { template <class T> class shared_ptr; };
|
||||||
|
namespace boost { namespace exception_detail { using boost::shared_ptr; } }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace
|
||||||
|
boost
|
||||||
|
{
|
||||||
|
namespace
|
||||||
|
exception_detail
|
||||||
|
{
|
||||||
|
template <class T>
|
||||||
|
class
|
||||||
|
refcount_ptr
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
refcount_ptr():
|
||||||
|
px_(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
~refcount_ptr()
|
||||||
|
{
|
||||||
|
release();
|
||||||
|
}
|
||||||
|
|
||||||
|
refcount_ptr( refcount_ptr const & x ):
|
||||||
|
px_(x.px_)
|
||||||
|
{
|
||||||
|
add_ref();
|
||||||
|
}
|
||||||
|
|
||||||
|
refcount_ptr &
|
||||||
|
operator=( refcount_ptr const & x )
|
||||||
|
{
|
||||||
|
adopt(x.px_);
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
adopt( T * px )
|
||||||
|
{
|
||||||
|
release();
|
||||||
|
px_=px;
|
||||||
|
add_ref();
|
||||||
|
}
|
||||||
|
|
||||||
|
T *
|
||||||
|
get() const
|
||||||
|
{
|
||||||
|
return px_;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
T * px_;
|
||||||
|
|
||||||
|
void
|
||||||
|
add_ref()
|
||||||
|
{
|
||||||
|
if( px_ )
|
||||||
|
px_->add_ref();
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
release()
|
||||||
|
{
|
||||||
|
if( px_ && px_->release() )
|
||||||
|
px_=0;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
template <class Tag,class T>
|
||||||
|
class error_info;
|
||||||
|
|
||||||
|
typedef error_info<struct throw_function_,char const *> throw_function;
|
||||||
|
typedef error_info<struct throw_file_,char const *> throw_file;
|
||||||
|
typedef error_info<struct throw_line_,int> throw_line;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
class
|
||||||
|
error_info<throw_function_,char const *>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef char const * value_type;
|
||||||
|
value_type v_;
|
||||||
|
explicit
|
||||||
|
error_info( value_type v ):
|
||||||
|
v_(v)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
class
|
||||||
|
error_info<throw_file_,char const *>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef char const * value_type;
|
||||||
|
value_type v_;
|
||||||
|
explicit
|
||||||
|
error_info( value_type v ):
|
||||||
|
v_(v)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
class
|
||||||
|
error_info<throw_line_,int>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
typedef int value_type;
|
||||||
|
value_type v_;
|
||||||
|
explicit
|
||||||
|
error_info( value_type v ):
|
||||||
|
v_(v)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility push (default)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
class exception;
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility pop
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
namespace
|
||||||
|
exception_detail
|
||||||
|
{
|
||||||
|
class error_info_base;
|
||||||
|
struct type_info_;
|
||||||
|
|
||||||
|
struct
|
||||||
|
error_info_container
|
||||||
|
{
|
||||||
|
virtual char const * diagnostic_information( char const * ) const = 0;
|
||||||
|
virtual shared_ptr<error_info_base> get( type_info_ const & ) const = 0;
|
||||||
|
virtual void set( shared_ptr<error_info_base> const &, type_info_ const & ) = 0;
|
||||||
|
virtual void add_ref() const = 0;
|
||||||
|
virtual bool release() const = 0;
|
||||||
|
virtual refcount_ptr<exception_detail::error_info_container> clone() const = 0;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
~error_info_container() throw()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class>
|
||||||
|
struct get_info;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct get_info<throw_function>;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct get_info<throw_file>;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct get_info<throw_line>;
|
||||||
|
|
||||||
|
template <class>
|
||||||
|
struct set_info_rv;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct set_info_rv<throw_function>;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct set_info_rv<throw_file>;
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct set_info_rv<throw_line>;
|
||||||
|
|
||||||
|
char const * get_diagnostic_information( exception const &, char const * );
|
||||||
|
|
||||||
|
void copy_boost_exception( exception *, exception const * );
|
||||||
|
|
||||||
|
template <class E,class Tag,class T>
|
||||||
|
E const & set_info( E const &, error_info<Tag,T> const & );
|
||||||
|
|
||||||
|
template <class E>
|
||||||
|
E const & set_info( E const &, throw_function const & );
|
||||||
|
|
||||||
|
template <class E>
|
||||||
|
E const & set_info( E const &, throw_file const & );
|
||||||
|
|
||||||
|
template <class E>
|
||||||
|
E const & set_info( E const &, throw_line const & );
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility push (default)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
class
|
||||||
|
exception
|
||||||
|
{
|
||||||
|
//<N3757>
|
||||||
|
public:
|
||||||
|
template <class Tag> void set( typename Tag::type const & );
|
||||||
|
template <class Tag> typename Tag::type const * get() const;
|
||||||
|
//</N3757>
|
||||||
|
|
||||||
|
protected:
|
||||||
|
|
||||||
|
exception():
|
||||||
|
throw_function_(0),
|
||||||
|
throw_file_(0),
|
||||||
|
throw_line_(-1)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef __HP_aCC
|
||||||
|
//On HP aCC, this protected copy constructor prevents throwing boost::exception.
|
||||||
|
//On all other platforms, the same effect is achieved by the pure virtual destructor.
|
||||||
|
exception( exception const & x ) throw():
|
||||||
|
data_(x.data_),
|
||||||
|
throw_function_(x.throw_function_),
|
||||||
|
throw_file_(x.throw_file_),
|
||||||
|
throw_line_(x.throw_line_)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
virtual ~exception() throw()
|
||||||
|
#ifndef __HP_aCC
|
||||||
|
= 0 //Workaround for HP aCC, =0 incorrectly leads to link errors.
|
||||||
|
#endif
|
||||||
|
;
|
||||||
|
|
||||||
|
#if (defined(__MWERKS__) && __MWERKS__<=0x3207) || (defined(_MSC_VER) && _MSC_VER<=1310)
|
||||||
|
public:
|
||||||
|
#else
|
||||||
|
private:
|
||||||
|
|
||||||
|
template <class E>
|
||||||
|
friend E const & exception_detail::set_info( E const &, throw_function const & );
|
||||||
|
|
||||||
|
template <class E>
|
||||||
|
friend E const & exception_detail::set_info( E const &, throw_file const & );
|
||||||
|
|
||||||
|
template <class E>
|
||||||
|
friend E const & exception_detail::set_info( E const &, throw_line const & );
|
||||||
|
|
||||||
|
template <class E,class Tag,class T>
|
||||||
|
friend E const & exception_detail::set_info( E const &, error_info<Tag,T> const & );
|
||||||
|
|
||||||
|
friend char const * exception_detail::get_diagnostic_information( exception const &, char const * );
|
||||||
|
|
||||||
|
template <class>
|
||||||
|
friend struct exception_detail::get_info;
|
||||||
|
friend struct exception_detail::get_info<throw_function>;
|
||||||
|
friend struct exception_detail::get_info<throw_file>;
|
||||||
|
friend struct exception_detail::get_info<throw_line>;
|
||||||
|
template <class>
|
||||||
|
friend struct exception_detail::set_info_rv;
|
||||||
|
friend struct exception_detail::set_info_rv<throw_function>;
|
||||||
|
friend struct exception_detail::set_info_rv<throw_file>;
|
||||||
|
friend struct exception_detail::set_info_rv<throw_line>;
|
||||||
|
friend void exception_detail::copy_boost_exception( exception *, exception const * );
|
||||||
|
#endif
|
||||||
|
mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_;
|
||||||
|
mutable char const * throw_function_;
|
||||||
|
mutable char const * throw_file_;
|
||||||
|
mutable int throw_line_;
|
||||||
|
};
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility pop
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
inline
|
||||||
|
exception::
|
||||||
|
~exception() throw()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace
|
||||||
|
exception_detail
|
||||||
|
{
|
||||||
|
template <class E>
|
||||||
|
E const &
|
||||||
|
set_info( E const & x, throw_function const & y )
|
||||||
|
{
|
||||||
|
x.throw_function_=y.v_;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class E>
|
||||||
|
E const &
|
||||||
|
set_info( E const & x, throw_file const & y )
|
||||||
|
{
|
||||||
|
x.throw_file_=y.v_;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class E>
|
||||||
|
E const &
|
||||||
|
set_info( E const & x, throw_line const & y )
|
||||||
|
{
|
||||||
|
x.throw_line_=y.v_;
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
namespace
|
||||||
|
exception_detail
|
||||||
|
{
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility push (default)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
template <class T>
|
||||||
|
struct
|
||||||
|
error_info_injector:
|
||||||
|
public T,
|
||||||
|
public exception
|
||||||
|
{
|
||||||
|
explicit
|
||||||
|
error_info_injector( T const & x ):
|
||||||
|
T(x)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
~error_info_injector() throw()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility pop
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
struct large_size { char c[256]; };
|
||||||
|
large_size dispatch_boost_exception( exception const * );
|
||||||
|
|
||||||
|
struct small_size { };
|
||||||
|
small_size dispatch_boost_exception( void const * );
|
||||||
|
|
||||||
|
template <class,int>
|
||||||
|
struct enable_error_info_helper;
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct
|
||||||
|
enable_error_info_helper<T,sizeof(large_size)>
|
||||||
|
{
|
||||||
|
typedef T type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct
|
||||||
|
enable_error_info_helper<T,sizeof(small_size)>
|
||||||
|
{
|
||||||
|
typedef error_info_injector<T> type;
|
||||||
|
};
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
struct
|
||||||
|
enable_error_info_return_type
|
||||||
|
{
|
||||||
|
typedef typename enable_error_info_helper<T,sizeof(exception_detail::dispatch_boost_exception(static_cast<T *>(0)))>::type type;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
inline
|
||||||
|
typename
|
||||||
|
exception_detail::enable_error_info_return_type<T>::type
|
||||||
|
enable_error_info( T const & x )
|
||||||
|
{
|
||||||
|
typedef typename exception_detail::enable_error_info_return_type<T>::type rt;
|
||||||
|
return rt(x);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
namespace
|
||||||
|
exception_detail
|
||||||
|
{
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility push (default)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
class
|
||||||
|
clone_base
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
virtual clone_base const * clone() const = 0;
|
||||||
|
virtual void rethrow() const = 0;
|
||||||
|
|
||||||
|
virtual
|
||||||
|
~clone_base() throw()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility pop
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
copy_boost_exception( exception * a, exception const * b )
|
||||||
|
{
|
||||||
|
refcount_ptr<error_info_container> data;
|
||||||
|
if( error_info_container * d=b->data_.get() )
|
||||||
|
data = d->clone();
|
||||||
|
a->throw_file_ = b->throw_file_;
|
||||||
|
a->throw_line_ = b->throw_line_;
|
||||||
|
a->throw_function_ = b->throw_function_;
|
||||||
|
a->data_ = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
copy_boost_exception( void *, void const * )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility push (default)
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
template <class T>
|
||||||
|
class
|
||||||
|
clone_impl:
|
||||||
|
public T,
|
||||||
|
public virtual clone_base
|
||||||
|
{
|
||||||
|
struct clone_tag { };
|
||||||
|
clone_impl( clone_impl const & x, clone_tag ):
|
||||||
|
T(x)
|
||||||
|
{
|
||||||
|
copy_boost_exception(this,&x);
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
|
explicit
|
||||||
|
clone_impl( T const & x ):
|
||||||
|
T(x)
|
||||||
|
{
|
||||||
|
copy_boost_exception(this,&x);
|
||||||
|
}
|
||||||
|
|
||||||
|
~clone_impl() throw()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
|
||||||
|
clone_base const *
|
||||||
|
clone() const
|
||||||
|
{
|
||||||
|
return new clone_impl(*this,clone_tag());
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
rethrow() const
|
||||||
|
{
|
||||||
|
throw*this;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
#if defined(__GNUC__)
|
||||||
|
# if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
|
||||||
|
# pragma GCC visibility pop
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
inline
|
||||||
|
exception_detail::clone_impl<T>
|
||||||
|
enable_current_exception( T const & x )
|
||||||
|
{
|
||||||
|
return exception_detail::clone_impl<T>(x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
|
||||||
|
#pragma warning(pop)
|
||||||
|
#endif
|
||||||
|
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue