diff options
author | Hauke Heibel <hauke.heibel@gmail.com> | 2010-06-14 23:02:49 +0200 |
---|---|---|
committer | Hauke Heibel <hauke.heibel@gmail.com> | 2010-06-14 23:02:49 +0200 |
commit | 0afb1e80c7c3c924231cf8da15bf83213b60855b (patch) | |
tree | ca25223a8c9b7a6442616e0f67f1720de91ee42d /Eigen/src/Core/Assign.h | |
parent | 3cabd0c417dd08e4a51cc379f8da66179a0795d4 (diff) |
Really fix #123.
Diffstat (limited to 'Eigen/src/Core/Assign.h')
-rw-r--r-- | Eigen/src/Core/Assign.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/Eigen/src/Core/Assign.h b/Eigen/src/Core/Assign.h index a389b3c06..3a621b19f 100644 --- a/Eigen/src/Core/Assign.h +++ b/Eigen/src/Core/Assign.h @@ -538,9 +538,25 @@ EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const MatrixBase& ot template<typename Derived> template <typename OtherDerived> -EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const MatrixBase<OtherDerived>& other) +EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const DenseBase<OtherDerived>& other) { return ei_assign_selector<Derived,OtherDerived>::run(derived(), other.derived()); } +template<typename Derived> +template <typename OtherDerived> +EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const EigenBase<OtherDerived>& other) +{ + other.derived().evalTo(derived()); + return derived(); +} + +template<typename Derived> +template<typename OtherDerived> +EIGEN_STRONG_INLINE Derived& MatrixBase<Derived>::operator=(const ReturnByValue<OtherDerived>& other) +{ + other.evalTo(derived()); + return derived(); +} + #endif // EIGEN_ASSIGN_H |