diff options
author | 2010-01-12 13:38:04 +0100 | |
---|---|---|
committer | 2010-01-12 13:38:04 +0100 | |
commit | e48c3faf25c051edf66f713448e4688a4da658dd (patch) | |
tree | 3ad46f2bce3242c36c89661877fd6ca865d05d3f /Eigen | |
parent | a8ea2c8cef3428d154b6ef315874c347e50bef08 (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.h | 14 | ||||
-rw-r--r-- | Eigen/src/Core/Product.h | 4 |
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; }; |