* ReturnByValue:

-- simpplify by removing the 2nd template parameter
  -- rename Functor to Derived, as now it's a usual CRTP
* Homogeneous:
  -- in products, honor the Max sizes etc.
This commit is contained in:
Benoit Jacob
2009-09-22 12:20:45 -04:00
parent 1df54e3ac2
commit c1c780a94f
7 changed files with 51 additions and 41 deletions

View File

@@ -399,8 +399,8 @@ class Matrix
return Base::lazyAssign(other.derived());
}
template<typename OtherDerived,typename OtherEvalType>
EIGEN_STRONG_INLINE Matrix& operator=(const ReturnByValue<OtherDerived,OtherEvalType>& func)
template<typename OtherDerived>
EIGEN_STRONG_INLINE Matrix& operator=(const ReturnByValue<OtherDerived>& func)
{
resize(func.rows(), func.cols());
return Base::operator=(func);
@@ -504,8 +504,8 @@ class Matrix
_set_noalias(other);
}
/** Copy constructor with in-place evaluation */
template<typename OtherDerived,typename OtherEvalType>
EIGEN_STRONG_INLINE Matrix(const ReturnByValue<OtherDerived,OtherEvalType>& other)
template<typename OtherDerived>
EIGEN_STRONG_INLINE Matrix(const ReturnByValue<OtherDerived>& other)
{
_check_template_params();
resize(other.rows(), other.cols());