Ignore:
Timestamp:
2018-07-05T21:41:17Z (7 years ago)
Author:
Dzejrou <dzejrou@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
56521a2
Parents:
604038c
git-author:
Jaroslav Jindrak <dzejrou@…> (2017-10-24 19:30:27)
git-committer:
Dzejrou <dzejrou@…> (2018-07-05 21:41:17)
Message:

cpp: fixed minor bugs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/cpp/include/impl/iterator.hpp

    r604038c rf041811  
    3030#define LIBCPP_ITERATOR
    3131
     32#include <cstdlib>
     33
    3234namespace std
    3335{
     
    118120        public:
    119121            using iterator_type   = Iterator;
    120             using difference_type = typename Iterator::difference_type;
    121             using reference       = typename Iterator::reference;
    122             using pointer         = typename Iterator::pointer;
     122            using difference_type = typename iterator_traits<Iterator>::difference_type;
     123            using reference       = typename iterator_traits<Iterator>::reference;
     124            using pointer         = typename iterator_traits<Iterator>::pointer;
    123125
    124126            reverse_iterator()
     
    229231                    const reverse_iterator<Iterator2>& rhs)
    230232    {
    231         return lhs.current_ == rhs.current_;
     233        return lhs.base() == rhs.base();
    232234    }
    233235
    234236    template<class Iterator1, class Iterator2>
    235237    bool operator<(const reverse_iterator<Iterator1>& lhs,
    236                     const reverse_iterator<Iterator2>& rhs)
     238                   const reverse_iterator<Iterator2>& rhs)
    237239    {
    238240        // Remember: they are reversed!
    239         return lhs.current_ > rhs.current_;
     241        return lhs.base() > rhs.base();
    240242    }
    241243
     
    244246                    const reverse_iterator<Iterator2>& rhs)
    245247    {
    246         return lhs.current_ != rhs.current_;
     248        return lhs.base() != rhs.base();
    247249    }
    248250
     
    251253                    const reverse_iterator<Iterator2>& rhs)
    252254    {
    253         return lhs.current_ < rhs.current_;
     255        return lhs.base() < rhs.base();
    254256    }
    255257
     
    258260                    const reverse_iterator<Iterator2>& rhs)
    259261    {
    260         return lhs.current_ <= rhs.current_;
     262        return lhs.base() <= rhs.base();
    261263    }
    262264
     
    265267                    const reverse_iterator<Iterator2>& rhs)
    266268    {
    267         return lhs.current_ >= rhs.current_;
     269        return lhs.base() >= rhs.base();
    268270    }
    269271
     
    273275        -> decltype(rhs.base() - lhs.base())
    274276    {
    275         return rhs.current_ - lhs.current_;
     277        return rhs.base() - lhs.base();
    276278    }
    277279
     
    282284    )
    283285    {
    284         return reverse_iterator<Iterator>{it.current_ - n};
     286        return reverse_iterator<Iterator>{it.base() - n};
    285287    }
    286288
Note: See TracChangeset for help on using the changeset viewer.