SparseMatrix: add missing ctor for ReturnByValue

(transplanted from 7518201de8e4515bc60c9c68e3d1f7b974d3a24c
)
This commit is contained in:
Gael Guennebaud 2012-07-25 23:03:10 +02:00
parent 4691a4e4b5
commit 9f945b6028

View File

@ -572,6 +572,16 @@ class SparseMatrix
*this = other.derived();
}
/** \brief Copy constructor with in-place evaluation */
template<typename OtherDerived>
SparseMatrix(const ReturnByValue<OtherDerived>& other)
: Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0), m_innerNonZeros(0)
{
check_template_parameters();
initAssignment(other);
other.evalTo(*this);
}
/** Swaps the content of two sparse matrices of the same type.
* This is a fast operation that simply swaps the underlying pointers and parameters. */
inline void swap(SparseMatrix& other)
@ -613,7 +623,10 @@ class SparseMatrix
template<typename OtherDerived>
inline SparseMatrix& operator=(const ReturnByValue<OtherDerived>& other)
{ return Base::operator=(other.derived()); }
{
initAssignment(other);
return Base::operator=(other.derived());
}
template<typename OtherDerived>
inline SparseMatrix& operator=(const EigenBase<OtherDerived>& other)