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,
71 std::pair<_RAIter1, _RAIter2>
74 _RAIter2 __begin2, _Pred __pred)
75 {
return std::make_pair(find_if(__begin1, __end1, __pred,
87 template<
typename _RAIter1,
typename _RAIter2,
93 return __pred(*__i1, *(__i1 + 1));
102 template<
typename _RAIter1,
typename _RAIter2,
104 std::pair<_RAIter1, _RAIter2>
107 _RAIter2 __begin2, _Pred __pred)
110 _RAIter1 __spot = adjacent_find(__begin1, __end1 + 1,
112 if (__spot == (__end1 + 1))
114 return std::make_pair(__spot, __begin2);
127 template<
typename _RAIter1,
typename _RAIter2,
131 {
return !__pred(*__i1, *__i2); }
140 template<
typename _RAIter1,
typename _RAIter2,
142 std::pair<_RAIter1, _RAIter2>
145 _RAIter2 __begin2, _Pred __pred)
146 {
return mismatch(__begin1, __end1, __begin2,
152 template<
typename _FIterator>
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,
185 std::pair<_RAIter1, _RAIter2>
188 _RAIter2 __begin2, _Pred __pred)
190 return std::make_pair(find_first_of(__begin1, __end1,
Test inverted predicate on a single element.
Definition: find_selectors.h:119
_FIterator _M_end
Definition: find_selectors.h:156
std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm(_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred)
Corresponding sequential algorithm on a sequence.
Definition: find_selectors.h:143
bool operator()(_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)
Test on one position.
Definition: find_selectors.h:169
std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm(_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred)
Corresponding sequential algorithm on a sequence.
Definition: find_selectors.h:72
Base class of all __gnu_parallel::__find_template selectors.
Definition: find_selectors.h:43
bool operator()(_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)
Test on one position.
Definition: find_selectors.h:130
Test predicate on several elements.
Definition: find_selectors.h:153
Test predicate on two adjacent elements.
Definition: find_selectors.h:80
Includes the original header files concerned with iterators except for stream iterators. This file is a GNU parallel extension to the Standard C++ Library.
_FIterator _M_begin
Definition: find_selectors.h:155
Forces sequential execution at compile time.
Definition: tags.h:42
std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm(_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred)
Corresponding sequential algorithm on a sequence.
Definition: find_selectors.h:105
std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm(_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred)
Corresponding sequential algorithm on a sequence.
Definition: find_selectors.h:186
__find_first_of_selector(_FIterator __begin, _FIterator __end)
Definition: find_selectors.h:158
bool operator()(_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)
Test on one position.
Definition: find_selectors.h:60
Test predicate on a single element, used for std::find() and std::find_if ().
Definition: find_selectors.h:50
bool operator()(_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)
Test on one position.
Definition: find_selectors.h:90