aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Hauke Heibel <hauke.heibel@gmail.com>2010-05-19 18:57:38 +0200
committerGravatar Hauke Heibel <hauke.heibel@gmail.com>2010-05-19 18:57:38 +0200
commit39edf8e2bfea70f1f753354a8a8e59aa4d6c565a (patch)
tree1ac18a5660a190ecb7db738ed01b99fa7c6e4305 /Eigen
parent05910b79967c88a5db571a56291618291a30e8a5 (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.h9
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>