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>
134 equal(_IIter1, _IIter1, _IIter2);
136 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
138 equal(_IIter1, _IIter1, _IIter2, _Predicate);
140 template<
typename _IIter,
typename _Tp>
144 template<
typename _IIter,
typename _Tp>
146 find(_IIter, _IIter,
const _Tp& __val);
148 template<
typename _IIter,
typename _Tp,
typename _IterTag>
150 __find_switch(_IIter, _IIter,
const _Tp&, _IterTag);
152 template<
typename _RAIter,
typename _Tp>
154 __find_switch(_RAIter, _RAIter,
const _Tp&, random_access_iterator_tag);
156 template<
typename _IIter,
typename _Predicate>
160 template<
typename _IIter,
typename _Predicate>
162 find_if(_IIter, _IIter, _Predicate);
164 template<
typename _IIter,
typename _Predicate,
typename _IterTag>
166 __find_if_switch(_IIter, _IIter, _Predicate, _IterTag);
168 template<
typename _RAIter,
typename _Predicate>
170 __find_if_switch(_RAIter, _RAIter, _Predicate, random_access_iterator_tag);
172 template<
typename _IIter,
typename _FIter>
174 find_first_of(_IIter, _IIter, _FIter, _FIter,
177 template<
typename _IIter,
typename _FIter,
typename _BiPredicate>
179 find_first_of(_IIter, _IIter, _FIter, _FIter, _BiPredicate,
182 template<
typename _IIter,
typename _FIter,
typename _BiPredicate>
184 find_first_of(_IIter, _IIter, _FIter, _FIter, _BiPredicate);
186 template<
typename _IIter,
typename _FIter>
188 find_first_of(_IIter, _IIter, _FIter, _FIter);
190 template<
typename _IIter,
typename _FIter,
191 typename _IterTag1,
typename _IterTag2>
193 __find_first_of_switch(
194 _IIter, _IIter, _FIter, _FIter, _IterTag1, _IterTag2);
196 template<
typename _RAIter,
typename _FIter,
typename _BiPredicate,
199 __find_first_of_switch(_RAIter, _RAIter, _FIter, _FIter, _BiPredicate,
200 random_access_iterator_tag, _IterTag);
202 template<
typename _IIter,
typename _FIter,
typename _BiPredicate,
203 typename _IterTag1,
typename _IterTag2>
205 __find_first_of_switch(_IIter, _IIter, _FIter, _FIter, _BiPredicate,
206 _IterTag1, _IterTag2);
209 template<
typename _IIter,
typename _Function>
211 for_each(_IIter, _IIter, _Function);
213 template<
typename _IIter,
typename _Function>
217 template<
typename _Iterator,
typename _Function>
221 template<
typename _IIter,
typename _Function,
typename _IterTag>
223 __for_each_switch(_IIter, _IIter, _Function, _IterTag);
225 template<
typename _RAIter,
typename _Function>
227 __for_each_switch(_RAIter, _RAIter, _Function, random_access_iterator_tag,
232 template<
typename _FIter,
typename _Generator>
234 generate(_FIter, _FIter, _Generator);
236 template<
typename _FIter,
typename _Generator>
240 template<
typename _FIter,
typename _Generator>
244 template<
typename _FIter,
typename _Generator,
typename _IterTag>
246 __generate_switch(_FIter, _FIter, _Generator, _IterTag);
248 template<
typename _RAIter,
typename _Generator>
250 __generate_switch(_RAIter, _RAIter, _Generator, random_access_iterator_tag,
254 template<
typename _OIter,
typename _Size,
typename _Generator>
256 generate_n(_OIter, _Size, _Generator);
258 template<
typename _OIter,
typename _Size,
typename _Generator>
262 template<
typename _OIter,
typename _Size,
typename _Generator>
266 template<
typename _OIter,
typename _Size,
typename _Generator,
269 __generate_n_switch(_OIter, _Size, _Generator, _IterTag);
271 template<
typename _RAIter,
typename _Size,
typename _Generator>
273 __generate_n_switch(_RAIter, _Size, _Generator, random_access_iterator_tag,
277 template<
typename _IIter1,
typename _IIter2>
279 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2,
282 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
284 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Predicate,
287 template<
typename _IIter1,
typename _IIter2>
289 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2);
291 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
293 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Predicate);
295 template<
typename _IIter1,
typename _IIter2,
296 typename _Predicate,
typename _IterTag1,
typename _IterTag2>
298 __lexicographical_compare_switch(_IIter1, _IIter1, _IIter2, _IIter2,
299 _Predicate, _IterTag1, _IterTag2);
301 template<
typename _RAIter1,
typename _RAIter2,
typename _Predicate>
303 __lexicographical_compare_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
304 _Predicate, random_access_iterator_tag,
305 random_access_iterator_tag);
308 template<
typename _IIter1,
typename _IIter2>
309 pair<_IIter1, _IIter2>
312 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
313 pair<_IIter1, _IIter2>
314 mismatch(_IIter1, _IIter1, _IIter2, _Predicate,
317 template<
typename _IIter1,
typename _IIter2>
318 pair<_IIter1, _IIter2>
319 mismatch(_IIter1, _IIter1, _IIter2);
321 template<
typename _IIter1,
typename _IIter2,
typename _Predicate>
322 pair<_IIter1, _IIter2>
323 mismatch(_IIter1, _IIter1, _IIter2, _Predicate);
325 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
326 typename _IterTag1,
typename _IterTag2>
327 pair<_IIter1, _IIter2>
328 __mismatch_switch(_IIter1, _IIter1, _IIter2, _Predicate,
329 _IterTag1, _IterTag2);
331 template<
typename _RAIter1,
typename _RAIter2,
typename _Predicate>
332 pair<_RAIter1, _RAIter2>
333 __mismatch_switch(_RAIter1, _RAIter1, _RAIter2, _Predicate,
334 random_access_iterator_tag, random_access_iterator_tag);
336 template<
typename _FIter1,
typename _FIter2>
340 template<
typename _FIter1,
typename _FIter2>
342 search(_FIter1, _FIter1, _FIter2, _FIter2);
344 template<
typename _FIter1,
typename _FIter2,
typename _BiPredicate>
346 search(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate,
349 template<
typename _FIter1,
typename _FIter2,
typename _BiPredicate>
351 search(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate);
353 template<
typename _RAIter1,
typename _RAIter2>
355 __search_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
356 random_access_iterator_tag, random_access_iterator_tag);
358 template<
typename _FIter1,
typename _FIter2,
typename _IterTag1,
361 __search_switch(_FIter1, _FIter1, _FIter2, _FIter2, _IterTag1, _IterTag2);
363 template<
typename _RAIter1,
typename _RAIter2,
typename _BiPredicate>
365 __search_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, _BiPredicate,
366 random_access_iterator_tag, random_access_iterator_tag);
368 template<
typename _FIter1,
typename _FIter2,
typename _BiPredicate,
369 typename _IterTag1,
typename _IterTag2>
371 __search_switch(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate,
372 _IterTag1, _IterTag2);
374 template<
typename _FIter,
typename _Integer,
typename _Tp>
376 search_n(_FIter, _FIter, _Integer,
const _Tp&,
379 template<
typename _FIter,
typename _Integer,
typename _Tp,
380 typename _BiPredicate>
382 search_n(_FIter, _FIter, _Integer,
const _Tp&, _BiPredicate,
385 template<
typename _FIter,
typename _Integer,
typename _Tp>
387 search_n(_FIter, _FIter, _Integer,
const _Tp&);
389 template<
typename _FIter,
typename _Integer,
typename _Tp,
390 typename _BiPredicate>
392 search_n(_FIter, _FIter, _Integer,
const _Tp&, _BiPredicate);
394 template<
typename _RAIter,
typename _Integer,
typename _Tp,
395 typename _BiPredicate>
397 __search_n_switch(_RAIter, _RAIter, _Integer,
const _Tp&,
398 _BiPredicate, random_access_iterator_tag);
400 template<
typename _FIter,
typename _Integer,
typename _Tp,
401 typename _BiPredicate,
typename _IterTag>
403 __search_n_switch(_FIter, _FIter, _Integer,
const _Tp&,
404 _BiPredicate, _IterTag);
407 template<
typename _IIter,
typename _OIter,
typename _UnaryOperation>
409 transform(_IIter, _IIter, _OIter, _UnaryOperation);
411 template<
typename _IIter,
typename _OIter,
typename _UnaryOperation>
413 transform(_IIter, _IIter, _OIter, _UnaryOperation,
416 template<
typename _IIter,
typename _OIter,
typename _UnaryOperation>
418 transform(_IIter, _IIter, _OIter, _UnaryOperation,
421 template<
typename _IIter,
typename _OIter,
typename _UnaryOperation,
422 typename _IterTag1,
typename _IterTag2>
424 __transform1_switch(_IIter, _IIter, _OIter, _UnaryOperation,
425 _IterTag1, _IterTag2);
428 template<
typename _RAIIter,
typename _RAOIter,
typename _UnaryOperation>
430 __transform1_switch(_RAIIter, _RAIIter, _RAOIter, _UnaryOperation,
431 random_access_iterator_tag, random_access_iterator_tag,
436 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
437 typename _BiOperation>
439 transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation);
441 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
442 typename _BiOperation>
444 transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation,
447 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
448 typename _BiOperation>
450 transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation,
453 template<
typename _RAIter1,
typename _RAIter2,
typename _RAIter3,
454 typename _BiOperation>
456 __transform2_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter3, _BiOperation,
457 random_access_iterator_tag, random_access_iterator_tag,
458 random_access_iterator_tag,
462 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
463 typename _BiOperation,
typename _Tag1,
464 typename _Tag2,
typename _Tag3>
466 __transform2_switch(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation,
467 _Tag1, _Tag2, _Tag3);
470 template<
typename _FIter,
typename _Tp>
472 replace(_FIter, _FIter,
const _Tp&,
const _Tp&);
474 template<
typename _FIter,
typename _Tp>
476 replace(_FIter, _FIter,
const _Tp&,
const _Tp&,
479 template<
typename _FIter,
typename _Tp>
481 replace(_FIter, _FIter,
const _Tp&,
const _Tp&,
484 template<
typename _FIter,
typename _Tp,
typename _IterTag>
486 __replace_switch(_FIter, _FIter,
const _Tp&,
const _Tp&, _IterTag);
488 template<
typename _RAIter,
typename _Tp>
490 __replace_switch(_RAIter, _RAIter,
const _Tp&,
const _Tp&,
494 template<
typename _FIter,
typename _Predicate,
typename _Tp>
496 replace_if(_FIter, _FIter, _Predicate,
const _Tp&);
498 template<
typename _FIter,
typename _Predicate,
typename _Tp>
500 replace_if(_FIter, _FIter, _Predicate,
const _Tp&,
503 template<
typename _FIter,
typename _Predicate,
typename _Tp>
505 replace_if(_FIter, _FIter, _Predicate,
const _Tp&,
508 template<
typename _FIter,
typename _Predicate,
typename _Tp,
511 __replace_if_switch(_FIter, _FIter, _Predicate,
const _Tp&, _IterTag);
513 template<
typename _RAIter,
typename _Predicate,
typename _Tp>
515 __replace_if_switch(_RAIter, _RAIter, _Predicate,
const _Tp&,
516 random_access_iterator_tag,
520 template<
typename _FIter>
522 max_element(_FIter, _FIter);
524 template<
typename _FIter>
528 template<
typename _FIter>
532 template<
typename _FIter,
typename _Compare>
534 max_element(_FIter, _FIter, _Compare);
536 template<
typename _FIter,
typename _Compare>
540 template<
typename _FIter,
typename _Compare>
544 template<
typename _FIter,
typename _Compare,
typename _IterTag>
546 __max_element_switch(_FIter, _FIter, _Compare, _IterTag);
548 template<
typename _RAIter,
typename _Compare>
550 __max_element_switch(
551 _RAIter, _RAIter, _Compare, random_access_iterator_tag,
556 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
558 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
561 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
564 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare,
567 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
570 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
572 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
574 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
576 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
577 typename _Compare,
typename _IterTag1,
typename _IterTag2,
580 __merge_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare,
581 _IterTag1, _IterTag2, _IterTag3);
583 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
586 __merge_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare,
587 random_access_iterator_tag, random_access_iterator_tag,
588 random_access_iterator_tag);
591 template<
typename _FIter>
593 min_element(_FIter, _FIter);
595 template<
typename _FIter>
599 template<
typename _FIter>
601 min_element(_FIter, _FIter,
604 template<
typename _FIter,
typename _Compare>
606 min_element(_FIter, _FIter, _Compare);
608 template<
typename _FIter,
typename _Compare>
612 template<
typename _FIter,
typename _Compare>
616 template<
typename _FIter,
typename _Compare,
typename _IterTag>
618 __min_element_switch(_FIter, _FIter, _Compare, _IterTag);
620 template<
typename _RAIter,
typename _Compare>
622 __min_element_switch(
623 _RAIter, _RAIter, _Compare, random_access_iterator_tag,
627 template<
typename _RAIter>
631 template<
typename _RAIter,
typename _Compare>
633 nth_element(_RAIter, _RAIter, _RAIter, _Compare,
636 template<
typename _RAIter,
typename _Compare>
638 nth_element(_RAIter, _RAIter, _RAIter, _Compare);
640 template<
typename _RAIter>
642 nth_element(_RAIter, _RAIter, _RAIter);
644 template<
typename _RAIter,
typename _Compare>
646 partial_sort(_RAIter, _RAIter, _RAIter, _Compare,
649 template<
typename _RAIter>
653 template<
typename _RAIter,
typename _Compare>
655 partial_sort(_RAIter, _RAIter, _RAIter, _Compare);
657 template<
typename _RAIter>
659 partial_sort(_RAIter, _RAIter, _RAIter);
661 template<
typename _FIter,
typename _Predicate>
665 template<
typename _FIter,
typename _Predicate>
667 partition(_FIter, _FIter, _Predicate);
669 template<
typename _FIter,
typename _Predicate,
typename _IterTag>
671 __partition_switch(_FIter, _FIter, _Predicate, _IterTag);
673 template<
typename _RAIter,
typename _Predicate>
676 _RAIter, _RAIter, _Predicate, random_access_iterator_tag);
678 template<
typename _RAIter>
682 template<
typename _RAIter,
typename _RandomNumberGenerator>
684 random_shuffle(_RAIter, _RAIter, _RandomNumberGenerator&,
687 template<
typename _RAIter>
689 random_shuffle(_RAIter, _RAIter);
691 template<
typename _RAIter,
typename _RandomNumberGenerator>
693 random_shuffle(_RAIter, _RAIter,
694 #
if __cplusplus >= 201103L
695 _RandomNumberGenerator&&);
697 _RandomNumberGenerator&);
700 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
702 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
705 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
708 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate,
711 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
713 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
715 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
718 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate);
720 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
721 typename _OIter,
typename _IterTag1,
typename _IterTag2,
724 __set_union_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
725 _Predicate, _IterTag1, _IterTag2, _IterTag3);
727 template<
typename _RAIter1,
typename _RAIter2,
typename _Output_RAIter,
730 __set_union_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, _Output_RAIter,
731 _Predicate, random_access_iterator_tag,
732 random_access_iterator_tag, random_access_iterator_tag);
734 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
736 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
739 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
742 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate,
745 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
747 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
749 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
752 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate);
754 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
755 typename _OIter,
typename _IterTag1,
typename _IterTag2,
758 __set_intersection_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
759 _Predicate, _IterTag1, _IterTag2, _IterTag3);
761 template<
typename _RAIter1,
typename _RAIter2,
typename _Output_RAIter,
764 __set_intersection_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
765 _Output_RAIter, _Predicate,
766 random_access_iterator_tag,
767 random_access_iterator_tag,
768 random_access_iterator_tag);
770 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
772 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
775 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
778 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
781 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
783 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
785 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
788 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
791 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
792 typename _OIter,
typename _IterTag1,
typename _IterTag2,
795 __set_symmetric_difference_switch(_IIter1, _IIter1, _IIter2, _IIter2,
796 _OIter, _Predicate, _IterTag1, _IterTag2,
799 template<
typename _RAIter1,
typename _RAIter2,
typename _Output_RAIter,
802 __set_symmetric_difference_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
803 _Output_RAIter, _Predicate,
804 random_access_iterator_tag,
805 random_access_iterator_tag,
806 random_access_iterator_tag);
809 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
811 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
814 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
817 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate,
820 template<
typename _IIter1,
typename _IIter2,
typename _OIter>
822 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
824 template<
typename _IIter1,
typename _IIter2,
typename _OIter,
827 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate);
829 template<
typename _IIter1,
typename _IIter2,
typename _Predicate,
830 typename _OIter,
typename _IterTag1,
typename _IterTag2,
833 __set_difference_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter,
834 _Predicate, _IterTag1, _IterTag2, _IterTag3);
836 template<
typename _RAIter1,
typename _RAIter2,
typename _Output_RAIter,
839 __set_difference_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2,
840 _Output_RAIter, _Predicate,
841 random_access_iterator_tag,
842 random_access_iterator_tag,
843 random_access_iterator_tag);
846 template<
typename _RAIter>
850 template<
typename _RAIter,
typename _Compare>
854 template<
typename _RAIter>
856 sort(_RAIter, _RAIter);
858 template<
typename _RAIter,
typename _Compare>
860 sort(_RAIter, _RAIter, _Compare);
862 template<
typename _RAIter>
866 template<
typename _RAIter,
typename _Compare>
870 template<
typename _RAIter>
872 stable_sort(_RAIter, _RAIter);
874 template<
typename _RAIter,
typename _Compare>
876 stable_sort(_RAIter, _RAIter, _Compare);
878 template<
typename _IIter,
typename _OIter>
882 template<
typename _IIter,
typename _OIter,
typename _Predicate>
884 unique_copy(_IIter, _IIter, _OIter, _Predicate,
887 template<
typename _IIter,
typename _OIter>
889 unique_copy(_IIter, _IIter, _OIter);
891 template<
typename _IIter,
typename _OIter,
typename _Predicate>
893 unique_copy(_IIter, _IIter, _OIter, _Predicate);
895 template<
typename _IIter,
typename _OIter,
typename _Predicate,
896 typename _IterTag1,
typename _IterTag2>
898 __unique_copy_switch(_IIter, _IIter, _OIter, _Predicate,
899 _IterTag1, _IterTag2);
901 template<
typename _RAIter,
typename _RandomAccess_OIter,
typename _Predicate>
903 __unique_copy_switch(_RAIter, _RAIter, _RandomAccess_OIter, _Predicate,
904 random_access_iterator_tag, random_access_iterator_tag);
Forces sequential execution at compile time.
_Parallelism
Run-time equivalents for the compile-time tags.
Tags for compile-time selection. This file is a GNU parallel extension to the Standard C++ Library...
Runtime settings and tuning parameters, heuristics to decide whether to use parallelized algorithms...
ISO C++ entities toplevel namespace is std.
Parallel balanced (work-stealing).
Parallel unbalanced (equal-sized chunks).