63 typedef iterator_type iterator;
64 typedef typename std::iterator_traits<iterator_type>::pointer pointer;
65 typedef typename std::iterator_traits<iterator_type>::reference reference;
66 typedef typename std::iterator_traits<iterator_type>::difference_type difference_type;
67 typedef typename std::iterator_traits<iterator_type>::iterator_category iterator_category;
69 iterator_range(iterator first, iterator last);
71 iterator begin()
const;
74 iterator operator->()
const;
75 reference operator*()
const;
76 reference operator[](difference_type index)
const;
78 iterator_range& operator++();
79 iterator_range operator++(
int);
81 const difference_type size()
const;
83 bool operator!()
const;
84 explicit operator bool()
const;
86 void swap(iterator_range& other);