From 8994f9962a7a0b5e439beb866f309f83d31f0b00 Mon Sep 17 00:00:00 2001 From: Jitse Niesen Date: Sun, 24 Jun 2012 17:35:27 +0100 Subject: [PATCH] Fix bug in {Matrix,Array}Wrapper evaluator --- Eigen/src/Core/CoreEvaluators.h | 14 ++++++++------ 1 file 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 is a common base class for the // MatrixWrapper and ArrayWrapper evaluators. -template +template struct evaluator_impl_wrapper_base - : evaluator_impl_base + : evaluator_impl_base { + typedef typename remove_all::type ArgType; + evaluator_impl_wrapper_base(const ArgType& arg) : m_argImpl(arg) {} typedef typename ArgType::Index Index; @@ -855,23 +857,23 @@ protected: template struct evaluator_impl > - : evaluator_impl_wrapper_base + : evaluator_impl_wrapper_base > { typedef MatrixWrapper XprType; evaluator_impl(const XprType& wrapper) - : evaluator_impl_wrapper_base(wrapper.nestedExpression()) + : evaluator_impl_wrapper_base >(wrapper.nestedExpression()) { } }; template struct evaluator_impl > - : evaluator_impl_wrapper_base + : evaluator_impl_wrapper_base > { typedef ArrayWrapper XprType; evaluator_impl(const XprType& wrapper) - : evaluator_impl_wrapper_base(wrapper.nestedExpression()) + : evaluator_impl_wrapper_base >(wrapper.nestedExpression()) { } };