summaryrefslogtreecommitdiff
path: root/boost/config/stdlib/dinkumware.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/config/stdlib/dinkumware.hpp')
-rw-r--r--boost/config/stdlib/dinkumware.hpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/boost/config/stdlib/dinkumware.hpp b/boost/config/stdlib/dinkumware.hpp
index 3b95dcf3b5..daac5dfb43 100644
--- a/boost/config/stdlib/dinkumware.hpp
+++ b/boost/config/stdlib/dinkumware.hpp
@@ -147,6 +147,13 @@
# define BOOST_NO_CXX11_STD_ALIGN
#endif
+// Before 650 std::pointer_traits has a broken rebind template
+#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 650
+# define BOOST_NO_CXX11_POINTER_TRAITS
+#elif defined(BOOST_MSVC) && BOOST_MSVC < 1910
+# define BOOST_NO_CXX11_POINTER_TRAITS
+#endif
+
#if defined(__has_include)
#if !__has_include(<shared_mutex>)
# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
@@ -163,7 +170,9 @@
#endif
// C++17 features
+#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1910) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)
# define BOOST_NO_CXX17_STD_APPLY
+#endif
#if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650)
# define BOOST_NO_CXX17_STD_INVOKE
#endif
@@ -188,11 +197,14 @@
#endif
#if defined(_CPPLIB_VER) && (_CPPLIB_VER >= 650)
-// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr is not available.
+// If _HAS_AUTO_PTR_ETC is defined to 0, std::auto_ptr and std::random_shuffle are not available.
// See https://www.visualstudio.com/en-us/news/vs2015-vs.aspx#C++
// and http://blogs.msdn.com/b/vcblog/archive/2015/06/19/c-11-14-17-features-in-vs-2015-rtm.aspx
# if defined(_HAS_AUTO_PTR_ETC) && (_HAS_AUTO_PTR_ETC == 0)
# define BOOST_NO_AUTO_PTR
+# define BOOST_NO_CXX98_RANDOM_SHUFFLE
+# define BOOST_NO_CXX98_FUNCTION_BASE
+# define BOOST_NO_CXX98_BINDERS
# endif
#endif