SFINAE'ing away non-const overloads if selfAdjoint/triangular view is not referring to an lvalue

This commit is contained in:
Erik Schultheis 2021-11-29 22:51:26 +00:00 committed by Rasmus Munk Larsen
parent 1b8dce564a
commit 63abb35dfd
2 changed files with 4 additions and 4 deletions

View File

@ -219,9 +219,9 @@ template<typename MatrixType_, unsigned int UpLo> class SelfAdjointView
typedef SelfAdjointView<typename MatrixType::TransposeReturnType,TransposeMode> TransposeReturnType;
/** \sa MatrixBase::transpose() */
EIGEN_DEVICE_FUNC
inline TransposeReturnType transpose()
template<class Dummy=int>
inline TransposeReturnType transpose(typename internal::enable_if<Eigen::internal::is_lvalue<MatrixType>::value, Dummy*>::type = nullptr)
{
EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
typename MatrixType::TransposeReturnType tmp(m_matrix);
return TransposeReturnType(tmp);
}

View File

@ -265,9 +265,9 @@ template<typename MatrixType_, unsigned int Mode_> class TriangularView
typedef TriangularView<typename MatrixType::TransposeReturnType,TransposeMode> TransposeReturnType;
/** \sa MatrixBase::transpose() */
EIGEN_DEVICE_FUNC
inline TransposeReturnType transpose()
template<class Dummy=int>
inline TransposeReturnType transpose(typename internal::enable_if<Eigen::internal::is_lvalue<MatrixType>::value, Dummy*>::type = nullptr)
{
EIGEN_STATIC_ASSERT_LVALUE(MatrixType)
typename MatrixType::TransposeReturnType tmp(m_matrix);
return TransposeReturnType(tmp);
}