From 3789b4f9fd4c126c919f933ba0b8605683da4ac2 Mon Sep 17 00:00:00 2001 From: Henry Schreiner Date: Wed, 29 Aug 2018 00:07:35 +0200 Subject: [PATCH] Update C++ macros for C++17 and MSVC Z mode (#1347) --- include/pybind11/detail/common.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/include/pybind11/detail/common.h b/include/pybind11/detail/common.h index 3c6722891..c150cce84 100644 --- a/include/pybind11/detail/common.h +++ b/include/pybind11/detail/common.h @@ -27,15 +27,16 @@ # endif #endif -#if !defined(_MSC_VER) && !defined(__INTEL_COMPILER) +#if !(defined(_MSC_VER) && __cplusplus == 199711L) && !defined(__INTEL_COMPILER) # if __cplusplus >= 201402L # define PYBIND11_CPP14 -# if __cplusplus > 201402L /* Temporary: should be updated to >= the final C++17 value once known */ +# if __cplusplus >= 201703L # define PYBIND11_CPP17 # endif # endif -#elif defined(_MSC_VER) +#elif defined(_MSC_VER) && __cplusplus == 199711L // MSVC sets _MSVC_LANG rather than __cplusplus (supposedly until the standard is fully implemented) +// Unless you use the /Zc:__cplusplus flag on Visual Studio 2017 15.7 Preview 3 or newer # if _MSVC_LANG >= 201402L # define PYBIND11_CPP14 # if _MSVC_LANG > 201402L && _MSC_VER >= 1910