aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/AssignEvaluator.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2013-11-29 17:50:59 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2013-11-29 17:50:59 +0100
commitc15c65990fc322891b10a6a20db9bc6c127fae26 (patch)
tree2e82c93996569145d1f182639bafa9d9f60a7a16 /Eigen/src/Core/AssignEvaluator.h
parentfb6e32a62fe288aa7236394fc16eb57f3fc40335 (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.h6
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;