yat  0.8.3pre
Public Member Functions
theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator > Class Template Reference

Proxy class for DataWeight. More...

#include <yat/utility/DataWeightProxy.h>

List of all members.

Public Member Functions

 DataWeightProxy (DataIterator data, WeightIterator weight)
 Constructor.
std::iterator_traits
< DataIterator >::reference 
data (void)
const double & data (void) const
std::iterator_traits
< WeightIterator >::reference 
weight (void)
const double & weight (void) const
DataWeightProxyoperator= (const DataWeightProxy &rhs)
 assignment operator
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:
 - DataIterator must be a Trivial Iterator.
 - value_type must be convertible to \c const \c double.
 - reference must be convertible to \c const \c double&.
 - If the DataWeightProxy is going to be used in a non-const way
   iterators must be mutable and \c reference must be exactly \c
   double&. See data(void) and weight(void).

Constructor & Destructor Documentation

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

Member Function Documentation

template<typename DataIterator, typename WeightIterator>
std::iterator_traits<DataIterator>::reference 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.

template<typename DataIterator, typename WeightIterator>
const double& theplu::yat::utility::DataWeightProxy< DataIterator, WeightIterator >::data ( void  ) const
inline
Returns:
const reference to data
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.

template<typename DataIterator, typename WeightIterator>
std::iterator_traits<WeightIterator>::reference 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.

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 Thu Dec 20 2012 03:13:00 for yat by  doxygen 1.8.0-20120409