summaryrefslogtreecommitdiff
path: root/boost/config/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'boost/config/compiler')
-rw-r--r--boost/config/compiler/borland.hpp1
-rw-r--r--boost/config/compiler/clang.hpp8
-rw-r--r--boost/config/compiler/diab.hpp9
-rw-r--r--boost/config/compiler/gcc.hpp7
-rw-r--r--boost/config/compiler/intel.hpp1
-rw-r--r--boost/config/compiler/visualc.hpp26
6 files changed, 42 insertions, 10 deletions
diff --git a/boost/config/compiler/borland.hpp b/boost/config/compiler/borland.hpp
index fa891def41..6190e390e6 100644
--- a/boost/config/compiler/borland.hpp
+++ b/boost/config/compiler/borland.hpp
@@ -174,6 +174,7 @@
#define BOOST_NO_CXX11_CONSTEXPR
#define BOOST_NO_CXX11_DECLTYPE_N3276
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
+#define BOOST_NO_CXX11_DEFAULTED_MOVES
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
diff --git a/boost/config/compiler/clang.hpp b/boost/config/compiler/clang.hpp
index 0fdf331f0e..da736bc4b4 100644
--- a/boost/config/compiler/clang.hpp
+++ b/boost/config/compiler/clang.hpp
@@ -98,11 +98,15 @@
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
-#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
+#if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__CYGWIN__)
+# 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
-# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
#endif
+#define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
//
// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
diff --git a/boost/config/compiler/diab.hpp b/boost/config/compiler/diab.hpp
index 0de72d06aa..943db83fd6 100644
--- a/boost/config/compiler/diab.hpp
+++ b/boost/config/compiler/diab.hpp
@@ -12,8 +12,15 @@
#include "boost/config/compiler/common_edg.hpp"
-#define BOOST_HAS_LONG_LONG
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+#define BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS
+
+#define BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
+#define BOOST_LOG_NO_MEMBER_TEMPLATE_FRIENDS
+#define BOOST_REGEX_NO_EXTERNAL_TEMPLATES
+
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
#define BOOST_NO_CXX11_HDR_CODECVT
+#define BOOST_NO_CXX11_NUMERIC_LIMITS
+
#define BOOST_COMPILER "Wind River Diab " BOOST_STRINGIZE(__VERSION_NUMBER__)
diff --git a/boost/config/compiler/gcc.hpp b/boost/config/compiler/gcc.hpp
index c67ab81861..4fe968a03c 100644
--- a/boost/config/compiler/gcc.hpp
+++ b/boost/config/compiler/gcc.hpp
@@ -99,10 +99,10 @@
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if __GNUC__ >= 4
-# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
+# 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.
+ // so does not define _WIN32 or its variants, but still supports dllexport/dllimport.
# define BOOST_HAS_DECLSPEC
# define BOOST_SYMBOL_EXPORT __attribute__((__dllexport__))
# define BOOST_SYMBOL_IMPORT __attribute__((__dllimport__))
@@ -233,6 +233,7 @@
//
#if (BOOST_GCC_VERSION < 40600) || !defined(BOOST_GCC_CXX11)
#define BOOST_NO_CXX11_CONSTEXPR
+#define BOOST_NO_CXX11_DEFAULTED_MOVES
#define BOOST_NO_CXX11_NOEXCEPT
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_NO_CXX11_RANGE_BASED_FOR
@@ -284,7 +285,7 @@
#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
# define BOOST_NO_CXX14_CONSTEXPR
#endif
-#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
+#if (BOOST_GCC_VERSION < 50200) || !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
#endif
diff --git a/boost/config/compiler/intel.hpp b/boost/config/compiler/intel.hpp
index 00396b03de..0eea05b916 100644
--- a/boost/config/compiler/intel.hpp
+++ b/boost/config/compiler/intel.hpp
@@ -45,6 +45,7 @@
#undef BOOST_GCC_VERSION
#undef BOOST_GCC_CXX11
+#undef BOOST_GCC
// Broken in all versions up to 17 (newer versions not tested)
#if (__INTEL_COMPILER <= 1700) && !defined(BOOST_NO_CXX14_CONSTEXPR)
diff --git a/boost/config/compiler/visualc.hpp b/boost/config/compiler/visualc.hpp
index d946561376..c533c50dfc 100644
--- a/boost/config/compiler/visualc.hpp
+++ b/boost/config/compiler/visualc.hpp
@@ -167,6 +167,7 @@
//
#if (_MSC_FULL_VER < 190023026)
# define BOOST_NO_CXX11_NOEXCEPT
+# define BOOST_NO_CXX11_DEFAULTED_MOVES
# define BOOST_NO_CXX11_REF_QUALIFIERS
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
# define BOOST_NO_CXX11_ALIGNAS
@@ -217,17 +218,29 @@
// https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, May 2010)
+// Still present in VC15.5, Dec 2017.
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
//
// C++ 11:
//
-#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+// This is supported with /permissive- for 15.5 onwards, unfortunately we appear to have no way to tell
+// if this is in effect or not, in any case nothing in Boost is currently using this, so we'll just go
+// on defining it for now:
+//
+# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
+
+#if (_MSC_VER < 1912) || (_MSVC_LANG < 201402)
+// Supported from msvc-15.5 onwards:
#define BOOST_NO_CXX11_SFINAE_EXPR
+#endif
// C++ 14:
+// Still gives internal compiler error for msvc-15.5:
# define BOOST_NO_CXX14_CONSTEXPR
// C++ 17:
+#if (_MSC_VER < 1912) || (_MSVC_LANG < 201703)
#define BOOST_NO_CXX17_INLINE_VARIABLES
#define BOOST_NO_CXX17_FOLD_EXPRESSIONS
+#endif
//
// Things that don't work in clr mode:
@@ -325,12 +338,17 @@
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
#endif
+#include <boost/config/pragma_message.hpp>
+
//
-// last known and checked version is 19.11.25547 (VC++ 2017.4):
-#if (_MSC_VER > 1911)
+// last known and checked version is 19.12.25830.2 (VC++ 2017.3):
+#if (_MSC_VER > 1912)
# if defined(BOOST_ASSERT_CONFIG)
# error "Boost.Config is older than your current compiler version."
# elif !defined(BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE)
-# pragma message("Info: Boost.Config is older than your compiler version - probably nothing bad will happen - but you may wish to look for an update Boost version. Define BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE to suppress this message.")
+ //
+ // Disabled as of March 2018 - the pace of VS releases is hard to keep up with
+ // and in any case, we have relatively few defect macros defined now.
+ // BOOST_PRAGMA_MESSAGE("Info: Boost.Config is older than your compiler version - probably nothing bad will happen - but you may wish to look for an updated Boost version. Define BOOST_CONFIG_SUPPRESS_OUTDATED_MESSAGE to suppress this message.")
# endif
#endif