aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2012-06-24 17:35:27 +0100
committerGravatar Jitse Niesen <jitse@maths.leeds.ac.uk>2012-06-24 17:35:27 +0100
commit8994f9962a7a0b5e439beb866f309f83d31f0b00 (patch)
tree7431f18b21dcc569f9a6d0c7d1388027428d40e2 /Eigen
parentd0d077b21218034df2518c86981670281f9a142c (diff)
Fix bug in {Matrix,Array}Wrapper evaluator
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/Core/CoreEvaluators.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/Eigen/src/Core/CoreEvaluators.h b/Eigen/src/Core/CoreEvaluators.h
index 1d4ef8032..cc8477598 100644
--- a/Eigen/src/Core/CoreEvaluators.h
+++ b/Eigen/src/Core/CoreEvaluators.h
@@ -793,10 +793,12 @@ protected:
// evaluator_impl_wrapper_base<T> is a common base class for the
// MatrixWrapper and ArrayWrapper evaluators.
-template<typename ArgType>
+template<typename XprType>
struct evaluator_impl_wrapper_base
- : evaluator_impl_base<ArgType>
+ : evaluator_impl_base<XprType>
{
+ typedef typename remove_all<typename XprType::NestedExpressionType>::type ArgType;
+
evaluator_impl_wrapper_base(const ArgType& arg) : m_argImpl(arg) {}
typedef typename ArgType::Index Index;
@@ -855,23 +857,23 @@ protected:
template<typename ArgType>
struct evaluator_impl<MatrixWrapper<ArgType> >
- : evaluator_impl_wrapper_base<ArgType>
+ : evaluator_impl_wrapper_base<MatrixWrapper<ArgType> >
{
typedef MatrixWrapper<ArgType> XprType;
evaluator_impl(const XprType& wrapper)
- : evaluator_impl_wrapper_base<ArgType>(wrapper.nestedExpression())
+ : evaluator_impl_wrapper_base<MatrixWrapper<ArgType> >(wrapper.nestedExpression())
{ }
};
template<typename ArgType>
struct evaluator_impl<ArrayWrapper<ArgType> >
- : evaluator_impl_wrapper_base<ArgType>
+ : evaluator_impl_wrapper_base<ArrayWrapper<ArgType> >
{
typedef ArrayWrapper<ArgType> XprType;
evaluator_impl(const XprType& wrapper)
- : evaluator_impl_wrapper_base<ArgType>(wrapper.nestedExpression())
+ : evaluator_impl_wrapper_base<ArrayWrapper<ArgType> >(wrapper.nestedExpression())
{ }
};