diff --git a/Eigen/src/Core/DenseBase.h b/Eigen/src/Core/DenseBase.h index 322daad8f..c30d1bed9 100644 --- a/Eigen/src/Core/DenseBase.h +++ b/Eigen/src/Core/DenseBase.h @@ -429,7 +429,7 @@ template class DenseBase template EIGEN_DEVICE_FUNC - typename internal::result_of::Scalar)>::type + typename internal::result_of::Scalar,typename internal::traits::Scalar)>::type redux(const BinaryOp& func) const; template diff --git a/Eigen/src/Core/Redux.h b/Eigen/src/Core/Redux.h index 1a0a00481..f704fd07b 100644 --- a/Eigen/src/Core/Redux.h +++ b/Eigen/src/Core/Redux.h @@ -406,7 +406,7 @@ protected: */ template template -EIGEN_STRONG_INLINE typename internal::result_of::Scalar)>::type +EIGEN_STRONG_INLINE typename internal::result_of::Scalar,typename internal::traits::Scalar)>::type DenseBase::redux(const Func& func) const { eigen_assert(this->rows()>0 && this->cols()>0 && "you are using an empty matrix"); diff --git a/Eigen/src/Core/VectorwiseOp.h b/Eigen/src/Core/VectorwiseOp.h index b3dc0c224..a15777a5e 100644 --- a/Eigen/src/Core/VectorwiseOp.h +++ b/Eigen/src/Core/VectorwiseOp.h @@ -124,7 +124,7 @@ EIGEN_MEMBER_FUNCTOR(prod, (Size-1)*NumTraits::MulCost); template struct member_redux { typedef typename result_of< - BinaryOp(Scalar) + BinaryOp(Scalar,Scalar) >::type result_type; template struct Cost { enum { value = (Size-1) * functor_traits::Cost }; }; diff --git a/Eigen/src/Geometry/Homogeneous.h b/Eigen/src/Geometry/Homogeneous.h index f16451656..756ecf9dc 100644 --- a/Eigen/src/Geometry/Homogeneous.h +++ b/Eigen/src/Geometry/Homogeneous.h @@ -102,7 +102,7 @@ template class Homogeneous } template - EIGEN_STRONG_INLINE typename internal::result_of::type + EIGEN_STRONG_INLINE typename internal::result_of::type redux(const Func& func) const { return func(m_matrix.redux(func), Scalar(1)); diff --git a/test/array.cpp b/test/array.cpp index ac9be097d..ad0182e10 100644 --- a/test/array.cpp +++ b/test/array.cpp @@ -331,7 +331,7 @@ void test_array() VERIFY((internal::is_same< internal::global_math_functions_filtering_base::type, int >::value)); VERIFY((internal::is_same< internal::global_math_functions_filtering_base::type, float >::value)); VERIFY((internal::is_same< internal::global_math_functions_filtering_base::type, ArrayBase >::value)); - typedef CwiseUnaryOp, ArrayXd > Xpr; + typedef CwiseUnaryOp, ArrayXd > Xpr; VERIFY((internal::is_same< internal::global_math_functions_filtering_base::type, ArrayBase >::value));