| @@ -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,20 @@ | ||
| // (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000. | ||
| // 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/utility for most recent version including documentation. | ||
|
|
||
| // See boost/detail/call_traits.hpp | ||
| // for full copyright notices. | ||
|
|
||
| #ifndef BOOST_CALL_TRAITS_HPP | ||
| #define BOOST_CALL_TRAITS_HPP | ||
|
|
||
| #ifndef BOOST_CONFIG_HPP | ||
| #include <boost/config.hpp> | ||
| #endif | ||
|
|
||
| #include <boost/detail/call_traits.hpp> | ||
|
|
||
| #endif // BOOST_CALL_TRAITS_HPP |
| @@ -0,0 +1,17 @@ | ||
| /* | ||
| * Copyright (c) 2014 Glen Fernandes | ||
| * | ||
| * 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_CHECKED_DELETE_HPP | ||
| #define BOOST_CHECKED_DELETE_HPP | ||
|
|
||
| // The header file at this path is deprecated; | ||
| // use boost/core/checked_delete.hpp instead. | ||
|
|
||
| #include <boost/core/checked_delete.hpp> | ||
|
|
||
| #endif |
| @@ -0,0 +1,45 @@ | ||
| // Copyright David Abrahams 2006. 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_CONCEPT_ASSERT_DWA2006430_HPP | ||
| # define BOOST_CONCEPT_ASSERT_DWA2006430_HPP | ||
|
|
||
| # include <boost/config.hpp> | ||
| # include <boost/detail/workaround.hpp> | ||
|
|
||
| // The old protocol used a constraints() member function in concept | ||
| // checking classes. If the compiler supports SFINAE, we can detect | ||
| // that function and seamlessly support the old concept checking | ||
| // classes. In this release, backward compatibility with the old | ||
| // concept checking classes is enabled by default, where available. | ||
| // The old protocol is deprecated, though, and backward compatibility | ||
| // will no longer be the default in the next release. | ||
|
|
||
| # if !defined(BOOST_NO_OLD_CONCEPT_SUPPORT) \ | ||
| && !defined(BOOST_NO_SFINAE) \ | ||
| \ | ||
| && !(BOOST_WORKAROUND(__GNUC__, == 3) && BOOST_WORKAROUND(__GNUC_MINOR__, < 4)) | ||
|
|
||
| // Note: gcc-2.96 through 3.3.x have some SFINAE, but no ability to | ||
| // check for the presence of particularmember functions. | ||
|
|
||
| # define BOOST_OLD_CONCEPT_SUPPORT | ||
|
|
||
| # endif | ||
|
|
||
| # ifdef BOOST_MSVC | ||
| # include <boost/concept/detail/msvc.hpp> | ||
| # elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) | ||
| # include <boost/concept/detail/borland.hpp> | ||
| # else | ||
| # include <boost/concept/detail/general.hpp> | ||
| # endif | ||
|
|
||
| // Usage, in class or function context: | ||
| // | ||
| // BOOST_CONCEPT_ASSERT((UnaryFunctionConcept<F,bool,int>)); | ||
| // | ||
| # define BOOST_CONCEPT_ASSERT(ModelInParens) \ | ||
| BOOST_CONCEPT_ASSERT_FN(void(*)ModelInParens) | ||
|
|
||
| #endif // BOOST_CONCEPT_ASSERT_DWA2006430_HPP |
| @@ -0,0 +1,16 @@ | ||
| // Copyright David Abrahams 2009. 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_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP | ||
| # define BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP | ||
|
|
||
| namespace boost | ||
| { | ||
| namespace concepts {} | ||
|
|
||
| # if defined(BOOST_HAS_CONCEPTS) && !defined(BOOST_CONCEPT_NO_BACKWARD_KEYWORD) | ||
| namespace concept = concepts; | ||
| # endif | ||
| } // namespace boost::concept | ||
|
|
||
| #endif // BOOST_CONCEPT_BACKWARD_COMPATIBILITY_DWA200968_HPP |
| @@ -0,0 +1,30 @@ | ||
| // Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP | ||
| # define BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP | ||
|
|
||
| # include <boost/preprocessor/cat.hpp> | ||
| # include <boost/concept/detail/backward_compatibility.hpp> | ||
|
|
||
| namespace boost { namespace concepts { | ||
|
|
||
| template <class ModelFnPtr> | ||
| struct require; | ||
|
|
||
| template <class Model> | ||
| struct require<void(*)(Model)> | ||
| { | ||
| enum { instantiate = sizeof((((Model*)0)->~Model()), 3) }; | ||
| }; | ||
|
|
||
| # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ | ||
| enum \ | ||
| { \ | ||
| BOOST_PP_CAT(boost_concept_check,__LINE__) = \ | ||
| boost::concepts::require<ModelFnPtr>::instantiate \ | ||
| } | ||
|
|
||
| }} // namespace boost::concept | ||
|
|
||
| #endif // BOOST_CONCEPT_DETAIL_BORLAND_DWA2006429_HPP |
| @@ -0,0 +1,34 @@ | ||
| // Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP | ||
| # define BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP | ||
| # include <boost/preprocessor/seq/for_each_i.hpp> | ||
| # include <boost/preprocessor/seq/enum.hpp> | ||
| # include <boost/preprocessor/comma_if.hpp> | ||
| # include <boost/preprocessor/cat.hpp> | ||
| #endif // BOOST_CONCEPT_DETAIL_CONCEPT_DEF_DWA200651_HPP | ||
|
|
||
| // BOOST_concept(SomeName, (p1)(p2)...(pN)) | ||
| // | ||
| // Expands to "template <class p1, class p2, ...class pN> struct SomeName" | ||
| // | ||
| // Also defines an equivalent SomeNameConcept for backward compatibility. | ||
| // Maybe in the next release we can kill off the "Concept" suffix for good. | ||
| # define BOOST_concept(name, params) \ | ||
| template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ | ||
| struct name; /* forward declaration */ \ | ||
| \ | ||
| template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ | ||
| struct BOOST_PP_CAT(name,Concept) \ | ||
| : name< BOOST_PP_SEQ_ENUM(params) > \ | ||
| { \ | ||
| }; \ | ||
| \ | ||
| template < BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_typename,~,params) > \ | ||
| struct name | ||
|
|
||
| // Helper for BOOST_concept, above. | ||
| # define BOOST_CONCEPT_typename(r, ignored, index, t) \ | ||
| BOOST_PP_COMMA_IF(index) typename t | ||
|
|
| @@ -0,0 +1,5 @@ | ||
| // Copyright David Abrahams 2006. 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) | ||
| # undef BOOST_concept_typename | ||
| # undef BOOST_concept |
| @@ -0,0 +1,77 @@ | ||
| // Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP | ||
| # define BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP | ||
|
|
||
| # include <boost/config.hpp> | ||
| # include <boost/preprocessor/cat.hpp> | ||
| # include <boost/concept/detail/backward_compatibility.hpp> | ||
|
|
||
| # ifdef BOOST_OLD_CONCEPT_SUPPORT | ||
| # include <boost/concept/detail/has_constraints.hpp> | ||
| # include <boost/mpl/if.hpp> | ||
| # endif | ||
|
|
||
| // This implementation works on Comeau and GCC, all the way back to | ||
| // 2.95 | ||
| namespace boost { namespace concepts { | ||
|
|
||
| template <class ModelFn> | ||
| struct requirement_; | ||
|
|
||
| namespace detail | ||
| { | ||
| template <void(*)()> struct instantiate {}; | ||
| } | ||
|
|
||
| template <class Model> | ||
| struct requirement | ||
| { | ||
| static void failed() { ((Model*)0)->~Model(); } | ||
| }; | ||
|
|
||
| struct failed {}; | ||
|
|
||
| template <class Model> | ||
| struct requirement<failed ************ Model::************> | ||
| { | ||
| static void failed() { ((Model*)0)->~Model(); } | ||
| }; | ||
|
|
||
| # ifdef BOOST_OLD_CONCEPT_SUPPORT | ||
|
|
||
| template <class Model> | ||
| struct constraint | ||
| { | ||
| static void failed() { ((Model*)0)->constraints(); } | ||
| }; | ||
|
|
||
| template <class Model> | ||
| struct requirement_<void(*)(Model)> | ||
| : mpl::if_< | ||
| concepts::not_satisfied<Model> | ||
| , constraint<Model> | ||
| , requirement<failed ************ Model::************> | ||
| >::type | ||
| {}; | ||
|
|
||
| # else | ||
|
|
||
| // For GCC-2.x, these can't have exactly the same name | ||
| template <class Model> | ||
| struct requirement_<void(*)(Model)> | ||
| : requirement<failed ************ Model::************> | ||
| {}; | ||
|
|
||
| # endif | ||
|
|
||
| # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ | ||
| typedef ::boost::concepts::detail::instantiate< \ | ||
| &::boost::concepts::requirement_<ModelFnPtr>::failed> \ | ||
| BOOST_PP_CAT(boost_concept_check,__LINE__) \ | ||
| BOOST_ATTRIBUTE_UNUSED | ||
|
|
||
| }} | ||
|
|
||
| #endif // BOOST_CONCEPT_DETAIL_GENERAL_DWA2006429_HPP |
| @@ -0,0 +1,50 @@ | ||
| // Copyright David Abrahams 2006. 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_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP | ||
| # define BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP | ||
|
|
||
| # include <boost/mpl/bool.hpp> | ||
| # include <boost/detail/workaround.hpp> | ||
| # include <boost/concept/detail/backward_compatibility.hpp> | ||
|
|
||
| namespace boost { namespace concepts { | ||
|
|
||
| namespace detail | ||
| { | ||
|
|
||
| // Here we implement the metafunction that detects whether a | ||
| // constraints metafunction exists | ||
| typedef char yes; | ||
| typedef char (&no)[2]; | ||
|
|
||
| template <class Model, void (Model::*)()> | ||
| struct wrap_constraints {}; | ||
|
|
||
| #if BOOST_WORKAROUND(__SUNPRO_CC, <= 0x580) || defined(__CUDACC__) | ||
| // Work around the following bogus error in Sun Studio 11, by | ||
| // turning off the has_constraints function entirely: | ||
| // Error: complex expression not allowed in dependent template | ||
| // argument expression | ||
| inline no has_constraints_(...); | ||
| #else | ||
| template <class Model> | ||
| inline yes has_constraints_(Model*, wrap_constraints<Model,&Model::constraints>* = 0); | ||
| inline no has_constraints_(...); | ||
| #endif | ||
| } | ||
|
|
||
| // This would be called "detail::has_constraints," but it has a strong | ||
| // tendency to show up in error messages. | ||
| template <class Model> | ||
| struct not_satisfied | ||
| { | ||
| BOOST_STATIC_CONSTANT( | ||
| bool | ||
| , value = sizeof( detail::has_constraints_((Model*)0) ) == sizeof(detail::yes) ); | ||
| typedef mpl::bool_<value> type; | ||
| }; | ||
|
|
||
| }} // namespace boost::concepts::detail | ||
|
|
||
| #endif // BOOST_CONCEPT_DETAIL_HAS_CONSTRAINTS_DWA2006429_HPP |
| @@ -0,0 +1,123 @@ | ||
| // Copyright David Abrahams 2006. 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_CONCEPT_CHECK_MSVC_DWA2006429_HPP | ||
| # define BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP | ||
|
|
||
| # include <boost/preprocessor/cat.hpp> | ||
| # include <boost/concept/detail/backward_compatibility.hpp> | ||
| # include <boost/config.hpp> | ||
|
|
||
| # ifdef BOOST_OLD_CONCEPT_SUPPORT | ||
| # include <boost/concept/detail/has_constraints.hpp> | ||
| # include <boost/mpl/if.hpp> | ||
| # endif | ||
|
|
||
| # ifdef BOOST_MSVC | ||
| # pragma warning(push) | ||
| # pragma warning(disable:4100) | ||
| # endif | ||
|
|
||
| namespace boost { namespace concepts { | ||
|
|
||
|
|
||
| template <class Model> | ||
| struct check | ||
| { | ||
| virtual void failed(Model* x) | ||
| { | ||
| x->~Model(); | ||
| } | ||
| }; | ||
|
|
||
| # ifndef BOOST_NO_PARTIAL_SPECIALIZATION | ||
| struct failed {}; | ||
| template <class Model> | ||
| struct check<failed ************ Model::************> | ||
| { | ||
| virtual void failed(Model* x) | ||
| { | ||
| x->~Model(); | ||
| } | ||
| }; | ||
| # endif | ||
|
|
||
| # ifdef BOOST_OLD_CONCEPT_SUPPORT | ||
|
|
||
| namespace detail | ||
| { | ||
| // No need for a virtual function here, since evaluating | ||
| // not_satisfied below will have already instantiated the | ||
| // constraints() member. | ||
| struct constraint {}; | ||
| } | ||
|
|
||
| template <class Model> | ||
| struct require | ||
| : mpl::if_c< | ||
| not_satisfied<Model>::value | ||
| , detail::constraint | ||
| # ifndef BOOST_NO_PARTIAL_SPECIALIZATION | ||
| , check<Model> | ||
| # else | ||
| , check<failed ************ Model::************> | ||
| # endif | ||
| >::type | ||
| {}; | ||
|
|
||
| # else | ||
|
|
||
| template <class Model> | ||
| struct require | ||
| # ifndef BOOST_NO_PARTIAL_SPECIALIZATION | ||
| : check<Model> | ||
| # else | ||
| : check<failed ************ Model::************> | ||
| # endif | ||
| {}; | ||
|
|
||
| # endif | ||
|
|
||
| # if BOOST_WORKAROUND(BOOST_MSVC, == 1310) | ||
|
|
||
| // | ||
| // The iterator library sees some really strange errors unless we | ||
| // do things this way. | ||
| // | ||
| template <class Model> | ||
| struct require<void(*)(Model)> | ||
| { | ||
| virtual void failed(Model*) | ||
| { | ||
| require<Model>(); | ||
| } | ||
| }; | ||
|
|
||
| # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ | ||
| enum \ | ||
| { \ | ||
| BOOST_PP_CAT(boost_concept_check,__LINE__) = \ | ||
| sizeof(::boost::concepts::require<ModelFnPtr>) \ | ||
| } | ||
|
|
||
| # else // Not vc-7.1 | ||
|
|
||
| template <class Model> | ||
| require<Model> | ||
| require_(void(*)(Model)); | ||
|
|
||
| # define BOOST_CONCEPT_ASSERT_FN( ModelFnPtr ) \ | ||
| enum \ | ||
| { \ | ||
| BOOST_PP_CAT(boost_concept_check,__LINE__) = \ | ||
| sizeof(::boost::concepts::require_((ModelFnPtr)0)) \ | ||
| } | ||
|
|
||
| # endif | ||
| }} | ||
|
|
||
| # ifdef BOOST_MSVC | ||
| # pragma warning(pop) | ||
| # endif | ||
|
|
||
| #endif // BOOST_CONCEPT_CHECK_MSVC_DWA2006429_HPP |
| @@ -0,0 +1,36 @@ | ||
| // Copyright David Abrahams 2006. 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_CONCEPT_USAGE_DWA2006919_HPP | ||
| # define BOOST_CONCEPT_USAGE_DWA2006919_HPP | ||
|
|
||
| # include <boost/concept/assert.hpp> | ||
| # include <boost/detail/workaround.hpp> | ||
| # include <boost/concept/detail/backward_compatibility.hpp> | ||
|
|
||
| namespace boost { namespace concepts { | ||
|
|
||
| template <class Model> | ||
| struct usage_requirements | ||
| { | ||
| ~usage_requirements() { ((Model*)0)->~Model(); } | ||
| }; | ||
|
|
||
| # if BOOST_WORKAROUND(__GNUC__, <= 3) | ||
|
|
||
| # define BOOST_CONCEPT_USAGE(model) \ | ||
| model(); /* at least 2.96 and 3.4.3 both need this :( */ \ | ||
| BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \ | ||
| ~model() | ||
|
|
||
| # else | ||
|
|
||
| # define BOOST_CONCEPT_USAGE(model) \ | ||
| BOOST_CONCEPT_ASSERT((boost::concepts::usage_requirements<model>)); \ | ||
| ~model() | ||
|
|
||
| # endif | ||
|
|
||
| }} // namespace boost::concepts | ||
|
|
||
| #endif // BOOST_CONCEPT_USAGE_DWA2006919_HPP |
| @@ -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/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/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/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/suffix.hpp> | ||
|
|
||
| #ifdef BOOST_HAS_PRAGMA_ONCE | ||
| #pragma once | ||
| #endif | ||
|
|
||
| #endif // BOOST_CONFIG_HPP |
| @@ -0,0 +1,27 @@ | ||
| // (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) | ||
|
|
||
| // for C++ Builder the following options effect the ABI: | ||
| // | ||
| // -b (on or off - effect emum sizes) | ||
| // -Vx (on or off - empty members) | ||
| // -Ve (on or off - empty base classes) | ||
| // -aX (alignment - 5 options). | ||
| // -pX (Calling convention - 4 options) | ||
| // -VmX (member pointer size and layout - 5 options) | ||
| // -VC (on or off, changes name mangling) | ||
| // -Vl (on or off, changes struct layout). | ||
|
|
||
| // In addition the following warnings are sufficiently annoying (and | ||
| // unfixable) to have them turned off by default: | ||
| // | ||
| // 8027 - functions containing [for|while] loops are not expanded inline | ||
| // 8026 - functions taking class by value arguments are not expanded inline | ||
|
|
||
| #pragma nopushoptwarn | ||
| # pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026 | ||
|
|
||
|
|
||
|
|
| @@ -0,0 +1,12 @@ | ||
| // (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) | ||
|
|
||
| # pragma option pop | ||
| #pragma nopushoptwarn | ||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
| @@ -0,0 +1,22 @@ | ||
| // (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) | ||
|
|
||
| // | ||
| // Boost binaries are built with the compiler's default ABI settings, | ||
| // if the user changes their default alignment in the VS IDE then their | ||
| // code will no longer be binary compatible with the bjam built binaries | ||
| // unless this header is included to force Boost code into a consistent ABI. | ||
| // | ||
| // Note that inclusion of this header is only necessary for libraries with | ||
| // separate source, header only libraries DO NOT need this as long as all | ||
| // translation units are built with the same options. | ||
| // | ||
| #if defined(_M_X64) | ||
| # pragma pack(push,16) | ||
| #else | ||
| # pragma pack(push,8) | ||
| #endif | ||
|
|
||
|
|
| @@ -0,0 +1,8 @@ | ||
| // (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) | ||
|
|
||
| #pragma pack(pop) | ||
|
|
||
|
|
| @@ -0,0 +1,25 @@ | ||
| // abi_prefix header -------------------------------------------------------// | ||
|
|
||
| // (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). | ||
|
|
||
| #ifndef BOOST_CONFIG_ABI_PREFIX_HPP | ||
| # define BOOST_CONFIG_ABI_PREFIX_HPP | ||
| #else | ||
| # error double inclusion of header boost/config/abi_prefix.hpp is an error | ||
| #endif | ||
|
|
||
| #include <boost/config.hpp> | ||
|
|
||
| // this must occur after all other includes and before any code appears: | ||
| #ifdef BOOST_HAS_ABI_HEADERS | ||
| # include BOOST_ABI_PREFIX | ||
| #endif | ||
|
|
||
| #if defined( __BORLANDC__ ) | ||
| #pragma nopushoptwarn | ||
| #endif | ||
|
|
| @@ -0,0 +1,27 @@ | ||
| // abi_sufffix header -------------------------------------------------------// | ||
|
|
||
| // (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). | ||
|
|
||
| // This header should be #included AFTER code that was preceded by a #include | ||
| // <boost/config/abi_prefix.hpp>. | ||
|
|
||
| #ifndef BOOST_CONFIG_ABI_PREFIX_HPP | ||
| # error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp | ||
| #else | ||
| # undef BOOST_CONFIG_ABI_PREFIX_HPP | ||
| #endif | ||
|
|
||
| // the suffix header occurs after all of our code: | ||
| #ifdef BOOST_HAS_ABI_HEADERS | ||
| # include BOOST_ABI_SUFFIX | ||
| #endif | ||
|
|
||
| #if defined( __BORLANDC__ ) | ||
| #pragma nopushoptwarn | ||
| #endif | ||
|
|
||
|
|
| @@ -0,0 +1,320 @@ | ||
| // (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 | ||
|
|
||
| #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,308 @@ | ||
| // (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 | ||
|
|
||
| #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 __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 | ||
|
|
||
| // 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,222 @@ | ||
| // (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 | ||
|
|
||
| // | ||
| // 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,145 @@ | ||
| // (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 | ||
|
|
||
| #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,126 @@ | ||
| // 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 | ||
|
|
||
| #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,329 @@ | ||
| // (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 | ||
|
|
||
| // | ||
| // 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,97 @@ | ||
| // (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 | ||
|
|
||
| #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 |