Changeset 1538 for trunk/yat


Ignore:
Timestamp:
Sep 27, 2008, 6:27:55 AM (15 years ago)
Author:
Peter
Message:

refs #368 - added several tests. Left now is to add specializations for trait classes.

Location:
trunk/yat/utility
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/utility/DataWeightProxy.h

    r1537 r1538  
    5252       \return reference to data
    5353     */
     54    //typename std::iterator_traits<DataWeight>::reference data(void) const
    5455    double& data(void) { return *data_; }
    5556
     
    7273       \brief assignment operator
    7374     */
     75    DataWeightProxy& operator=(const DataWeightProxy& rhs)
     76    {
     77      data() = rhs.data();
     78      weight() = rhs.weight();
     79      return *this;
     80    }
     81
     82    /**
     83       \brief assignment operator
     84     */
    7485    DataWeightProxy& operator=(const DataWeight& rhs)
    7586    {
     
    8293       \brief Conversion to DataWeight
    8394     */
    84     operator DataWeight() const { return DataWeight(data(), weight()); }
     95    operator DataWeight() const
     96    { return DataWeight(this->data(), this->weight()); }
    8597
    8698  private:
  • trunk/yat/utility/WeightedIterator.h

    r1537 r1538  
    4141    : public boost::iterator_facade<
    4242    WeightedIterator<DataIterator, WeightIterator>,
    43     DataWeight,
     43    DataWeightProxy<DataIterator, WeightIterator>,
    4444    typename std::iterator_traits<DataIterator>::iterator_category,
    4545    DataWeightProxy<DataIterator, WeightIterator> >
     
    4747  {
    4848  public:
     49    /**
     50       \brief DataIterator
     51     */
     52    typedef DataIterator data_iterator_type;
     53
     54    /**
     55       \brief DataIterator
     56     */
     57    typedef WeightIterator weight_iterator_type;
     58
    4959    /**
    5060       \brief Constructor
     
    5464    {}
    5565   
     66    /**
     67       \return const reference to underlying data iterator
     68     */
     69    const DataIterator& data_base(void) const { return d_iter_; }
     70
     71    /**
     72       \return const reference to underlying weight iterator
     73     */
     74    const WeightIterator& weight_base(void) const { return w_iter_; }
    5675
    5776    /**
     
    7392       to const_iterator.
    7493     */
    75     /*
    7694    template<typename D2, typename W2>
    7795    WeightedIterator(WeightedIterator<D2, W2> other,
    7896            typename boost::enable_if_convertible<D2,DataIterator>::type* = 0,
    7997            typename boost::enable_if_convertible<W2,WeightIterator>::type* = 0)
    80     {}
    81     */
     98      : d_iter_(other.data_base()), w_iter_(other.weight_base()) {}
     99
    82100
    83101  private:
     
    98116    utility::DataWeightProxy<DataIterator, WeightIterator>
    99117    dereference(void) const
    100     {
    101       return DataWeightProxy<DataIterator, WeightIterator>(d_iter_,
     118    { return DataWeightProxy<DataIterator, WeightIterator>(d_iter_,
    102119                                                           w_iter_);
    103120    }
Note: See TracChangeset for help on using the changeset viewer.