yat  0.21pre
Public Member Functions | List of all members
theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator > Class Template Reference

Proxy class for DataWeight. More...

#include <yat/utility/DataWeightProxy.h>

Public Member Functions

 DataWeightProxy (DataIterator data, WeightIterator weight)
 Constructor. More...
 
 DataWeightProxy (const DataWeightProxy &other)=default
 
boost::iterator_reference< DataIterator >::type data (void)
 
const double & data (void) const
 
boost::iterator_reference< WeightIterator >::type weight (void)
 
const double & weight (void) const
 
DataWeightProxyoperator= (const DataWeightProxy &rhs)
 assignment operator More...
 
DataWeightProxyoperator= (const DataWeight &rhs)
 assignment operator
 
 operator DataWeight () const
 Conversion to DataWeight.
 

Detailed Description

template<typename DataIterator, typename WeightIterator>
class theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >

Proxy class for DataWeight.

Class is used in WeightedIterator

Type Requirements (for both DataIterator and WeightIterator):

Constructor & Destructor Documentation

◆ DataWeightProxy() [1/2]

template<typename DataIterator, typename WeightIterator>
theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >::DataWeightProxy ( DataIterator  data,
WeightIterator  weight 
)
inline

Constructor.

Parameters
dataiterator pointing to data to hold
weightiterator pointing to weight to hold

◆ DataWeightProxy() [2/2]

template<typename DataIterator, typename WeightIterator>
theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >::DataWeightProxy ( const DataWeightProxy< DataIterator, WeightIterator > &  other)
default

Shallow copy underlying iterators.

Member Function Documentation

◆ data() [1/2]

template<typename DataIterator, typename WeightIterator>
boost::iterator_reference<DataIterator>::type theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >::data ( void  )
inline
Returns
reference to data

This function requires that reference type of data_iterator is convertible to double. This function is typically used as left-hand side in an assignment and thus expected to being able to change the underlying data such as a double& can change the underlying double. But it is not required that return type is a double& as a Proxy class can do the job too.

◆ data() [2/2]

template<typename DataIterator, typename WeightIterator>
const double& theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >::data ( void  ) const
inline
Returns
const reference to data

◆ operator=()

template<typename DataIterator, typename WeightIterator>
DataWeightProxy& theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >::operator= ( const DataWeightProxy< DataIterator, WeightIterator > &  rhs)
inline

assignment operator

This function uses non-const function data(void) and weight(void) and consequently requires that reference type of both data_iterator and weight_iterator are convertible to double.

◆ weight() [1/2]

template<typename DataIterator, typename WeightIterator>
boost::iterator_reference<WeightIterator>::type theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >::weight ( void  )
inline
Returns
reference to weight

This function requires that reference type of weight_iterator is convertible to double. This function is typically used as left-hand side in an assignment and thus expected to being able to change the underlying data such as a double& can change the underlying double. But it is not required that return type is a double& as a Proxy class can do the job too.

◆ weight() [2/2]

template<typename DataIterator, typename WeightIterator>
const double& theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >::weight ( void  ) const
inline
Returns
const reference to weight

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

Generated on Wed Jan 25 2023 03:34:29 for yat by  doxygen 1.8.14