From 39edf8e2bfea70f1f753354a8a8e59aa4d6c565a Mon Sep 17 00:00:00 2001 From: Hauke Heibel Date: Wed, 19 May 2010 18:57:38 +0200 Subject: [PATCH] I was not really aware of the implications on fixed size types when the strong inlining is not present. We really need it on MSVC! --- Eigen/src/Core/DenseBase.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Eigen/src/Core/DenseBase.h b/Eigen/src/Core/DenseBase.h index 728bd87df..e72217c40 100644 --- a/Eigen/src/Core/DenseBase.h +++ b/Eigen/src/Core/DenseBase.h @@ -442,11 +442,12 @@ template class DenseBase * Notice that in the case of a plain matrix or vector (not an expression) this function just returns * a const reference, in order to avoid a useless copy. */ - inline const typename ei_eval::type eval() const + EIGEN_STRONG_INLINE const typename ei_eval::type eval() const { - // MSVC cannot honor strong inlining when the return type - // is a dynamic matrix - return typename ei_eval::type(derived()); + // Even though MSVC does not honor strong inlining when the return type + // is a dynamic matrix, we desperately need strong inlining for fixed + // size types on MSVC. + return typename ei_eval::type(derived()); } template