Merge config changes from Trunk.

[SVN r76122]
This commit is contained in:
John Maddock
2011-12-23 17:17:31 +00:00
parent 7bd78dda03
commit 3b7ff73e9d
27 changed files with 471 additions and 154 deletions
+6 -1
View File
@@ -145,11 +145,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// vc90:
# define BOOST_LIB_TOOLSET "vc90"
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600)
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1600)
// vc10:
# define BOOST_LIB_TOOLSET "vc100"
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1700)
// vc11:
# define BOOST_LIB_TOOLSET "vc110"
#elif defined(__BORLANDC__)
// CBuilder 6:
+53 -18
View File
@@ -25,35 +25,65 @@
// Clang supports "long long" in all compilation modes.
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONSTEXPR
#if !__has_feature(cxx_auto_type)
# define BOOST_NO_AUTO_DECLARATIONS
# define BOOST_NO_AUTO_MULTIDECLARATIONS
#endif
#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
#endif
#if !__has_feature(cxx_constexpr)
# define BOOST_NO_CONSTEXPR
#endif
#if !__has_feature(cxx_decltype)
# define BOOST_NO_DECLTYPE
#endif
#define BOOST_NO_DECLTYPE_N3276
#define BOOST_NO_DEFAULTED_FUNCTIONS
#if !__has_feature(cxx_defaulted_functions)
# define BOOST_NO_DEFAULTED_FUNCTIONS
#endif
#if !__has_feature(cxx_deleted_functions)
# define BOOST_NO_DELETED_FUNCTIONS
#endif
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#if !__has_feature(cxx_default_function_template_args)
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#if !__has_feature(cxx_explicit_conversions)
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#endif
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NOEXCEPT
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#if !__has_feature(cxx_default_function_template_args)
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#endif
#if !__has_feature(cxx_generalized_initializers)
# define BOOST_NO_INITIALIZER_LISTS
#endif
#if !__has_feature(cxx_lambdas)
# define BOOST_NO_LAMBDAS
#endif
#if !__has_feature(cxx_noexcept)
# define BOOST_NO_NOEXCEPT
#endif
#if !__has_feature(cxx_nullptr)
# define BOOST_NO_NULLPTR
#endif
#if !__has_feature(cxx_raw_string_literals)
# define BOOST_NO_RAW_LITERALS
#endif
#if !__has_feature(cxx_generalized_initializers)
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
#endif
#if !__has_feature(cxx_rvalue_references)
# define BOOST_NO_RVALUE_REFERENCES
@@ -67,8 +97,13 @@
# define BOOST_NO_STATIC_ASSERT
#endif
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#if !__has_feature(cxx_alias_templates)
# define BOOST_NO_TEMPLATE_ALIASES
#endif
#if !__has_feature(cxx_unicode_literals)
# define BOOST_NO_UNICODE_LITERALS
#endif
#if !__has_feature(cxx_variadic_templates)
# define BOOST_NO_VARIADIC_TEMPLATES
+15
View File
@@ -221,6 +221,21 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# undef BOOST_NO_AUTO_MULTIDECLARATIONS
#endif
// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
# undef BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
# undef BOOST_NO_NULLPTR
# undef BOOST_NO_RVALUE_REFERENCES
# undef BOOST_NO_SFINAE_EXPR
# undef BOOST_NO_TEMPLATE_ALIASES
# undef BOOST_NO_VARIADIC_TEMPLATES
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
// continues to list scoped enum support as "Partial"
//# undef BOOST_NO_SCOPED_ENUMS
#endif
#if (BOOST_INTEL_CXX_VERSION < 1200)
//
// fenv.h appears not to work with Intel prior to 12.0:
+6 -2
View File
@@ -236,6 +236,8 @@
# define BOOST_COMPILER_VERSION evc9
# elif _MSC_VER == 1600
# define BOOST_COMPILER_VERSION evc10
# elif _MSC_VER == 1700
# define BOOST_COMPILER_VERSION evc11
# else
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
@@ -259,6 +261,8 @@
# define BOOST_COMPILER_VERSION 9.0
# elif _MSC_VER == 1600
# define BOOST_COMPILER_VERSION 10.0
# elif _MSC_VER == 1700
# define BOOST_COMPILER_VERSION 11.0
# else
# define BOOST_COMPILER_VERSION _MSC_VER
# endif
@@ -273,8 +277,8 @@
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 1600 (VC10, aka 2010):
#if (_MSC_VER > 1600)
// last known and checked version is 1700 (VC11, aka 2011):
#if (_MSC_VER > 1700)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
+26
View File
@@ -635,6 +635,20 @@ namespace std{ using ::type_info; }
#define BOOST_DO_JOIN( X, Y ) BOOST_DO_JOIN2(X,Y)
#define BOOST_DO_JOIN2( X, Y ) X##Y
//
// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
// These aid the transition to C++11 while still supporting C++03 compilers
//
#ifdef BOOST_NO_NOEXCEPT
# define BOOST_NOEXCEPT
# define BOOST_NOEXCEPT_IF(Predicate)
# define BOOST_NOEXCEPT_EXPR(Expression) false
#else
# define BOOST_NOEXCEPT noexcept
# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
#endif
//
// Set some default values for compiler/library/platform names.
// These are for debugging config setup only:
@@ -674,5 +688,17 @@ namespace std{ using ::type_info; }
#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
// BOOST_FORCEINLINE ---------------------------------------------//
// Macro to use in place of 'inline' to force a function to be inline
#if !defined(BOOST_FORCEINLINE)
# if defined(_MSC_VER)
# define BOOST_FORCEINLINE __forceinline
# elif defined(__GNUC__) && __GNUC__ > 3
# define BOOST_FORCEINLINE inline __attribute__ ((always_inline))
# else
# define BOOST_FORCEINLINE inline
# endif
#endif
#endif