33 #ifndef _GLIBCXX_PARALLEL_FIND_SELECTORS_H
34 #define _GLIBCXX_PARALLEL_FIND_SELECTORS_H 1
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,
Test inverted predicate on a single element.
constexpr pair< typename __decay_and_strip< _T1 >::__type, typename __decay_and_strip< _T2 >::__type > make_pair(_T1 &&__x, _T2 &&__y)
A convenience wrapper for creating a pair from two objects.
Forces sequential execution at compile time.
Includes the original header files concerned with iterators except for stream iterators. This file is a GNU parallel extension to the Standard C++ Library.
Test predicate on a single element, used for std::find() and std::find_if ().
std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm(_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred)
Corresponding sequential algorithm on a sequence.
Tags for compile-time selection. This file is a GNU parallel extension to the Standard C++ Library...
Base class of all __gnu_parallel::__find_template selectors.
bool operator()(_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)
Test on one position.
Test predicate on several elements.
std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm(_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred)
Corresponding sequential algorithm on a sequence.
std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm(_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred)
Corresponding sequential algorithm on a sequence.
GNU parallel code for public use.
bool operator()(_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)
Test on one position.
std::pair< _RAIter1, _RAIter2 > _M_sequential_algorithm(_RAIter1 __begin1, _RAIter1 __end1, _RAIter2 __begin2, _Pred __pred)
Corresponding sequential algorithm on a sequence.
bool operator()(_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)
Test on one position.
Test predicate on two adjacent elements.
Struct holding two objects of arbitrary type.
bool operator()(_RAIter1 __i1, _RAIter2 __i2, _Pred __pred)
Test on one position.