diff options
Diffstat (limited to 'boost/hana/config.hpp')
-rw-r--r-- | boost/hana/config.hpp | 30 |
1 files changed, 27 insertions, 3 deletions
diff --git a/boost/hana/config.hpp b/boost/hana/config.hpp index 35e97a0a50..96c13de692 100644 --- a/boost/hana/config.hpp +++ b/boost/hana/config.hpp @@ -20,7 +20,29 @@ Distributed under the Boost Software License, Version 1.0. #if defined(_MSC_VER) && !defined(__clang__) // MSVC // This must be checked first, because otherwise it produces a fatal // error due to unrecognized #warning directives used below. -# pragma message("Warning: the native Microsoft compiler is not supported due to lack of proper C++14 support.") + +# if _MSC_VER < 1915 +# pragma message("Warning: the native Microsoft compiler is not supported due to lack of proper C++14 support.") +# else + // 1. Active issues + // Multiple copy/move ctors +# define BOOST_HANA_WORKAROUND_MSVC_MULTIPLECTOR_106654 + + // 2. Issues fixed in the development branch of MSVC + // Forward declaration of class template member function returning decltype(auto) +# define BOOST_HANA_WORKAROUND_MSVC_DECLTYPEAUTO_RETURNTYPE_662735 + + // 3. Issues fixed conditionally + // Requires __declspec(empty_bases) + // Empty base optimization +# define BOOST_HANA_WORKAROUND_MSVC_EMPTYBASE + + // Requires /experimental:preprocessor + // Variadic macro expansion +# if !defined(_MSVC_TRADITIONAL) || _MSVC_TRADITIONAL +# define BOOST_HANA_WORKAROUND_MSVC_PREPROCESSOR_616033 +# endif +# endif #elif defined(__clang__) && defined(_MSC_VER) // Clang-cl (Clang for Windows) @@ -40,7 +62,7 @@ Distributed under the Boost Software License, Version 1.0. # if __apple_build_version__ >= 6020049 # define BOOST_HANA_CONFIG_CLANG BOOST_HANA_CONFIG_VERSION(3, 6, 0) # else -# warning "Versions of Apple's Clang prior to the one shipped with Xcode 6.3 are not supported by Hana." +# warning "Versions of Apple's Clang prior to the one shipped with Xcode 6.3 are known not to be able to compile Hana." # endif #elif defined(__clang__) // genuine Clang @@ -72,7 +94,9 @@ Distributed under the Boost Software License, Version 1.0. ////////////////////////////////////////////////////////////////////////////// #if (__cplusplus < 201400) # if defined(_MSC_VER) -# pragma message("Warning: Your compiler doesn't provide C++14 or higher capabilities. Try adding the compiler flag '-std=c++14' or '-std=c++1y'.") +# if _MSC_VER < 1915 +# pragma message("Warning: Your compiler doesn't provide C++14 or higher capabilities. Try adding the compiler flag '-std=c++14' or '-std=c++1y'.") +# endif # else # warning "Your compiler doesn't provide C++14 or higher capabilities. Try adding the compiler flag '-std=c++14' or '-std=c++1y'." # endif |