diff options
-rw-r--r-- | Eigen/src/Core/util/Macros.h | 2 | ||||
-rw-r--r-- | unsupported/Eigen/CXX11/Core | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h index d196123c6..dbfc9bd37 100644 --- a/Eigen/src/Core/util/Macros.h +++ b/Eigen/src/Core/util/Macros.h @@ -360,7 +360,7 @@ #endif // Does the compiler support variadic templates? -#if __cplusplus > 199711L +#if __cplusplus > 199711L || EIGEN_COMP_MSVC >= 1900 // Disable the use of variadic templates when compiling with nvcc on ARM devices: // this prevents nvcc from crashing when compiling Eigen on Tegra X1 #if !defined(__NVCC__) || !EIGEN_ARCH_ARM_OR_ARM64 diff --git a/unsupported/Eigen/CXX11/Core b/unsupported/Eigen/CXX11/Core index c8dcf7c16..e3e2cb60c 100644 --- a/unsupported/Eigen/CXX11/Core +++ b/unsupported/Eigen/CXX11/Core @@ -35,11 +35,13 @@ #include "src/Core/util/EmulateArray.h" // Emulate the cxx11 functionality that we need if the compiler doesn't support it. -#if __cplusplus <= 199711L -#include "src/Core/util/EmulateCXX11Meta.h" -#else +// Visual studio 2015 doesn't advertise itself as cxx11 compliant, although it +// supports enough of the standard for our needs +#if __cplusplus > 199711L || EIGEN_COMP_MSVC >= 1900 #include "src/Core/util/CXX11Workarounds.h" #include "src/Core/util/CXX11Meta.h" +#else +#include "src/Core/util/EmulateCXX11Meta.h" #endif #include <Eigen/src/Core/util/ReenableStupidWarnings.h> |