Home | History | Annotate | Download | only in include

Lines Matching full:_iter

451 template <class _Iter, bool> struct __iterator_traits_impl {};
453 template <class _Iter>
454 struct __iterator_traits_impl<_Iter, true>
456 typedef typename _Iter::difference_type difference_type;
457 typedef typename _Iter::value_type value_type;
458 typedef typename _Iter::pointer pointer;
459 typedef typename _Iter::reference reference;
460 typedef typename _Iter::iterator_category iterator_category;
463 template <class _Iter, bool> struct __iterator_traits {};
465 template <class _Iter>
466 struct __iterator_traits<_Iter, true>
469 _Iter,
470 is_convertible<typename _Iter::iterator_category, input_iterator_tag>::value ||
471 is_convertible<typename _Iter::iterator_category, output_iterator_tag>::value
480 template <class _Iter>
482 : __iterator_traits<_Iter, __has_iterator_category<_Iter>::value> {};
618 template <class _Iter>
620 : public iterator<typename iterator_traits<_Iter>::iterator_category,
621 typename iterator_traits<_Iter>::value_type,
622 typename iterator_traits<_Iter>::difference_type,
623 typename iterator_traits<_Iter>::pointer,
624 typename iterator_traits<_Iter>::reference>
627 /*mutable*/ _Iter __t; // no longer used as of LWG #2360, not removed due to ABI break
629 _Iter current;
631 typedef _Iter iterator_type;
632 typedef typename iterator_traits<_Iter>::difference_type difference_type;
633 typedef typename iterator_traits<_Iter>::reference reference;
634 typedef typename iterator_traits<_Iter>::pointer pointer;
639 explicit reverse_iterator(_Iter __x) : __t(__x), current(__x) {}
648 _Iter base() const {return current;}
650 reference operator*() const {_Iter __tmp = current; return *--__tmp;}
740 template <class _Iter>
742 reverse_iterator<_Iter>
743 operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x)
745 return reverse_iterator<_Iter>(__x.base() - __n);
749 template <class _Iter>
751 reverse_iterator<_Iter> make_reverse_iterator(_Iter __i)
753 return reverse_iterator<_Iter>(__i);
1039 template <class _Iter>
1043 _Iter __i;
1045 typedef _Iter iterator_type;
1064 explicit move_iterator(_Iter __x) : __i(__x) {}
1068 _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 _Iter base() const {return __i;}
1160 template <class _Iter>
1162 move_iterator<_Iter>
1163 operator+(typename move_iterator<_Iter>::difference_type __n, const move_iterator<_Iter>& __x)
1165 return move_iterator<_Iter>(__x.base() + __n);
1168 template <class _Iter>
1170 move_iterator<_Iter>
1171 make_move_iterator(_Iter __i)
1173 return move_iterator<_Iter>(__i);
1178 template <class _Iter> class __wrap_iter;
1223 template <class _Iter>
1225 __wrap_iter<_Iter>
1226 operator+(typename __wrap_iter<_Iter>::difference_type, __wrap_iter<_Iter>) _NOEXCEPT_DEBUG;
1257 template <class _Iter>
1261 typedef _Iter iterator_type;
1573 template <class _Iter>
1575 __wrap_iter<_Iter>
1576 operator+(typename __wrap_iter<_Iter>::difference_type __n,
1577 __wrap_iter<_Iter> __x) _NOEXCEPT_DEBUG
1583 template <class _Iter>
1585 : public _LIBCPP_BOOL_CONSTANT(is_pointer<_Iter>::value) {};
1587 template <class _Iter>
1588 struct __libcpp_is_trivial_iterator<move_iterator<_Iter> >
1589 : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};
1591 template <class _Iter>
1592 struct __libcpp_is_trivial_iterator<reverse_iterator<_Iter> >
1593 : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};
1595 template <class _Iter>
1596 struct __libcpp_is_trivial_iterator<__wrap_iter<_Iter> >
1597 : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};