From 05bbca079a1c21fe3289d625a99200621606a0f6 Mon Sep 17 00:00:00 2001 From: Benoit Steiner Date: Sat, 5 Mar 2016 10:52:08 -0800 Subject: [PATCH] Turn on some of the cxx11 features when compiling with visual studio 2015 --- Eigen/src/Core/util/Macros.h | 2 +- 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