diff options
author | Hauke Heibel <hauke.heibel@gmail.com> | 2010-05-19 18:57:38 +0200 |
---|---|---|
committer | Hauke Heibel <hauke.heibel@gmail.com> | 2010-05-19 18:57:38 +0200 |
commit | 39edf8e2bfea70f1f753354a8a8e59aa4d6c565a (patch) | |
tree | 1ac18a5660a190ecb7db738ed01b99fa7c6e4305 /Eigen | |
parent | 05910b79967c88a5db571a56291618291a30e8a5 (diff) |
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!
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/src/Core/DenseBase.h | 9 |
1 files 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<typename Derived> 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<Derived>::type eval() const + EIGEN_STRONG_INLINE const typename ei_eval<Derived>::type eval() const { - // MSVC cannot honor strong inlining when the return type - // is a dynamic matrix - return typename ei_eval<Derived>::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<Derived>::type(derived()); } template<typename OtherDerived> |