aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util/XprHelper.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2018-05-18 17:02:27 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2018-05-18 17:02:27 +0200
commita382bc9364b5d5a049678f8cc138670ca1c7a4fa (patch)
tree397d15f5ad34c61211e918767d908eab2404fcb8 /Eigen/src/Core/util/XprHelper.h
parent4dd767f455f1adfea7cb2febeab3efaa81246845 (diff)
is_convertible<T,Index> does not seems to work well with MSVC 2013, so let's rather use __is_enum(T) for old MSVC versions
Diffstat (limited to 'Eigen/src/Core/util/XprHelper.h')
-rw-r--r--Eigen/src/Core/util/XprHelper.h8
1 files changed, 5 insertions, 3 deletions
diff --git a/Eigen/src/Core/util/XprHelper.h b/Eigen/src/Core/util/XprHelper.h
index 1217404d6..9ffb0474b 100644
--- a/Eigen/src/Core/util/XprHelper.h
+++ b/Eigen/src/Core/util/XprHelper.h
@@ -39,10 +39,12 @@ template<typename T> struct is_valid_index_type
{
enum { value =
#if EIGEN_HAS_TYPE_TRAITS
- internal::is_integral<T>::value || std::is_enum<T>::value
+ internal::is_integral<T>::value || std::is_enum<T>::value
+#else if EIGEN_COMP_MSVC >= 1500
+ internal::is_integral<T>::value || __is_enum(T)
#else
- // without C++11, we use is_convertible to Index instead of is_integral in order to treat enums as Index.
- internal::is_convertible<T,Index>::value
+ // without C++11, we use is_convertible to Index instead of is_integral in order to treat enums as Index.
+ internal::is_convertible<T,Index>::value
#endif
};
};