32 #ifndef _GLIBCXX_PARALLEL_ITERATOR_H
33 #define _GLIBCXX_PARALLEL_ITERATOR_H 1
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;
62 : base_type(first, second) { }
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; }
A pair of iterators. The usual iterator operations are applied to both child iterators.
Iterator1 first
first is a copy of the first object
GNU parallel code for public use.
Iterator2 second
second is a copy of the second object
pair holds two objects of arbitrary type.
Includes the original header files concerned with iterators except for stream iterators. This file is a GNU parallel extension to the Standard C++ Library.
A triple of iterators. The usual iterator operations are applied to all three child iterators...