Chemical Data Processing Library C++ API - Version 1.3.0
Public Types | Public Member Functions | Friends | List of all members
CDPL::Math::VectorReference< V > Class Template Reference

#include <Vector.hpp>

+ Inheritance diagram for CDPL::Math::VectorReference< V >:

Public Types

typedef V VectorType
 
typedef V::ValueType ValueType
 
typedef std::conditional< std::is_const< V >::value, typename V::ConstReference, typename V::Reference >::type Reference
 
typedef V::ConstReference ConstReference
 
typedef V::SizeType SizeType
 
typedef V::DifferenceType DifferenceType
 
typedef SelfType ClosureType
 
typedef const SelfType ConstClosureType
 
- Public Types inherited from CDPL::Math::VectorExpression< VectorReference< V > >
typedef VectorReference< V > ExpressionType
 
- Public Types inherited from CDPL::Math::Expression< E >
typedef E ExpressionType
 

Public Member Functions

 VectorReference (VectorType &v)
 
Reference operator[] (SizeType i)
 
ConstReference operator[] (SizeType i) const
 
Reference operator() (SizeType i)
 
ConstReference operator() (SizeType i) const
 
SizeType getSize () const
 
SizeType getMaxSize () const
 
bool isEmpty () const
 
const VectorType & getData () const
 
VectorType & getData ()
 
VectorReference & operator= (const VectorReference &r)
 
template<typename E >
VectorReference & operator= (const VectorExpression< E > &e)
 
template<typename E >
VectorReference & operator+= (const VectorExpression< E > &e)
 
template<typename E >
VectorReference & operator-= (const VectorExpression< E > &e)
 
template<typename T >
std::enable_if< IsScalar< T >::value, VectorReference >::type & operator*= (const T &t)
 
template<typename T >
std::enable_if< IsScalar< T >::value, VectorReference >::type & operator/= (const T &t)
 
template<typename E >
VectorReference & assign (const VectorExpression< E > &e)
 
template<typename E >
VectorReference & plusAssign (const VectorExpression< E > &e)
 
template<typename E >
VectorReference & minusAssign (const VectorExpression< E > &e)
 
void swap (VectorReference &r)
 
- Public Member Functions inherited from CDPL::Math::VectorExpression< VectorReference< V > >
const ExpressionType & operator() () const
 
ExpressionType & operator() ()
 

Friends

void swap (VectorReference &r1, VectorReference &r2)
 

Additional Inherited Members

- Protected Member Functions inherited from CDPL::Math::VectorExpression< VectorReference< V > >
 VectorExpression ()
 
 ~VectorExpression ()
 
- Protected Member Functions inherited from CDPL::Math::Expression< E >
 Expression ()
 
 ~Expression ()
 

Member Typedef Documentation

◆ VectorType

template<typename V >
typedef V CDPL::Math::VectorReference< V >::VectorType

◆ ValueType

template<typename V >
typedef V::ValueType CDPL::Math::VectorReference< V >::ValueType

◆ Reference

template<typename V >
typedef std::conditional<std::is_const<V>::value, typename V::ConstReference, typename V::Reference>::type CDPL::Math::VectorReference< V >::Reference

◆ ConstReference

template<typename V >
typedef V::ConstReference CDPL::Math::VectorReference< V >::ConstReference

◆ SizeType

template<typename V >
typedef V::SizeType CDPL::Math::VectorReference< V >::SizeType

◆ DifferenceType

template<typename V >
typedef V::DifferenceType CDPL::Math::VectorReference< V >::DifferenceType

◆ ClosureType

template<typename V >
typedef SelfType CDPL::Math::VectorReference< V >::ClosureType

◆ ConstClosureType

template<typename V >
typedef const SelfType CDPL::Math::VectorReference< V >::ConstClosureType

Constructor & Destructor Documentation

◆ VectorReference()

template<typename V >
CDPL::Math::VectorReference< V >::VectorReference ( VectorType &  v)
inlineexplicit

Member Function Documentation

◆ operator[]() [1/2]

template<typename V >
Reference CDPL::Math::VectorReference< V >::operator[] ( SizeType  i)
inline

◆ operator[]() [2/2]

template<typename V >
ConstReference CDPL::Math::VectorReference< V >::operator[] ( SizeType  i) const
inline

◆ operator()() [1/2]

template<typename V >
Reference CDPL::Math::VectorReference< V >::operator() ( SizeType  i)
inline

◆ operator()() [2/2]

template<typename V >
ConstReference CDPL::Math::VectorReference< V >::operator() ( SizeType  i) const
inline

◆ getSize()

template<typename V >
SizeType CDPL::Math::VectorReference< V >::getSize ( ) const
inline

◆ getMaxSize()

template<typename V >
SizeType CDPL::Math::VectorReference< V >::getMaxSize ( ) const
inline

◆ isEmpty()

template<typename V >
bool CDPL::Math::VectorReference< V >::isEmpty ( ) const
inline

◆ getData() [1/2]

template<typename V >
const VectorType& CDPL::Math::VectorReference< V >::getData ( ) const
inline

◆ getData() [2/2]

template<typename V >
VectorType& CDPL::Math::VectorReference< V >::getData ( )
inline

◆ operator=() [1/2]

template<typename V >
VectorReference& CDPL::Math::VectorReference< V >::operator= ( const VectorReference< V > &  r)
inline

◆ operator=() [2/2]

template<typename V >
template<typename E >
VectorReference& CDPL::Math::VectorReference< V >::operator= ( const VectorExpression< E > &  e)
inline

◆ operator+=()

template<typename V >
template<typename E >
VectorReference& CDPL::Math::VectorReference< V >::operator+= ( const VectorExpression< E > &  e)
inline

◆ operator-=()

template<typename V >
template<typename E >
VectorReference& CDPL::Math::VectorReference< V >::operator-= ( const VectorExpression< E > &  e)
inline

◆ operator*=()

template<typename V >
template<typename T >
std::enable_if<IsScalar<T>::value, VectorReference>::type& CDPL::Math::VectorReference< V >::operator*= ( const T &  t)
inline

◆ operator/=()

template<typename V >
template<typename T >
std::enable_if<IsScalar<T>::value, VectorReference>::type& CDPL::Math::VectorReference< V >::operator/= ( const T &  t)
inline

◆ assign()

template<typename V >
template<typename E >
VectorReference& CDPL::Math::VectorReference< V >::assign ( const VectorExpression< E > &  e)
inline

◆ plusAssign()

template<typename V >
template<typename E >
VectorReference& CDPL::Math::VectorReference< V >::plusAssign ( const VectorExpression< E > &  e)
inline

◆ minusAssign()

template<typename V >
template<typename E >
VectorReference& CDPL::Math::VectorReference< V >::minusAssign ( const VectorExpression< E > &  e)
inline

◆ swap()

template<typename V >
void CDPL::Math::VectorReference< V >::swap ( VectorReference< V > &  r)
inline

Friends And Related Function Documentation

◆ swap

template<typename V >
void swap ( VectorReference< V > &  r1,
VectorReference< V > &  r2 
)
friend

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