diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-03-11 11:42:07 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-03-11 11:42:07 +0100 |
commit | 2bf63c6b4a6fb9f69df184dc69f3427ffd81c4a3 (patch) | |
tree | a8d44031e0e70370235fd4f464b1f8984355f22f /Eigen/src/Core/ReturnByValue.h | |
parent | da6ec812820259b7474bff49c8fc0443c88900e5 (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.h | 8 |
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 |