32 #ifndef _GLIBCXX_PARALLEL_ITERATOR_H
33 #define _GLIBCXX_PARALLEL_ITERATOR_H 1
38 namespace __gnu_parallel
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; }
_Iterator2 second
first is a copy of the first object
_Iterator1 first
second_type is the second bound type
Struct holding two objects of arbitrary type.
A triple of iterators. The usual iterator operations are applied to all three child iterators...
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. This file is a GNU parallel extension to the Standard C++ Library.