33 #ifndef _GLIBCXX_PARALLEL_FIND_SELECTORS_H
34 #define _GLIBCXX_PARALLEL_FIND_SELECTORS_H 1
40 namespace __gnu_parallel
57 template<
typename _RAIter1,
typename _RAIter2,
61 {
return __pred(*__i1); }
69 template<
typename _RAIter1,
typename _RAIter2,
74 _RAIter2 __begin2, _Pred __pred)
87 template<
typename _RAIter1,
typename _RAIter2,
93 return __pred(*__i1, *(__i1 + 1));
102 template<
typename _RAIter1,
typename _RAIter2,
107 _RAIter2 __begin2, _Pred __pred)
110 _RAIter1 __spot = adjacent_find(__begin1, __end1 + 1,
112 if (__spot == (__end1 + 1))
127 template<
typename _RAIter1,
typename _RAIter2,
131 {
return !__pred(*__i1, *__i2); }
140 template<
typename _RAIter1,
typename _RAIter2,
145 _RAIter2 __begin2, _Pred __pred)
146 {
return mismatch(__begin1, __end1, __begin2,
152 template<
typename _FIterator>
160 : _M_begin(__begin), _M_end(__end) { }
166 template<
typename _RAIter1,
typename _RAIter2,
171 for (_FIterator __pos_in_candidates = _M_begin;
172 __pos_in_candidates != _M_end; ++__pos_in_candidates)
173 if (__pred(*__i1, *__pos_in_candidates))
183 template<
typename _RAIter1,
typename _RAIter2,
188 _RAIter2 __begin2, _Pred __pred)
191 _M_begin, _M_end, __pred,