aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/ReturnByValue.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-03-11 11:42:07 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-03-11 11:42:07 +0100
commit2bf63c6b4a6fb9f69df184dc69f3427ffd81c4a3 (patch)
treea8d44031e0e70370235fd4f464b1f8984355f22f /Eigen/src/Core/ReturnByValue.h
parentda6ec812820259b7474bff49c8fc0443c88900e5 (diff)
Even ReturnByValue should not evaluate when assembling the expression
Diffstat (limited to 'Eigen/src/Core/ReturnByValue.h')
-rw-r--r--Eigen/src/Core/ReturnByValue.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/Eigen/src/Core/ReturnByValue.h b/Eigen/src/Core/ReturnByValue.h
index 7834f6cbc..d63b96138 100644
--- a/Eigen/src/Core/ReturnByValue.h
+++ b/Eigen/src/Core/ReturnByValue.h
@@ -33,6 +33,7 @@ struct traits<ReturnByValue<Derived> >
};
};
+#ifndef EIGEN_TEST_EVALUATORS
/* The ReturnByValue object doesn't even have a coeff() method.
* So the only way that nesting it in an expression can work, is by evaluating it into a plain matrix.
* So internal::nested always gives the plain return matrix type.
@@ -44,6 +45,13 @@ struct nested<ReturnByValue<Derived>, n, PlainObject>
{
typedef typename traits<Derived>::ReturnType type;
};
+#else
+template<typename Derived,int n,typename PlainObject>
+struct nested_eval<ReturnByValue<Derived>, n, PlainObject>
+{
+ typedef typename traits<Derived>::ReturnType type;
+};
+#endif
} // end namespace internal