Lines Matching refs:_Iter
468 template <class _Iter, bool> struct __iterator_traits_impl {};
470 template <class _Iter>
471 struct __iterator_traits_impl<_Iter, true>
473 typedef typename _Iter::difference_type difference_type;
474 typedef typename _Iter::value_type value_type;
475 typedef typename _Iter::pointer pointer;
476 typedef typename _Iter::reference reference;
477 typedef typename _Iter::iterator_category iterator_category;
480 template <class _Iter, bool> struct __iterator_traits {};
482 template <class _Iter>
483 struct __iterator_traits<_Iter, true>
486 _Iter,
487 is_convertible<typename _Iter::iterator_category, input_iterator_tag>::value ||
488 is_convertible<typename _Iter::iterator_category, output_iterator_tag>::value
497 template <class _Iter>
499 : __iterator_traits<_Iter, __has_iterator_typedefs<_Iter>::value> {};
649 template <class _Iter>
651 : public iterator<typename iterator_traits<_Iter>::iterator_category,
652 typename iterator_traits<_Iter>::value_type,
653 typename iterator_traits<_Iter>::difference_type,
654 typename iterator_traits<_Iter>::pointer,
655 typename iterator_traits<_Iter>::reference>
658 /*mutable*/ _Iter __t; // no longer used as of LWG #2360, not removed due to ABI break
660 static_assert(!__is_stashing_iterator<_Iter>::value,
665 _Iter current;
667 typedef _Iter iterator_type;
668 typedef typename iterator_traits<_Iter>::difference_type difference_type;
669 typedef typename iterator_traits<_Iter>::reference reference;
670 typedef typename iterator_traits<_Iter>::pointer pointer;
675 explicit reverse_iterator(_Iter __x) : __t(__x), current(__x) {}
684 _Iter base() const {return current;}
686 reference operator*() const {_Iter __tmp = current; return *--__tmp;}
776 template <class _Iter>
778 reverse_iterator<_Iter>
779 operator+(typename reverse_iterator<_Iter>::difference_type __n, const reverse_iterator<_Iter>& __x)
781 return reverse_iterator<_Iter>(__x.base() - __n);
785 template <class _Iter>
787 reverse_iterator<_Iter> make_reverse_iterator(_Iter __i)
789 return reverse_iterator<_Iter>(__i);
1096 template <class _Iter>
1100 _Iter __i;
1102 typedef _Iter iterator_type;
1121 explicit move_iterator(_Iter __x) : __i(__x) {}
1125 _LIBCPP_INLINE_VISIBILITY _LIBCPP_CONSTEXPR_AFTER_CXX14 _Iter base() const {return __i;}
1217 template <class _Iter>
1219 move_iterator<_Iter>
1220 operator+(typename move_iterator<_Iter>::difference_type __n, const move_iterator<_Iter>& __x)
1222 return move_iterator<_Iter>(__x.base() + __n);
1225 template <class _Iter>
1227 move_iterator<_Iter>
1228 make_move_iterator(_Iter __i)
1230 return move_iterator<_Iter>(__i);
1235 template <class _Iter> class __wrap_iter;
1280 template <class _Iter>
1282 __wrap_iter<_Iter>
1283 operator+(typename __wrap_iter<_Iter>::difference_type, __wrap_iter<_Iter>) _NOEXCEPT_DEBUG;
1314 template <class _Iter>
1318 typedef _Iter iterator_type;
1633 template <class _Iter>
1635 __wrap_iter<_Iter>
1636 operator+(typename __wrap_iter<_Iter>::difference_type __n,
1637 __wrap_iter<_Iter> __x) _NOEXCEPT_DEBUG
1643 template <class _Iter>
1645 : public _LIBCPP_BOOL_CONSTANT(is_pointer<_Iter>::value) {};
1647 template <class _Iter>
1648 struct __libcpp_is_trivial_iterator<move_iterator<_Iter> >
1649 : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};
1651 template <class _Iter>
1652 struct __libcpp_is_trivial_iterator<reverse_iterator<_Iter> >
1653 : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};
1655 template <class _Iter>
1656 struct __libcpp_is_trivial_iterator<__wrap_iter<_Iter> >
1657 : public _LIBCPP_BOOL_CONSTANT(__libcpp_is_trivial_iterator<_Iter>::value) {};