10#ifndef EIGEN_NOALIAS_H
11#define EIGEN_NOALIAS_H
30template<
typename ExpressionType,
template <
typename>
class StorageBase>
34 typedef typename ExpressionType::Scalar Scalar;
37 explicit NoAlias(ExpressionType& expression) : m_expression(expression) {}
39 template<
typename OtherDerived>
41 EIGEN_STRONG_INLINE ExpressionType& operator=(
const StorageBase<OtherDerived>& other)
43 call_assignment_no_alias(m_expression, other.derived(), internal::assign_op<Scalar,typename OtherDerived::Scalar>());
47 template<
typename OtherDerived>
49 EIGEN_STRONG_INLINE ExpressionType& operator+=(
const StorageBase<OtherDerived>& other)
51 call_assignment_no_alias(m_expression, other.derived(), internal::add_assign_op<Scalar,typename OtherDerived::Scalar>());
55 template<
typename OtherDerived>
57 EIGEN_STRONG_INLINE ExpressionType& operator-=(
const StorageBase<OtherDerived>& other)
59 call_assignment_no_alias(m_expression, other.derived(), internal::sub_assign_op<Scalar,typename OtherDerived::Scalar>());
64 ExpressionType& expression()
const
70 ExpressionType& m_expression;
101template<
typename Derived>
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:50
Pseudo expression providing an operator = assuming no aliasing.
Definition: NoAlias.h:32
Namespace containing all symbols from the Eigen library.
Definition: Core:141