33 #ifndef _GLIBCXX_PARALLEL_FOR_EACH_SELECTORS_H
34 #define _GLIBCXX_PARALLEL_FOR_EACH_SELECTORS_H 1
38 namespace __gnu_parallel
91 template<
typename Val>
101 template<
typename It>
107 template<
typename Op>
111 *i.second = o(*i.first);
117 template<
typename It>
123 template<
typename Op>
127 *i.third = o(*i.first, *i.second);
133 template<
typename It,
typename T>
157 template<
typename It,
typename Op,
typename T>
181 template<
typename It,
typename Diff>
188 template<
typename Val>
191 {
return (v == *i) ? 1 : 0; }
195 template<
typename It,
typename Diff>
202 template<
typename Op>
205 {
return (o(*i)) ? 1 : 0; }
209 template<
typename It>
216 template<
typename Op>
217 typename std::iterator_traits<It>::value_type
operator()(Op o, It i)
222 template<
typename It,
typename It2,
typename T>
242 template<
typename Op>
246 typename std::iterator_traits<It>::difference_type position
253 template<
typename It>
260 template<
typename Op>
269 template<
typename It>
272 template<
typename Op>
274 operator()(Op& o, It i)
276 typename It::first_type go_back_one = i.first;
278 *i.second = o(*i.first, *go_back_one);
293 template<
typename It>
302 operator()(
bool ,
bool )
const
307 template<
typename Comp,
typename It>
316 operator()(It x, It y)
326 template<
typename Comp,
typename It>
335 operator()(It x, It y)
345 template<
typename BinOp>
353 template<
typename Result,
typename Addend>
355 operator()(
const Result& x,
const Addend& y)
356 {
return binop(x, y); }