Public Member Functions | Protected Attributes

NoAlias< ExpressionType, StorageBase > Class Template Reference

Pseudo expression providing an operator = assuming no aliasing. More...

#include <NoAlias.h>

List of all members.

Public Member Functions

 NoAlias (ExpressionType &expression)
template<typename OtherDerived >
EIGEN_STRONG_INLINE
ExpressionType & 
operator= (const StorageBase< OtherDerived > &other)
template<typename OtherDerived >
EIGEN_STRONG_INLINE
ExpressionType & 
operator+= (const StorageBase< OtherDerived > &other)
template<typename OtherDerived >
EIGEN_STRONG_INLINE
ExpressionType & 
operator-= (const StorageBase< OtherDerived > &other)
template<typename ProductDerived , typename Lhs , typename Rhs >
EIGEN_STRONG_INLINE
ExpressionType & 
operator+= (const ProductBase< ProductDerived, Lhs, Rhs > &other)
template<typename ProductDerived , typename Lhs , typename Rhs >
EIGEN_STRONG_INLINE
ExpressionType & 
operator-= (const ProductBase< ProductDerived, Lhs, Rhs > &other)
template<typename Lhs , typename Rhs , int NestingFlags>
EIGEN_STRONG_INLINE
ExpressionType & 
operator+= (const CoeffBasedProduct< Lhs, Rhs, NestingFlags > &other)
template<typename Lhs , typename Rhs , int NestingFlags>
EIGEN_STRONG_INLINE
ExpressionType & 
operator-= (const CoeffBasedProduct< Lhs, Rhs, NestingFlags > &other)

Protected Attributes

ExpressionType & m_expression

Detailed Description

template<typename ExpressionType, template< typename > class StorageBase>
class NoAlias< ExpressionType, StorageBase >

Pseudo expression providing an operator = assuming no aliasing.

Parameters:
ExpressionType the type of the object on which to do the lazy assignment

This class represents an expression with special assignment operators assuming no aliasing between the target expression and the source expression. More precisely it alloas to bypass the EvalBeforeAssignBit flag of the source expression. It is the return type of MatrixBase::noalias() and most of the time this is the only way it is used.

See also:
MatrixBase::noalias()

Constructor & Destructor Documentation

template<typename ExpressionType, template< typename > class StorageBase>
NoAlias< ExpressionType, StorageBase >::NoAlias ( ExpressionType &  expression  )  [inline]

Member Function Documentation

template<typename ExpressionType, template< typename > class StorageBase>
template<typename OtherDerived >
EIGEN_STRONG_INLINE ExpressionType& NoAlias< ExpressionType, StorageBase >::operator+= ( const StorageBase< OtherDerived > &  other  )  [inline]
template<typename ExpressionType, template< typename > class StorageBase>
template<typename ProductDerived , typename Lhs , typename Rhs >
EIGEN_STRONG_INLINE ExpressionType& NoAlias< ExpressionType, StorageBase >::operator+= ( const ProductBase< ProductDerived, Lhs, Rhs > &  other  )  [inline]
template<typename ExpressionType, template< typename > class StorageBase>
template<typename Lhs , typename Rhs , int NestingFlags>
EIGEN_STRONG_INLINE ExpressionType& NoAlias< ExpressionType, StorageBase >::operator+= ( const CoeffBasedProduct< Lhs, Rhs, NestingFlags > &  other  )  [inline]
template<typename ExpressionType, template< typename > class StorageBase>
template<typename ProductDerived , typename Lhs , typename Rhs >
EIGEN_STRONG_INLINE ExpressionType& NoAlias< ExpressionType, StorageBase >::operator-= ( const ProductBase< ProductDerived, Lhs, Rhs > &  other  )  [inline]
template<typename ExpressionType, template< typename > class StorageBase>
template<typename Lhs , typename Rhs , int NestingFlags>
EIGEN_STRONG_INLINE ExpressionType& NoAlias< ExpressionType, StorageBase >::operator-= ( const CoeffBasedProduct< Lhs, Rhs, NestingFlags > &  other  )  [inline]
template<typename ExpressionType, template< typename > class StorageBase>
template<typename OtherDerived >
EIGEN_STRONG_INLINE ExpressionType& NoAlias< ExpressionType, StorageBase >::operator-= ( const StorageBase< OtherDerived > &  other  )  [inline]
template<typename ExpressionType, template< typename > class StorageBase>
template<typename OtherDerived >
EIGEN_STRONG_INLINE ExpressionType& NoAlias< ExpressionType, StorageBase >::operator= ( const StorageBase< OtherDerived > &  other  )  [inline]

Behaves like MatrixBase::lazyAssign(other)

See also:
MatrixBase::lazyAssign()

Member Data Documentation

template<typename ExpressionType, template< typename > class StorageBase>
ExpressionType& NoAlias< ExpressionType, StorageBase >::m_expression [protected]

The documentation for this class was generated from the following file: