29 #ifndef _GLIBCXX_PARALLEL_ALGORITHMFWD_H
30 #define _GLIBCXX_PARALLEL_ALGORITHMFWD_H 1
32 #pragma GCC system_header
37 namespace std _GLIBCXX_VISIBILITY(default)
41 template<
typename _FIter>
43 adjacent_find(_FIter, _FIter);
45 template<
typename _FIter>
49 template<
typename _FIter,
typename _IterTag>
51 __adjacent_find_switch(_FIter, _FIter, _IterTag);
53 template<
typename _RAIter>
55 __adjacent_find_switch(_RAIter, _RAIter, random_access_iterator_tag);
58 template<
typename _FIter,
typename _BiPredicate>
60 adjacent_find(_FIter, _FIter, _BiPredicate);
62 template<
typename _FIter,
typename _BiPredicate>
64 adjacent_find(_FIter, _FIter, _BiPredicate,
67 template<
typename _FIter,
typename _BiPredicate,
typename _IterTag>
69 __adjacent_find_switch(_FIter, _FIter, _BiPredicate, _IterTag);
71 template<
typename _RAIter,
typename _BiPredicate>
73 __adjacent_find_switch(_RAIter, _RAIter, _BiPredicate,
74 random_access_iterator_tag);
77 template<
typename _IIter,
typename _Tp>
78 typename iterator_traits<_IIter>::difference_type
79 count(_IIter, _IIter,
const _Tp&);
81 template<
typename _IIter,
typename _Tp>
82 typename iterator_traits<_IIter>::difference_type
85 template<
typename _IIter,
typename _Tp>
86 typename iterator_traits<_IIter>::difference_type
89 template<
typename _IIter,
typename _Tp,
typename _IterTag>
90 typename iterator_traits<_IIter>::difference_type
91 __count_switch(_IIter, _IIter,
const _Tp&, _IterTag);
93 template<
typename _RAIter,
typename _Tp>
94 typename iterator_traits<_RAIter>::difference_type
95 __count_switch(_RAIter, _RAIter,
const _Tp&, random_access_iterator_tag,
100 template<
typename _IIter,
typename _Predicate>
101 typename iterator_traits<_IIter>::difference_type
102 count_if(_IIter, _IIter, _Predicate);
104 template<
typename _IIter,
typename _Predicate>
105 typename iterator_traits<_IIter>::difference_type
108 template<
typename _IIter,
typename _Predicate>
109 typename iterator_traits<_IIter>::difference_type
112 template<
typename _IIter,
typename _Predicate,
typename _IterTag>
113 typename iterator_traits<_IIter>::difference_type
114 __count_if_switch(_IIter, _IIter, _Predicate, _IterTag);
116 template<
typename _RAIter,
typename _Predicate>
117 typename iterator_traits<_RAIter>::difference_type
118 __count_if_switch(_RAIter, _RAIter, _Predicate, random_access_iterator_tag,
123 template<
typename _IIter1,
typename _IIter2>
127 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
129 equal(_IIter1, _IIter1, _IIter2, _Predicate,
132 template<
typename _IIter1,
typename _IIter2>
135 equal(_IIter1, _IIter1, _IIter2);
137 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
140 equal(_IIter1, _IIter1, _IIter2, _Predicate);
142 template<
typename _IIter,
typename _Tp>
146 template<
typename _IIter,
typename _Tp>
148 find(_IIter, _IIter,
const _Tp& __val);
150 template<
typename _IIter,
typename _Tp,
typename _IterTag>
152 __find_switch(_IIter, _IIter,
const _Tp&, _IterTag);
154 template<
typename _RAIter,
typename _Tp>
156 __find_switch(_RAIter, _RAIter,
const _Tp&, random_access_iterator_tag);
158 template<
typename _IIter,
typename _Predicate>
162 template<
typename _IIter,
typename _Predicate>
164 find_if(_IIter, _IIter, _Predicate);
166 template<
typename _IIter,
typename _Predicate,
typename _IterTag>
168 __find_if_switch(_IIter, _IIter, _Predicate, _IterTag);
170 template<
typename _RAIter,
typename _Predicate>
172 __find_if_switch(_RAIter, _RAIter, _Predicate, random_access_iterator_tag);
174 template<
typename _IIter,
typename _FIter>
176 find_first_of(_IIter, _IIter, _FIter, _FIter,
179 template<
typename _IIter,
typename _FIter,
typename _BiPredicate>
181 find_first_of(_IIter, _IIter, _FIter, _FIter, _BiPredicate,
184 template<
typename _IIter,
typename _FIter,
typename _BiPredicate>
186 find_first_of(_IIter, _IIter, _FIter, _FIter, _BiPredicate);
188 template<
typename _IIter,
typename _FIter>
190 find_first_of(_IIter, _IIter, _FIter, _FIter);
192 template<
typename _IIter,
typename _FIter,
193 typename _IterTag1,
typename _IterTag2>
195 __find_first_of_switch(
196 _IIter, _IIter, _FIter, _FIter, _IterTag1, _IterTag2);
198 template<
typename _RAIter,
typename _FIter,
typename _BiPredicate,
201 __find_first_of_switch(_RAIter, _RAIter, _FIter, _FIter, _BiPredicate,
202 random_access_iterator_tag, _IterTag);
204 template<
typename _IIter,
typename _FIter,
typename _BiPredicate,
205 typename _IterTag1,
typename _IterTag2>
207 __find_first_of_switch(_IIter, _IIter, _FIter, _FIter, _BiPredicate,
208 _IterTag1, _IterTag2);
211 template<
typename _IIter,
typename _Function>
213 for_each(_IIter, _IIter, _Function);
215 template<
typename _IIter,
typename _Function>
219 template<
typename _Iterator,
typename _Function>
223 template<
typename _IIter,
typename _Function,
typename _IterTag>
225 __for_each_switch(_IIter, _IIter, _Function, _IterTag);
227 template<
typename _RAIter,
typename _Function>
229 __for_each_switch(_RAIter, _RAIter, _Function, random_access_iterator_tag,
234 template<
typename _FIter,
typename _Generator>
236 generate(_FIter, _FIter, _Generator);
238 template<
typename _FIter,
typename _Generator>
242 template<
typename _FIter,
typename _Generator>
246 template<
typename _FIter,
typename _Generator,
typename _IterTag>
248 __generate_switch(_FIter, _FIter, _Generator, _IterTag);
250 template<
typename _RAIter,
typename _Generator>
252 __generate_switch(_RAIter, _RAIter, _Generator, random_access_iterator_tag,
256 template<
typename _OIter,
typename _Size,
typename _Generator>
258 generate_n(_OIter, _Size, _Generator);
260 template<
typename _OIter,
typename _Size,
typename _Generator>
264 template<
typename _OIter,
typename _Size,
typename _Generator>
268 template<
typename _OIter,
typename _Size,
typename _Generator,
271 __generate_n_switch(_OIter, _Size, _Generator, _IterTag);
273 template<
typename _RAIter,
typename _Size,
typename _Generator>
275 __generate_n_switch(_RAIter, _Size, _Generator, random_access_iterator_tag,
279 template<
typename _IIter1,
typename _IIter2>
281 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2,
284 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
286 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Predicate,
289 template<
typename _IIter1,
typename _IIter2>
292 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2);
294 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
297 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Predicate);
299 template<
typename _IIter1,
typename _IIter2,
300 typename _Predicate,
typename _IterTag1,
typename _IterTag2>
302 __lexicographical_compare_switch(_IIter1, _IIter1, _IIter2, _IIter2,
303 _Predicate, _IterTag1, _IterTag2);
305 template<
typename _RAIter1,
typename _RAIter2,
typename _Predicate>
307 __lexicographical_compare_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
308 _Predicate, random_access_iterator_tag,
309 random_access_iterator_tag);
312 template<
typename _IIter1,
typename _IIter2>
313 pair<_IIter1, _IIter2>
316 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
317 pair<_IIter1, _IIter2>
318 mismatch(_IIter1, _IIter1, _IIter2, _Predicate,
321 template<
typename _IIter1,
typename _IIter2>
322 pair<_IIter1, _IIter2>
323 mismatch(_IIter1, _IIter1, _IIter2);
325 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
326 pair<_IIter1, _IIter2>
327 mismatch(_IIter1, _IIter1, _IIter2, _Predicate);
329 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
330 typename _IterTag1,
typename _IterTag2>
331 pair<_IIter1, _IIter2>
332 __mismatch_switch(_IIter1, _IIter1, _IIter2, _Predicate,
333 _IterTag1, _IterTag2);
335 template<
typename _RAIter1,
typename _RAIter2,
typename _Predicate>
336 pair<_RAIter1, _RAIter2>
337 __mismatch_switch(_RAIter1, _RAIter1, _RAIter2, _Predicate,
338 random_access_iterator_tag, random_access_iterator_tag);
340 template<
typename _FIter1,
typename _FIter2>
344 template<
typename _FIter1,
typename _FIter2>
346 search(_FIter1, _FIter1, _FIter2, _FIter2);
348 template<
typename _FIter1,
typename _FIter2,
typename _BiPredicate>
350 search(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate,
353 template<
typename _FIter1,
typename _FIter2,
typename _BiPredicate>
355 search(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate);
357 template<
typename _RAIter1,
typename _RAIter2>
359 __search_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
360 random_access_iterator_tag, random_access_iterator_tag);
362 template<
typename _FIter1,
typename _FIter2,
typename _IterTag1,
365 __search_switch(_FIter1, _FIter1, _FIter2, _FIter2, _IterTag1, _IterTag2);
367 template<
typename _RAIter1,
typename _RAIter2,
typename _BiPredicate>
369 __search_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, _BiPredicate,
370 random_access_iterator_tag, random_access_iterator_tag);
372 template<
typename _FIter1,
typename _FIter2,
typename _BiPredicate,
373 typename _IterTag1,
typename _IterTag2>
375 __search_switch(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate,
376 _IterTag1, _IterTag2);
378 template<
typename _FIter,
typename _Integer,
typename _Tp>
380 search_n(_FIter, _FIter, _Integer,
const _Tp&,
383 template<
typename _FIter,
typename _Integer,
typename _Tp,
384 typename _BiPredicate>
386 search_n(_FIter, _FIter, _Integer,
const _Tp&, _BiPredicate,
389 template<
typename _FIter,
typename _Integer,
typename _Tp>
391 search_n(_FIter, _FIter, _Integer,
const _Tp&);
393 template<
typename _FIter,
typename _Integer,
typename _Tp,
394 typename _BiPredicate>
396 search_n(_FIter, _FIter, _Integer,
const _Tp&, _BiPredicate);
398 template<
typename _RAIter,
typename _Integer,
typename _Tp,
399 typename _BiPredicate>
401 __search_n_switch(_RAIter, _RAIter, _Integer,
const _Tp&,
402 _BiPredicate, random_access_iterator_tag);
404 template<
typename _FIter,
typename _Integer,
typename _Tp,
405 typename _BiPredicate,
typename _IterTag>
407 __search_n_switch(_FIter, _FIter, _Integer,
const _Tp&,
408 _BiPredicate, _IterTag);
411 template<
typename _IIter,
typename _OIter,
typename _UnaryOperation>
413 transform(_IIter, _IIter, _OIter, _UnaryOperation);
415 template<
typename _IIter,
typename _OIter,
typename _UnaryOperation>
417 transform(_IIter, _IIter, _OIter, _UnaryOperation,
420 template<
typename _IIter,
typename _OIter,
typename _UnaryOperation>
422 transform(_IIter, _IIter, _OIter, _UnaryOperation,
425 template<
typename _IIter,
typename _OIter,
typename _UnaryOperation,
426 typename _IterTag1,
typename _IterTag2>
428 __transform1_switch(_IIter, _IIter, _OIter, _UnaryOperation,
429 _IterTag1, _IterTag2);
432 template<
typename _RAIIter,
typename _RAOIter,
typename _UnaryOperation>
434 __transform1_switch(_RAIIter, _RAIIter, _RAOIter, _UnaryOperation,
435 random_access_iterator_tag, random_access_iterator_tag,
440 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
441 typename _BiOperation>
443 transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation);
445 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
446 typename _BiOperation>
448 transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation,
451 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
452 typename _BiOperation>
454 transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation,
457 template<
typename _RAIter1,
typename _RAIter2,
typename _RAIter3,
458 typename _BiOperation>
460 __transform2_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter3, _BiOperation,
461 random_access_iterator_tag, random_access_iterator_tag,
462 random_access_iterator_tag,
466 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
467 typename _BiOperation,
typename _Tag1,
468 typename _Tag2,
typename _Tag3>
470 __transform2_switch(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation,
471 _Tag1, _Tag2, _Tag3);
474 template<
typename _FIter,
typename _Tp>
476 replace(_FIter, _FIter,
const _Tp&,
const _Tp&);
478 template<
typename _FIter,
typename _Tp>
480 replace(_FIter, _FIter,
const _Tp&,
const _Tp&,
483 template<
typename _FIter,
typename _Tp>
485 replace(_FIter, _FIter,
const _Tp&,
const _Tp&,
488 template<
typename _FIter,
typename _Tp,
typename _IterTag>
490 __replace_switch(_FIter, _FIter,
const _Tp&,
const _Tp&, _IterTag);
492 template<
typename _RAIter,
typename _Tp>
494 __replace_switch(_RAIter, _RAIter,
const _Tp&,
const _Tp&,
498 template<
typename _FIter,
typename _Predicate,
typename _Tp>
500 replace_if(_FIter, _FIter, _Predicate,
const _Tp&);
502 template<
typename _FIter,
typename _Predicate,
typename _Tp>
504 replace_if(_FIter, _FIter, _Predicate,
const _Tp&,
507 template<
typename _FIter,
typename _Predicate,
typename _Tp>
509 replace_if(_FIter, _FIter, _Predicate,
const _Tp&,
512 template<
typename _FIter,
typename _Predicate,
typename _Tp,
515 __replace_if_switch(_FIter, _FIter, _Predicate,
const _Tp&, _IterTag);
517 template<
typename _RAIter,
typename _Predicate,
typename _Tp>
519 __replace_if_switch(_RAIter, _RAIter, _Predicate,
const _Tp&,
520 random_access_iterator_tag,
524 template<
typename _FIter>
526 max_element(_FIter, _FIter);
528 template<
typename _FIter>
532 template<
typename _FIter>
536 template<
typename _FIter,
typename _Compare>
538 max_element(_FIter, _FIter, _Compare);
540 template<
typename _FIter,
typename _Compare>
544 template<
typename _FIter,
typename _Compare>
548 template<
typename _FIter,
typename _Compare,
typename _IterTag>
550 __max_element_switch(_FIter, _FIter, _Compare, _IterTag);
552 template<
typename _RAIter,
typename _Compare>
554 __max_element_switch(
555 _RAIter, _RAIter, _Compare, random_access_iterator_tag,
560 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
562 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
565 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
568 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare,
571 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
574 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
576 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
578 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
580 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
581 typename _Compare,
typename _IterTag1,
typename _IterTag2,
584 __merge_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare,
585 _IterTag1, _IterTag2, _IterTag3);
587 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
590 __merge_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare,
591 random_access_iterator_tag, random_access_iterator_tag,
592 random_access_iterator_tag);
595 template<
typename _FIter>
597 min_element(_FIter, _FIter);
599 template<
typename _FIter>
603 template<
typename _FIter>
605 min_element(_FIter, _FIter,
608 template<
typename _FIter,
typename _Compare>
610 min_element(_FIter, _FIter, _Compare);
612 template<
typename _FIter,
typename _Compare>
616 template<
typename _FIter,
typename _Compare>
620 template<
typename _FIter,
typename _Compare,
typename _IterTag>
622 __min_element_switch(_FIter, _FIter, _Compare, _IterTag);
624 template<
typename _RAIter,
typename _Compare>
626 __min_element_switch(
627 _RAIter, _RAIter, _Compare, random_access_iterator_tag,
631 template<
typename _RAIter>
635 template<
typename _RAIter,
typename _Compare>
637 nth_element(_RAIter, _RAIter, _RAIter, _Compare,
640 template<
typename _RAIter,
typename _Compare>
642 nth_element(_RAIter, _RAIter, _RAIter, _Compare);
644 template<
typename _RAIter>
646 nth_element(_RAIter, _RAIter, _RAIter);
648 template<
typename _RAIter,
typename _Compare>
650 partial_sort(_RAIter, _RAIter, _RAIter, _Compare,
653 template<
typename _RAIter>
657 template<
typename _RAIter,
typename _Compare>
659 partial_sort(_RAIter, _RAIter, _RAIter, _Compare);
661 template<
typename _RAIter>
663 partial_sort(_RAIter, _RAIter, _RAIter);
665 template<
typename _FIter,
typename _Predicate>
669 template<
typename _FIter,
typename _Predicate>
671 partition(_FIter, _FIter, _Predicate);
673 template<
typename _FIter,
typename _Predicate,
typename _IterTag>
675 __partition_switch(_FIter, _FIter, _Predicate, _IterTag);
677 template<
typename _RAIter,
typename _Predicate>
680 _RAIter, _RAIter, _Predicate, random_access_iterator_tag);
682 template<
typename _RAIter>
686 template<
typename _RAIter,
typename _RandomNumberGenerator>
688 random_shuffle(_RAIter, _RAIter, _RandomNumberGenerator&,
691 template<
typename _RAIter>
693 random_shuffle(_RAIter, _RAIter);
695 template<
typename _RAIter,
typename _RandomNumberGenerator>
697 random_shuffle(_RAIter, _RAIter,
698 #
if __cplusplus >= 201103L
699 _RandomNumberGenerator&&);
701 _RandomNumberGenerator&);
704 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
706 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
709 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
712 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate,
715 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
717 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
719 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
722 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate);
724 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
725 typename _OIter,
typename _IterTag1,
typename _IterTag2,
728 __set_union_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
729 _Predicate, _IterTag1, _IterTag2, _IterTag3);
731 template<
typename _RAIter1,
typename _RAIter2,
typename _Output_RAIter,
734 __set_union_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, _Output_RAIter,
735 _Predicate, random_access_iterator_tag,
736 random_access_iterator_tag, random_access_iterator_tag);
738 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
740 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
743 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
746 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate,
749 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
751 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
753 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
756 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate);
758 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
759 typename _OIter,
typename _IterTag1,
typename _IterTag2,
762 __set_intersection_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
763 _Predicate, _IterTag1, _IterTag2, _IterTag3);
765 template<
typename _RAIter1,
typename _RAIter2,
typename _Output_RAIter,
768 __set_intersection_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
769 _Output_RAIter, _Predicate,
770 random_access_iterator_tag,
771 random_access_iterator_tag,
772 random_access_iterator_tag);
774 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
776 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
779 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
782 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
785 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
787 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
789 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
792 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
795 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
796 typename _OIter,
typename _IterTag1,
typename _IterTag2,
799 __set_symmetric_difference_switch(_IIter1, _IIter1, _IIter2, _IIter2,
800 _OIter, _Predicate, _IterTag1, _IterTag2,
803 template<
typename _RAIter1,
typename _RAIter2,
typename _Output_RAIter,
806 __set_symmetric_difference_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
807 _Output_RAIter, _Predicate,
808 random_access_iterator_tag,
809 random_access_iterator_tag,
810 random_access_iterator_tag);
813 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
815 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
818 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
821 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate,
824 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
826 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
828 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
831 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate);
833 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
834 typename _OIter,
typename _IterTag1,
typename _IterTag2,
837 __set_difference_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
838 _Predicate, _IterTag1, _IterTag2, _IterTag3);
840 template<
typename _RAIter1,
typename _RAIter2,
typename _Output_RAIter,
843 __set_difference_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
844 _Output_RAIter, _Predicate,
845 random_access_iterator_tag,
846 random_access_iterator_tag,
847 random_access_iterator_tag);
850 template<
typename _RAIter>
854 template<
typename _RAIter,
typename _Compare>
858 template<
typename _RAIter>
860 sort(_RAIter, _RAIter);
862 template<
typename _RAIter,
typename _Compare>
864 sort(_RAIter, _RAIter, _Compare);
866 template<
typename _RAIter>
870 template<
typename _RAIter,
typename _Compare>
874 template<
typename _RAIter>
876 stable_sort(_RAIter, _RAIter);
878 template<
typename _RAIter,
typename _Compare>
880 stable_sort(_RAIter, _RAIter, _Compare);
882 template<
typename _IIter,
typename _OIter>
886 template<
typename _IIter,
typename _OIter,
typename _Predicate>
888 unique_copy(_IIter, _IIter, _OIter, _Predicate,
891 template<
typename _IIter,
typename _OIter>
893 unique_copy(_IIter, _IIter, _OIter);
895 template<
typename _IIter,
typename _OIter,
typename _Predicate>
897 unique_copy(_IIter, _IIter, _OIter, _Predicate);
899 template<
typename _IIter,
typename _OIter,
typename _Predicate,
900 typename _IterTag1,
typename _IterTag2>
902 __unique_copy_switch(_IIter, _IIter, _OIter, _Predicate,
903 _IterTag1, _IterTag2);
905 template<
typename _RAIter,
typename _RandomAccess_OIter,
typename _Predicate>
907 __unique_copy_switch(_RAIter, _RAIter, _RandomAccess_OIter, _Predicate,
908 random_access_iterator_tag, random_access_iterator_tag);
Runtime settings and tuning parameters, heuristics to decide whether to use parallelized algorithms.
Tags for compile-time selection. This file is a GNU parallel extension to the Standard C++ Library.
ISO C++ entities toplevel namespace is std.
_Parallelism
Run-time equivalents for the compile-time tags.
@ parallel_balanced
Parallel balanced (work-stealing).
@ parallel_unbalanced
Parallel unbalanced (equal-sized chunks).
Forces sequential execution at compile time.