From b20a55a60883a8cb61a088b006fe59a1c61023da Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Fri, 4 Sep 2015 15:25:58 +0200 Subject: [PATCH] Workaround wrong instanciation made by VS2010 --- Eigen/src/SparseCore/SparseCwiseBinaryOp.h | 27 ++++++++++------------ 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/Eigen/src/SparseCore/SparseCwiseBinaryOp.h b/Eigen/src/SparseCore/SparseCwiseBinaryOp.h index 1137424da..973b80095 100644 --- a/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +++ b/Eigen/src/SparseCore/SparseCwiseBinaryOp.h @@ -67,15 +67,14 @@ struct binary_evaluator, IteratorBased, Iterat protected: typedef typename evaluator::InnerIterator LhsIterator; typedef typename evaluator::InnerIterator RhsIterator; -public: typedef CwiseBinaryOp XprType; + typedef typename traits::Scalar Scalar; + typedef typename XprType::StorageIndex StorageIndex; +public: class ReverseInnerIterator; class InnerIterator { - typedef typename traits::Scalar Scalar; - typedef typename XprType::StorageIndex StorageIndex; - public: EIGEN_STRONG_INLINE InnerIterator(const binary_evaluator& aEval, Index outer) @@ -160,15 +159,14 @@ protected: typedef scalar_product_op BinaryOp; typedef typename evaluator::InnerIterator LhsIterator; typedef typename evaluator::InnerIterator RhsIterator; -public: typedef CwiseBinaryOp XprType; + typedef typename XprType::StorageIndex StorageIndex; + typedef typename traits::Scalar Scalar; +public: class ReverseInnerIterator; class InnerIterator { - typedef typename traits::Scalar Scalar; - typedef typename XprType::StorageIndex StorageIndex; - public: EIGEN_STRONG_INLINE InnerIterator(const binary_evaluator& aEval, Index outer) @@ -242,15 +240,14 @@ protected: typedef scalar_product_op BinaryOp; typedef evaluator LhsEvaluator; typedef typename evaluator::InnerIterator RhsIterator; -public: typedef CwiseBinaryOp XprType; + typedef typename XprType::StorageIndex StorageIndex; + typedef typename traits::Scalar Scalar; +public: class ReverseInnerIterator; class InnerIterator { - typedef typename traits::Scalar Scalar; - typedef typename XprType::StorageIndex StorageIndex; - enum { IsRowMajor = (int(Rhs::Flags)&RowMajorBit)==RowMajorBit }; public: @@ -312,14 +309,14 @@ protected: typedef scalar_product_op BinaryOp; typedef typename evaluator::InnerIterator LhsIterator; typedef evaluator RhsEvaluator; -public: typedef CwiseBinaryOp XprType; + typedef typename XprType::StorageIndex StorageIndex; + typedef typename traits::Scalar Scalar; +public: class ReverseInnerIterator; class InnerIterator { - typedef typename traits::Scalar Scalar; - typedef typename XprType::StorageIndex StorageIndex; enum { IsRowMajor = (int(Lhs::Flags)&RowMajorBit)==RowMajorBit }; public: