* added a lazyAssign overload skipping .lazy() such that c = (<xpr>).lazy() such that

lazyAssign overloads of <xpr> are automatically called (this also reduces assign instansiations)
This commit is contained in:
Gael Guennebaud
2008-07-09 13:54:21 +00:00
parent 783eb6da9b
commit 5f55ab524c
2 changed files with 15 additions and 12 deletions

View File

@@ -212,9 +212,14 @@ template<typename Derived> class MatrixBase
return this->operator=<Derived>(other);
}
/** Overloaded for optimal product evaluation */
template<typename Derived1, typename Derived2>
Derived& lazyAssign(const Product<Derived1,Derived2,CacheFriendlyProduct>& product);
/** Overloaded for cache friendly product evaluation */
template<typename Lhs, typename Rhs>
Derived& lazyAssign(const Product<Lhs,Rhs,CacheFriendlyProduct>& product);
/** Overloaded for cache friendly product evaluation */
template<typename OtherDerived>
Derived& lazyAssign(const Flagged<OtherDerived, 0, EvalBeforeNestingBit | EvalBeforeAssigningBit>& other)
{ lazyAssign(other._expression()); }
/** Overloaded for sparse product evaluation */
template<typename Derived1, typename Derived2>