32 #ifndef _GLIBCXX_PARALLEL_ITERATOR_H
33 #define _GLIBCXX_PARALLEL_ITERATOR_H 1
38 namespace __gnu_parallel
43 template<
typename Iterator1,
typename Iterator2,
typename IteratorCategory>
51 typedef IteratorCategory iterator_category;
52 typedef void value_type;
55 typedef typename traits_type::difference_type difference_type;
93 operator Iterator2()
const
97 operator=(
const type& other)
105 operator+(difference_type delta)
const
109 operator-(
const type& other)
const
117 template<
typename Iterator1,
typename Iterator2,
typename Iterator3,
118 typename IteratorCategory>
123 IteratorCategory>
type;
126 typedef IteratorCategory iterator_category;
127 typedef void value_type;
128 typedef typename std::iterator_traits<Iterator1>::difference_type
140 const Iterator3& _third)
160 {
return type(first++, second++, third++); }
175 {
return type(first--, second--, third--); }
178 operator Iterator3()
const
182 operator=(
const type& other)
185 second = other.second;
191 operator+(difference_type delta)
const
192 {
return type(first + delta, second + delta, third + delta); }
195 operator-(
const type& other)
const
196 {
return first - other.first; }