diff options
author | Gael Guennebaud <g.gael@free.fr> | 2013-11-29 17:50:59 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2013-11-29 17:50:59 +0100 |
commit | c15c65990fc322891b10a6a20db9bc6c127fae26 (patch) | |
tree | 2e82c93996569145d1f182639bafa9d9f60a7a16 /Eigen/src/Core/AssignEvaluator.h | |
parent | fb6e32a62fe288aa7236394fc16eb57f3fc40335 (diff) |
First step toward the generalization of evaluators to triangular, sparse and other fancyness.
Remove product_tag template parameter to Product.
Diffstat (limited to 'Eigen/src/Core/AssignEvaluator.h')
-rw-r--r-- | Eigen/src/Core/AssignEvaluator.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Eigen/src/Core/AssignEvaluator.h b/Eigen/src/Core/AssignEvaluator.h index 99ae3f89d..2f18cbc95 100644 --- a/Eigen/src/Core/AssignEvaluator.h +++ b/Eigen/src/Core/AssignEvaluator.h @@ -646,7 +646,7 @@ struct SparseShape {}; // Based on the respective shapes of the destination and source, // the class AssignmentKind determine the kind of assignment mechanism. // AssignmentKind must define a Kind typedef. -template<int DstShape, int SrcShape> struct AssignmentKind; +template<typename DstShape, typename SrcShape> struct AssignmentKind; // AssignmentKind<.,.>::Kind can be one of the following: struct Dense2Dense {}; @@ -655,9 +655,11 @@ template<int DstShape, int SrcShape> struct AssignmentKind; struct Sparse2Dense {}; struct Sparse2Sparse {}; +template<> struct AssignmentKind<Dense,Dense> { typedef Dense2Dense Kind; }; + // This is the main assignment class template< typename DstXprType, typename SrcXprType, typename Functor, - typename Kind = Dense2Dense,//AssignmentKind< evaluator<A>::Shape , evaluator<B>::Shape >::Kind, + typename Kind = typename AssignmentKind< typename evaluator_traits<DstXprType>::Shape , typename evaluator_traits<SrcXprType>::Shape >::Kind, typename Scalar = typename DstXprType::Scalar> struct Assignment; |