diff options
author | Hauke Heibel <hauke.heibel@gmail.com> | 2013-08-02 22:40:36 +0200 |
---|---|---|
committer | Hauke Heibel <hauke.heibel@gmail.com> | 2013-08-02 22:40:36 +0200 |
commit | 8f4d93a4b7b15fdd240f4c3c283128cead6eae16 (patch) | |
tree | c49aa581f3fc6e693952b6a64291ad8a83a6466c /unsupported/test/matrix_power.cpp | |
parent | 51b361b3bb40d547ecf39e4c2e90a806c56c9751 (diff) |
Fix compilation.
The Matrix is required to be mutable but it also needs to be a reference and
temporaries do not bind to non-const references - thus we need a hack and
cast away the constness.
Diffstat (limited to 'unsupported/test/matrix_power.cpp')
-rw-r--r-- | unsupported/test/matrix_power.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/unsupported/test/matrix_power.cpp b/unsupported/test/matrix_power.cpp index 58644f84b..baf183d12 100644 --- a/unsupported/test/matrix_power.cpp +++ b/unsupported/test/matrix_power.cpp @@ -97,8 +97,12 @@ void testGeneral(const MatrixType& m, double tol) } template<typename MatrixType> -void testSingular(const MatrixType& m, double tol) +void testSingular(const MatrixType& m_const, double tol) { + // we need to pass by reference in order to prevent errors with + // MSVC for aligned data types ... + MatrixType& m = const_cast<MatrixType&>(m_const); + const int IsComplex = NumTraits<typename internal::traits<MatrixType>::Scalar>::IsComplex; typedef typename internal::conditional<IsComplex, TriangularView<MatrixType,Upper>, const MatrixType&>::type TriangularType; typename internal::conditional< IsComplex, ComplexSchur<MatrixType>, RealSchur<MatrixType> >::type schur; @@ -126,8 +130,12 @@ void testSingular(const MatrixType& m, double tol) } template<typename MatrixType> -void testLogThenExp(const MatrixType& m, double tol) +void testLogThenExp(const MatrixType& m_const, double tol) { + // we need to pass by reference in order to prevent errors with + // MSVC for aligned data types ... + MatrixType& m = const_cast<MatrixType&>(m_const); + typedef typename MatrixType::Scalar Scalar; Scalar x; |