10 #ifndef EIGEN_NOALIAS_H
11 #define EIGEN_NOALIAS_H
30 template<
typename ExpressionType,
template <
typename>
class StorageBase>
34 typedef typename ExpressionType::Scalar Scalar;
36 explicit NoAlias(ExpressionType& expression) : m_expression(expression) {}
38 template<
typename OtherDerived>
40 EIGEN_STRONG_INLINE ExpressionType& operator=(
const StorageBase<OtherDerived>& other)
42 call_assignment_no_alias(m_expression, other.derived(), internal::assign_op<Scalar,typename OtherDerived::Scalar>());
46 template<
typename OtherDerived>
48 EIGEN_STRONG_INLINE ExpressionType& operator+=(
const StorageBase<OtherDerived>& other)
50 call_assignment_no_alias(m_expression, other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
54 template<
typename OtherDerived>
56 EIGEN_STRONG_INLINE ExpressionType& operator-=(
const StorageBase<OtherDerived>& other)
58 call_assignment_no_alias(m_expression, other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
63 ExpressionType& expression()
const
69 ExpressionType& m_expression;
100 template<
typename Derived>
108 #endif // EIGEN_NOALIAS_H