diff options
author | Gael Guennebaud <g.gael@free.fr> | 2013-11-30 10:42:23 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2013-11-30 10:42:23 +0100 |
commit | d0261bd26c3900a5e52da3574fc2aeab3392c30b (patch) | |
tree | f102a304c4c5f719dbfba0db25375a58b2e6162b | |
parent | c15c65990fc322891b10a6a20db9bc6c127fae26 (diff) |
Fix swap in DenseBase
-rw-r--r-- | Eigen/src/Core/DenseBase.h | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/Eigen/src/Core/DenseBase.h b/Eigen/src/Core/DenseBase.h index 4794c2f13..50a63c85c 100644 --- a/Eigen/src/Core/DenseBase.h +++ b/Eigen/src/Core/DenseBase.h @@ -387,7 +387,29 @@ template<typename Derived> class DenseBase // size types on MSVC. return typename internal::eval<Derived>::type(derived()); } + +#ifdef EIGEN_TEST_EVALUATORS + /** swaps *this with the expression \a other. + * + */ + template<typename OtherDerived> + EIGEN_DEVICE_FUNC + void swap(const DenseBase<OtherDerived>& other, + int = OtherDerived::ThisConstantIsPrivateInPlainObjectBase) + { + swap_using_evaluator(derived(), other.derived()); + } + /** swaps *this with the matrix or array \a other. + * + */ + template<typename OtherDerived> + EIGEN_DEVICE_FUNC + void swap(PlainObjectBase<OtherDerived>& other) + { + swap_using_evaluator(derived(), other.derived()); + } +#else // EIGEN_TEST_EVALUATORS /** swaps *this with the expression \a other. * */ @@ -408,7 +430,7 @@ template<typename Derived> class DenseBase { SwapWrapper<Derived>(derived()).lazyAssign(other.derived()); } - +#endif // EIGEN_TEST_EVALUATORS EIGEN_DEVICE_FUNC inline const NestByValue<Derived> nestByValue() const; EIGEN_DEVICE_FUNC inline const ForceAlignedAccess<Derived> forceAlignedAccess() const; |