diff --git a/Eigen/src/Core/TriangularMatrix.h b/Eigen/src/Core/TriangularMatrix.h index 63a1af8c1..e9b34ebdf 100644 --- a/Eigen/src/Core/TriangularMatrix.h +++ b/Eigen/src/Core/TriangularMatrix.h @@ -460,6 +460,7 @@ template class TriangularViewImpl<_Mat EIGEN_DEVICE_FUNC void swap(TriangularBase const & other) { + EIGEN_STATIC_ASSERT_LVALUE(OtherDerived); call_assignment(derived(), other.const_cast_derived(), internal::swap_assign_op()); } @@ -468,6 +469,7 @@ template class TriangularViewImpl<_Mat EIGEN_DEVICE_FUNC void swap(MatrixBase const & other) { + EIGEN_STATIC_ASSERT_LVALUE(OtherDerived); call_assignment(derived(), other.const_cast_derived(), internal::swap_assign_op()); } @@ -503,7 +505,7 @@ template template void TriangularViewImpl::lazyAssign(const MatrixBase& other) { - internal::call_assignment(derived().noalias(), other.template triangularView()); + internal::call_assignment_no_alias(derived(), other.template triangularView()); } @@ -523,7 +525,7 @@ template void TriangularViewImpl::lazyAssign(const TriangularBase& other) { eigen_assert(Mode == int(OtherDerived::Mode)); - internal::call_assignment(derived().noalias(), other.derived()); + internal::call_assignment_no_alias(derived(), other.derived()); } /***************************************************************************