32 #ifndef _GLIBCXX_PARALLEL_ITERATOR_H 33 #define _GLIBCXX_PARALLEL_ITERATOR_H 1 43 template<
typename _Iterator1,
typename _Iterator2,
44 typename _IteratorCategory>
51 typedef _IteratorCategory iterator_category;
52 typedef void value_type;
54 typedef std::iterator_traits<_Iterator1> _TraitsType;
55 typedef typename _TraitsType::difference_type difference_type;
61 _IteratorPair(
const _Iterator1& __first,
const _Iterator2& __second)
62 :
_Base(__first, __second) { }
93 operator _Iterator2()
const 105 operator+(difference_type __delta)
const 118 template<
typename _Iterator1,
typename _Iterator2,
typename _Iterator3,
119 typename _IteratorCategory>
123 typedef _IteratorCategory iterator_category;
124 typedef void value_type;
125 typedef typename std::iterator_traits<_Iterator1>::difference_type
131 _Iterator2 _M_second;
137 const _Iterator3& __third)
140 _M_second = __second;
175 operator _Iterator3()
const 181 _M_first = __other._M_first;
182 _M_second = __other._M_second;
183 _M_third = __other._M_third;
188 operator+(difference_type __delta)
const 190 _M_third + __delta); }
194 {
return _M_first - __other._M_first; }
Struct holding two objects of arbitrary type.
A pair of iterators. The usual iterator operations are applied to both child iterators.
Includes the original header files concerned with iterators except for stream iterators....
GNU parallel code for public use.
_Iterator1 first
second_type is the second bound type
_Iterator2 second
first is a copy of the first object
A triple of iterators. The usual iterator operations are applied to all three child iterators.