aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Hauke Heibel <hauke.heibel@gmail.com>2010-01-12 13:38:04 +0100
committerGravatar Hauke Heibel <hauke.heibel@gmail.com>2010-01-12 13:38:04 +0100
commite48c3faf25c051edf66f713448e4688a4da658dd (patch)
tree3ad46f2bce3242c36c89661877fd6ca865d05d3f /Eigen
parenta8ea2c8cef3428d154b6ef315874c347e50bef08 (diff)
Fixed the ProductReturnType (at least for UnrolledProducts).
Fixed operator= (MSVC specific) in Array.
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/Array/Array.h14
-rw-r--r--Eigen/src/Core/Product.h4
2 files changed, 15 insertions, 3 deletions
diff --git a/Eigen/src/Array/Array.h b/Eigen/src/Array/Array.h
index 4bcbf7747..5f4f5a373 100644
--- a/Eigen/src/Array/Array.h
+++ b/Eigen/src/Array/Array.h
@@ -53,12 +53,24 @@ class Array
using Base::base;
using Base::coeff;
using Base::coeffRef;
- using Base::operator=;
+
using Base::operator+=;
using Base::operator-=;
using Base::operator*=;
using Base::operator/=;
+ /**
+ * The usage of
+ * using Base::operator=;
+ * fails on MSVC. Since the code below is working with GCC and MSVC, we skipped
+ * the usage of 'using'. This should be done only for operator=.
+ */
+ template<typename OtherDerived>
+ EIGEN_STRONG_INLINE Array& operator=(const AnyMatrixBase<OtherDerived> &other)
+ {
+ return Base::operator=(other);
+ }
+
/** Copies the value of the expression \a other into \c *this with automatic resizing.
*
* *this might be resized to match the dimensions of \a other. If *this was a null matrix (not already initialized),
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h
index 9e1875941..400ff06f3 100644
--- a/Eigen/src/Core/Product.h
+++ b/Eigen/src/Core/Product.h
@@ -135,8 +135,8 @@ struct ProductReturnType
template<typename Lhs, typename Rhs>
struct ProductReturnType<Lhs,Rhs,UnrolledProduct>
{
- typedef typename ei_nested<Lhs, Rhs::ColsAtCompileTime, ei_plain_matrix_type<Lhs> >::type LhsNested;
- typedef typename ei_nested<Rhs, Lhs::RowsAtCompileTime, ei_plain_matrix_type<Rhs> >::type RhsNested;
+ typedef typename ei_nested<Lhs, Rhs::ColsAtCompileTime, typename ei_plain_matrix_type<Lhs>::type >::type LhsNested;
+ typedef typename ei_nested<Rhs, Lhs::RowsAtCompileTime, typename ei_plain_matrix_type<Rhs>::type >::type RhsNested;
typedef GeneralProduct<LhsNested, RhsNested, UnrolledProduct> Type;
};