10 #ifndef EIGEN_NOALIAS_H
11 #define EIGEN_NOALIAS_H
13 #include "./InternalHeaderCheck.h"
32 template<
typename ExpressionType,
template <
typename>
class StorageBase>
36 typedef typename ExpressionType::Scalar Scalar;
39 explicit NoAlias(ExpressionType& expression) : m_expression(expression) {}
41 template<
typename OtherDerived>
43 EIGEN_STRONG_INLINE ExpressionType& operator=(
const StorageBase<OtherDerived>& other)
45 call_assignment_no_alias(m_expression, other.derived(), internal::assign_op<Scalar,typename OtherDerived::Scalar>());
49 template<
typename OtherDerived>
51 EIGEN_STRONG_INLINE ExpressionType& operator+=(
const StorageBase<OtherDerived>& other)
53 call_assignment_no_alias(m_expression, other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
57 template<
typename OtherDerived>
59 EIGEN_STRONG_INLINE ExpressionType& operator-=(
const StorageBase<OtherDerived>& other)
61 call_assignment_no_alias(m_expression, other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
66 ExpressionType& expression()
const
72 ExpressionType& m_expression;
103 template<
typename Derived>
NoAlias< Derived, Eigen::MatrixBase > noalias()
Definition: NoAlias.h:104
Pseudo expression providing an operator = assuming no aliasing.
Definition: NoAlias.h:34
Namespace containing all symbols from the Eigen library.
Definition: Core:139