From e376809717dc6e08eb572343f858b549e0623425 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 9 Dec 2017 12:44:38 +0000 Subject: [PATCH] Config.msvc-15.5: enable some initial C++17 features. --- include/boost/config/compiler/visualc.hpp | 4 ++++ include/boost/config/stdlib/dinkumware.hpp | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/include/boost/config/compiler/visualc.hpp b/include/boost/config/compiler/visualc.hpp index 49bb1a48..40adff94 100644 --- a/include/boost/config/compiler/visualc.hpp +++ b/include/boost/config/compiler/visualc.hpp @@ -223,12 +223,16 @@ // #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 +#endif #define BOOST_NO_CXX17_FOLD_EXPRESSIONS // diff --git a/include/boost/config/stdlib/dinkumware.hpp b/include/boost/config/stdlib/dinkumware.hpp index 0fd97a41..641c2ae2 100644 --- a/include/boost/config/stdlib/dinkumware.hpp +++ b/include/boost/config/stdlib/dinkumware.hpp @@ -173,10 +173,15 @@ // 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 +# define BOOST_NO_CXX17_ITERATOR_TRAITS #endif #if !defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) # define BOOST_NO_CXX17_STD_INVOKE -# define BOOST_NO_CXX17_ITERATOR_TRAITS +#endif + +#if !(!defined(_CPPLIB_VER) || (_CPPLIB_VER < 650) || !defined(BOOST_MSVC) || (BOOST_MSVC < 1912) || !defined(_HAS_CXX17) || (_HAS_CXX17 == 0)) +// Deprecated std::iterator: +# define BOOST_NO_STD_ITERATOR #endif #if defined(BOOST_INTEL) && (BOOST_INTEL <= 1400)