Lines Matching refs:reverse_iterator

128 class reverse_iterator
143 constexpr reverse_iterator();
144 constexpr explicit reverse_iterator(Iterator x);
145 template <class U> constexpr reverse_iterator(const reverse_iterator<U>& u);
146 template <class U> constexpr reverse_iterator& operator=(const reverse_iterator<U>& u);
150 constexpr reverse_iterator& operator++();
151 constexpr reverse_iterator operator++(int);
152 constexpr reverse_iterator& operator--();
153 constexpr reverse_iterator operator--(int);
154 constexpr reverse_iterator operator+ (difference_type n) const;
155 constexpr reverse_iterator& operator+=(difference_type n);
156 constexpr reverse_iterator operator- (difference_type n) const;
157 constexpr reverse_iterator& operator-=(difference_type n);
163 operator==(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);
167 operator<(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);
171 operator!=(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);
175 operator>(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);
179 operator>=(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);
183 operator<=(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y);
187 operator-(const reverse_iterator<Iterator1>& x, const reverse_iterator<Iterator2>& y)
191 constexpr reverse_iterator<Iterator>
192 operator+(typename reverse_iterator<Iterator>::difference_type n,
193 const reverse_iterator<Iterator>& x); // constexpr in C++17
196 constexpr reverse_iterator<Iterator> make_reverse_iterator(Iterator i); // C++14, constexpr in C++17
445 template <class E> reverse_iterator<const E*> constexpr rbegin(initializer_list<E> il); // C++14
446 template <class E> reverse_iterator<const E*> constexpr rend(initializer_list<E> il); // C++14
447 template <class T, size_t N> reverse_iterator<T*> constexpr rbegin(T (&array)[N]); // C++14
448 template <class T, size_t N> reverse_iterator<T*> constexpr rend(T (&array)[N]); // C++14
617 class _LIBCPP_TEMPLATE_VIS reverse_iterator
628 "The specified iterator type cannot be used with reverse_iterator; "
629 "Using stashing iterators with reverse_iterator causes undefined behavior");
648 reverse_iterator() : __t(), current() {}
650 explicit reverse_iterator(_Iter __x) : __t(__x), current(__x) {}
653 reverse_iterator(const reverse_iterator<_Up>& __u) : __t(__u.base()), current(__u.base()) {}
656 reverse_iterator& operator=(const reverse_iterator<_Up>& __u)
665 reverse_iterator& operator++() {--current; return *this;}
667 reverse_iterator operator++(int) {reverse_iterator __tmp(*this); --current; return __tmp;}
669 reverse_iterator& operator--() {++current; return *this;}
671 reverse_iterator operator--(int) {reverse_iterator __tmp(*this); ++current; return __tmp;}
673reverse_iterator operator+ (difference_type __n) const {return reverse_iterator(current - __n);}
675 reverse_iterator& operator+=(difference_type __n) {current -= __n; return *this;}
677reverse_iterator operator- (difference_type __n) const {return reverse_iterator(current + __n);}
679 reverse_iterator& operator-=(difference_type __n) {current += __n; return *this;}
687 operator==(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
695 operator<(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
703 operator!=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
711 operator>(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
719 operator>=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
727 operator<=(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
736 operator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
744 typename reverse_iterator<_Iter1>::difference_type
745 operator-(const reverse_iterator<_Iter1>& __x, const reverse_iterator<_Iter2>& __y)
753 reverse_iterator<_Iter>
754 operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x)
756 return reverse_iterator<_Iter>(__x.base() - __n);
762 reverse_iterator<_Iter> make_reverse_iterator(_Iter __i)
764 return reverse_iterator<_Iter>(__i);
1661 reverse_iterator<_Tp*> rbegin(_Tp (&__array)[_Np])
1663 return reverse_iterator<_Tp*>(__array + _Np);
1668 reverse_iterator<_Tp*> rend(_Tp (&__array)[_Np])
1670 return reverse_iterator<_Tp*>(__array);
1675 reverse_iterator<const _Ep*> rbegin(initializer_list<_Ep> __il)
1677 return reverse_iterator<const _Ep*>(__il.end());
1682 reverse_iterator<const _Ep*> rend(initializer_list<_Ep> __il)
1684 return reverse_iterator<const _Ep*>(__il.begin());