]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/include/bits/algorithmfwd.h
re PR c++/39219 (attribute doesn't work with enums properly)
[thirdparty/gcc.git] / libstdc++-v3 / include / bits / algorithmfwd.h
CommitLineData
c2ba9709
JS
1// <algorithm> declarations -*- C++ -*-
2
caa8b3c6 3// Copyright (C) 2007, 2008 Free Software Foundation, Inc.
c2ba9709
JS
4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 2, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// You should have received a copy of the GNU General Public License along
17// with this library; see the file COPYING. If not, write to the Free
18// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19// USA.
20
21/** @file bits/algorithmfwd.h
22 * This is an internal header file, included by other library headers.
23 * You should not attempt to use it directly.
24 */
25
c2ba9709
JS
26/*
27 adjacent_find
688a7a07
PC
28 all_of (C++0x)
29 any_of (C++0x)
c2ba9709
JS
30 binary_search
31 copy
32 copy_backward
688a7a07 33 copy_if (C++0x)
b0371776 34 copy_n (C++0x)
c2ba9709
JS
35 count
36 count_if
37 equal
38 equal_range
39 fill
40 fill_n
41 find
42 find_end
43 find_first_of
44 find_if
688a7a07 45 find_if_not (C++0x)
c2ba9709
JS
46 for_each
47 generate
48 generate_n
49 includes
50 inplace_merge
e69f1bad
PC
51 is_heap (C++0x)
52 is_heap_until (C++0x)
04dbd891 53 is_partitioned (C++0x)
f6547b68
PC
54 is_sorted (C++0x)
55 is_sorted_until (C++0x)
c2ba9709
JS
56 iter_swap
57 lexicographical_compare
58 lower_bound
59 make_heap
60 max
61 max_element
62 merge
63 min
64 min_element
f6547b68
PC
65 minmax (C++0x)
66 minmax_element (C++0x)
c2ba9709
JS
67 mismatch
68 next_permutation
688a7a07 69 none_of (C++0x)
c2ba9709 70 nth_element
28dac70a 71 partial_sort
c2ba9709
JS
72 partial_sort_copy
73 partition
688a7a07 74 partition_copy (C++0x)
d9be9bb3 75 partition_point (C++0x)
c2ba9709
JS
76 pop_heap
77 prev_permutation
78 push_heap
79 random_shuffle
80 remove
81 remove_copy
82 remove_copy_if
83 remove_if
84 replace
85 replace_copy
86 replace_copy_if
87 replace_if
88 reverse
89 reverse_copy
90 rotate
91 rotate_copy
92 search
93 search_n
28dac70a 94 set_difference
c2ba9709
JS
95 set_intersection
96 set_symmetric_difference
97 set_union
98 sort
99 sort_heap
100 stable_partition
101 stable_sort
c2ba9709
JS
102 swap
103 swap_ranges
104 transform
105 unique
106 unique_copy
107 upper_bound
108*/
109
110#ifndef _GLIBCXX_ALGORITHMFWD_H
111#define _GLIBCXX_ALGORITHMFWD_H 1
112
113#pragma GCC system_header
114
115#include <bits/c++config.h>
116#include <bits/stl_pair.h>
117#include <bits/stl_iterator_base_types.h>
1edd1a83 118#include <initializer_list>
c2ba9709
JS
119
120_GLIBCXX_BEGIN_NAMESPACE(std)
121
122 // adjacent_find
123
688a7a07
PC
124#ifdef __GXX_EXPERIMENTAL_CXX0X__
125 template<typename _IIter, typename _Predicate>
126 bool
127 all_of(_IIter, _IIter, _Predicate);
128
129 template<typename _IIter, typename _Predicate>
130 bool
131 any_of(_IIter, _IIter, _Predicate);
132#endif
133
c2ba9709
JS
134 template<typename _FIter, typename _Tp>
135 bool
136 binary_search(_FIter, _FIter, const _Tp&);
137
138 template<typename _FIter, typename _Tp, typename _Compare>
139 bool
140 binary_search(_FIter, _FIter, const _Tp&, _Compare);
141
142 template<typename _IIter, typename _OIter>
143 _OIter
144 copy(_IIter, _IIter, _OIter);
145
146 template<typename _BIter1, typename _BIter2>
147 _BIter2
4f99f3d0 148 copy_backward(_BIter1, _BIter1, _BIter2);
c2ba9709 149
688a7a07
PC
150#ifdef __GXX_EXPERIMENTAL_CXX0X__
151 template<typename _IIter, typename _OIter, typename _Predicate>
152 _OIter
153 copy_if(_IIter, _IIter, _OIter, _Predicate);
b0371776
PC
154
155 template<typename _IIter, typename _Size, typename _OIter>
156 _OIter
157 copy_n(_IIter, _Size, _OIter);
688a7a07
PC
158#endif
159
c2ba9709
JS
160 // count
161 // count_if
162
163 template<typename _FIter, typename _Tp>
164 pair<_FIter, _FIter>
165 equal_range(_FIter, _FIter, const _Tp&);
166
167 template<typename _FIter, typename _Tp, typename _Compare>
168 pair<_FIter, _FIter>
169 equal_range(_FIter, _FIter, const _Tp&, _Compare);
170
171 template<typename _FIter, typename _Tp>
172 void
173 fill(_FIter, _FIter, const _Tp&);
174
175/*
176 XXX NB: return type different from ISO C++.
177 template<typename _OIter, typename _Size, typename _Tp>
178 void
179 fill_n(_OIter, _Size, const _Tp&);
180*/
181
182 template<typename _OIter, typename _Size, typename _Tp>
183 _OIter
184 fill_n(_OIter, _Size, const _Tp&);
185
186 // find
6f95a65a
BK
187
188 template<typename _FIter1, typename _FIter2>
189 _FIter1
190 find_end(_FIter1, _FIter1, _FIter2, _FIter2);
191
192 template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
193 _FIter1
194 find_end(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
195
c2ba9709
JS
196 // find_first_of
197 // find_if
c2ba9709 198
76cc1b70 199#ifdef __GXX_EXPERIMENTAL_CXX0X__
76cc1b70
PC
200 template<typename _IIter, typename _Predicate>
201 _IIter
202 find_if_not(_IIter, _IIter, _Predicate);
203#endif
204
688a7a07
PC
205 // for_each
206 // generate
207 // generate_n
208
c2ba9709
JS
209 template<typename _IIter1, typename _IIter2>
210 bool
211 includes(_IIter1, _IIter1, _IIter2, _IIter2);
212
213 template<typename _IIter1, typename _IIter2, typename _Compare>
214 bool
215 includes(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
216
217 template<typename _BIter>
218 void
219 inplace_merge(_BIter, _BIter, _BIter);
220
221 template<typename _BIter, typename _Compare>
222 void
223 inplace_merge(_BIter, _BIter, _BIter, _Compare);
224
e69f1bad
PC
225#ifdef __GXX_EXPERIMENTAL_CXX0X__
226 template<typename _RAIter>
227 bool
228 is_heap(_RAIter, _RAIter);
229
230 template<typename _RAIter, typename _Compare>
231 bool
232 is_heap(_RAIter, _RAIter, _Compare);
233
234 template<typename _RAIter>
235 _RAIter
236 is_heap_until(_RAIter, _RAIter);
237
238 template<typename _RAIter, typename _Compare>
239 _RAIter
240 is_heap_until(_RAIter, _RAIter, _Compare);
4b7ed13a 241
04dbd891
PC
242 template<typename _IIter, typename _Predicate>
243 bool
244 is_partitioned(_IIter, _IIter, _Predicate);
245
4b7ed13a
PC
246 template<typename _FIter>
247 bool
248 is_sorted(_FIter, _FIter);
249
250 template<typename _FIter, typename _Compare>
251 bool
252 is_sorted(_FIter, _FIter, _Compare);
253
254 template<typename _FIter>
255 _FIter
256 is_sorted_until(_FIter, _FIter);
257
258 template<typename _FIter, typename _Compare>
259 _FIter
260 is_sorted_until(_FIter, _FIter, _Compare);
e69f1bad
PC
261#endif
262
c2ba9709
JS
263 template<typename _FIter1, typename _FIter2>
264 void
265 iter_swap(_FIter1, _FIter2);
266
c2ba9709
JS
267 template<typename _FIter, typename _Tp>
268 _FIter
269 lower_bound(_FIter, _FIter, const _Tp&);
270
271 template<typename _FIter, typename _Tp, typename _Compare>
272 _FIter
273 lower_bound(_FIter, _FIter, const _Tp&, _Compare);
274
275 template<typename _RAIter>
276 void
277 make_heap(_RAIter, _RAIter);
278
279 template<typename _RAIter, typename _Compare>
280 void
281 make_heap(_RAIter, _RAIter, _Compare);
282
283 template<typename _Tp>
284 const _Tp&
285 max(const _Tp&, const _Tp&);
286
287 template<typename _Tp, typename _Compare>
288 const _Tp&
289 max(const _Tp&, const _Tp&, _Compare);
290
291 // max_element
292 // merge
293
294 template<typename _Tp>
295 const _Tp&
296 min(const _Tp&, const _Tp&);
297
298 template<typename _Tp, typename _Compare>
299 const _Tp&
300 min(const _Tp&, const _Tp&, _Compare);
301
302 // min_element
f6547b68
PC
303
304#ifdef __GXX_EXPERIMENTAL_CXX0X__
305 template<typename _Tp>
306 pair<const _Tp&, const _Tp&>
307 minmax(const _Tp&, const _Tp&);
308
309 template<typename _Tp, typename _Compare>
310 pair<const _Tp&, const _Tp&>
311 minmax(const _Tp&, const _Tp&, _Compare);
312
313 template<typename _FIter>
314 pair<_FIter, _FIter>
315 minmax_element(_FIter, _FIter);
316
317 template<typename _FIter, typename _Compare>
318 pair<_FIter, _FIter>
319 minmax_element(_FIter, _FIter, _Compare);
1edd1a83
PC
320
321 template<typename _Tp>
116a365b 322 _Tp
1edd1a83
PC
323 min(initializer_list<_Tp>);
324
325 template<typename _Tp, typename _Compare>
116a365b 326 _Tp
1edd1a83
PC
327 min(initializer_list<_Tp>, _Compare);
328
329 template<typename _Tp>
116a365b 330 _Tp
1edd1a83
PC
331 max(initializer_list<_Tp>);
332
333 template<typename _Tp, typename _Compare>
116a365b 334 _Tp
1edd1a83
PC
335 max(initializer_list<_Tp>, _Compare);
336
337 template<typename _Tp>
116a365b 338 pair<_Tp, _Tp>
1edd1a83
PC
339 minmax(initializer_list<_Tp>);
340
341 template<typename _Tp, typename _Compare>
116a365b 342 pair<_Tp, _Tp>
1edd1a83 343 minmax(initializer_list<_Tp>, _Compare);
f6547b68
PC
344#endif
345
c2ba9709
JS
346 // mismatch
347
348 template<typename _BIter>
349 bool
350 next_permutation(_BIter, _BIter);
351
352 template<typename _BIter, typename _Compare>
353 bool
354 next_permutation(_BIter, _BIter, _Compare);
355
688a7a07
PC
356#ifdef __GXX_EXPERIMENTAL_CXX0X__
357 template<typename _IIter, typename _Predicate>
358 bool
359 none_of(_IIter, _IIter, _Predicate);
360#endif
361
c2ba9709
JS
362 // nth_element
363 // partial_sort
364
365 template<typename _IIter, typename _RAIter>
366 _RAIter
367 partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter);
368
369 template<typename _IIter, typename _RAIter, typename _Compare>
370 _RAIter
371 partial_sort_copy(_IIter, _IIter, _RAIter, _RAIter, _Compare);
372
688a7a07
PC
373 // partition
374
375#ifdef __GXX_EXPERIMENTAL_CXX0X__
376 template<typename _IIter, typename _OIter1,
377 typename _OIter2, typename _Predicate>
378 pair<_OIter1, _OIter2>
379 partition_copy(_IIter, _IIter, _OIter1, _OIter2, _Predicate);
d9be9bb3
PC
380
381 template<typename _FIter, typename _Predicate>
382 _FIter
383 partition_point(_FIter, _FIter, _Predicate);
688a7a07
PC
384#endif
385
c2ba9709
JS
386 template<typename _RAIter>
387 void
388 pop_heap(_RAIter, _RAIter);
389
390 template<typename _RAIter, typename _Compare>
391 void
392 pop_heap(_RAIter, _RAIter, _Compare);
393
394 template<typename _BIter>
395 bool
396 prev_permutation(_BIter, _BIter);
397
398 template<typename _BIter, typename _Compare>
399 bool
400 prev_permutation(_BIter, _BIter, _Compare);
401
402 template<typename _RAIter>
403 void
404 push_heap(_RAIter, _RAIter);
405
406 template<typename _RAIter, typename _Compare>
407 void
408 push_heap(_RAIter, _RAIter, _Compare);
409
410 // random_shuffle
411
412 template<typename _FIter, typename _Tp>
413 _FIter
414 remove(_FIter, _FIter, const _Tp&);
415
416 template<typename _FIter, typename _Predicate>
417 _FIter
418 remove_if(_FIter, _FIter, _Predicate);
419
420 template<typename _IIter, typename _OIter, typename _Tp>
421 _OIter
422 remove_copy(_IIter, _IIter, _OIter, const _Tp&);
423
424 template<typename _IIter, typename _OIter, typename _Predicate>
425 _OIter
426 remove_copy_if(_IIter, _IIter, _OIter, _Predicate);
427
428 // replace
429
430 template<typename _IIter, typename _OIter, typename _Tp>
431 _OIter
432 replace_copy(_IIter, _IIter, _OIter, const _Tp&, const _Tp&);
433
434 template<typename _Iter, typename _OIter, typename _Predicate, typename _Tp>
435 _OIter
436 replace_copy_if(_Iter, _Iter, _OIter, _Predicate, const _Tp&);
437
438 // replace_if
439
440 template<typename _BIter>
441 void
442 reverse(_BIter, _BIter);
443
444 template<typename _BIter, typename _OIter>
445 _OIter
446 reverse_copy(_BIter, _BIter, _OIter);
447
448 template<typename _FIter>
449 void
450 rotate(_FIter, _FIter, _FIter);
451
452 template<typename _FIter, typename _OIter>
453 _OIter
4f99f3d0 454 rotate_copy(_FIter, _FIter, _FIter, _OIter);
c2ba9709
JS
455
456 // search
457 // search_n
458 // set_difference
459 // set_intersection
460 // set_symmetric_difference
461 // set_union
462
463 template<typename _RAIter>
464 void
465 sort_heap(_RAIter, _RAIter);
466
467 template<typename _RAIter, typename _Compare>
468 void
469 sort_heap(_RAIter, _RAIter, _Compare);
470
471 template<typename _BIter, typename _Predicate>
472 _BIter
473 stable_partition(_BIter, _BIter, _Predicate);
474
475 template<typename _Tp>
476 void
4f99f3d0 477 swap(_Tp&, _Tp&);
c2ba9709 478
caa8b3c6
PC
479 template<typename _Tp, size_t _Nm>
480 void
481 swap(_Tp (&)[_Nm], _Tp (&)[_Nm]);
482
c2ba9709
JS
483 template<typename _FIter1, typename _FIter2>
484 _FIter2
4f99f3d0 485 swap_ranges(_FIter1, _FIter1, _FIter2);
c2ba9709
JS
486
487 // transform
488
489 template<typename _FIter>
490 _FIter
491 unique(_FIter, _FIter);
492
493 template<typename _FIter, typename _BinaryPredicate>
494 _FIter
495 unique(_FIter, _FIter, _BinaryPredicate);
496
497 // unique_copy
498
499 template<typename _FIter, typename _Tp>
500 _FIter
501 upper_bound(_FIter, _FIter, const _Tp&);
502
503 template<typename _FIter, typename _Tp, typename _Compare>
504 _FIter
505 upper_bound(_FIter, _FIter, const _Tp&, _Compare);
506
507_GLIBCXX_END_NAMESPACE
508
509_GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GLIBCXX_STD_P)
510
511 template<typename _FIter>
512 _FIter
513 adjacent_find(_FIter, _FIter);
514
515 template<typename _FIter, typename _BinaryPredicate>
516 _FIter
517 adjacent_find(_FIter, _FIter, _BinaryPredicate);
518
519 template<typename _IIter, typename _Tp>
520 typename iterator_traits<_IIter>::difference_type
521 count(_IIter, _IIter, const _Tp&);
522
523 template<typename _IIter, typename _Predicate>
524 typename iterator_traits<_IIter>::difference_type
525 count_if(_IIter, _IIter, _Predicate);
526
527 template<typename _IIter1, typename _IIter2>
528 bool
529 equal(_IIter1, _IIter1, _IIter2);
530
531 template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
532 bool
533 equal(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
534
535 template<typename _IIter, typename _Tp>
536 _IIter
537 find(_IIter, _IIter, const _Tp&);
538
c2ba9709
JS
539 template<typename _FIter1, typename _FIter2>
540 _FIter1
541 find_first_of(_FIter1, _FIter1, _FIter2, _FIter2);
542
543 template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
544 _FIter1
545 find_first_of(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
546
547 template<typename _IIter, typename _Predicate>
76cc1b70 548 _IIter
c2ba9709
JS
549 find_if(_IIter, _IIter, _Predicate);
550
551 template<typename _IIter, typename _Funct>
552 _Funct
553 for_each(_IIter, _IIter, _Funct);
554
555 template<typename _FIter, typename _Generator>
556 void
557 generate(_FIter, _FIter, _Generator);
558
4f99f3d0
BK
559/*
560 XXX NB: return type different from ISO C++.
561 template<typename _OIter, typename _Size, typename _Tp>
562 void
563 generate_n(_OIter, _Size, _Generator);
564*/
565
c2ba9709 566 template<typename _OIter, typename _Size, typename _Generator>
4f99f3d0 567 _OIter
c2ba9709
JS
568 generate_n(_OIter, _Size, _Generator);
569
570 template<typename _IIter1, typename _IIter2>
571 bool
572 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2);
573
574 template<typename _IIter1, typename _IIter2, typename _Compare>
575 bool
576 lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Compare);
577
578 template<typename _FIter>
579 _FIter
580 max_element(_FIter, _FIter);
581
582 template<typename _FIter, typename _Compare>
583 _FIter
584 max_element(_FIter, _FIter, _Compare);
585
586 template<typename _IIter1, typename _IIter2, typename _OIter>
587 _OIter
588 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
589
590 template<typename _IIter1, typename _IIter2, typename _OIter,
591 typename _Compare>
592 _OIter
593 merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
594
595 template<typename _FIter>
596 _FIter
597 min_element(_FIter, _FIter);
598
599 template<typename _FIter, typename _Compare>
600 _FIter
601 min_element(_FIter, _FIter, _Compare);
602
603 template<typename _IIter1, typename _IIter2>
604 pair<_IIter1, _IIter2>
605 mismatch(_IIter1, _IIter1, _IIter2);
606
607 template<typename _IIter1, typename _IIter2, typename _BinaryPredicate>
608 pair<_IIter1, _IIter2>
609 mismatch(_IIter1, _IIter1, _IIter2, _BinaryPredicate);
610
611 template<typename _RAIter>
612 void
613 nth_element(_RAIter, _RAIter, _RAIter);
614
615 template<typename _RAIter, typename _Compare>
616 void
617 nth_element(_RAIter, _RAIter, _RAIter, _Compare);
618
619 template<typename _RAIter>
620 void
621 partial_sort(_RAIter, _RAIter, _RAIter);
622
623 template<typename _RAIter, typename _Compare>
624 void
625 partial_sort(_RAIter, _RAIter, _RAIter, _Compare);
626
627 template<typename _BIter, typename _Predicate>
628 _BIter
629 partition(_BIter, _BIter, _Predicate);
630
631 template<typename _RAIter>
632 void
633 random_shuffle(_RAIter, _RAIter);
634
635 template<typename _RAIter, typename _Generator>
636 void
637 random_shuffle(_RAIter, _RAIter, _Generator&);
638
639 template<typename _FIter, typename _Tp>
640 void
641 replace(_FIter, _FIter, const _Tp&, const _Tp&);
642
643 template<typename _FIter, typename _Predicate, typename _Tp>
644 void
645 replace_if(_FIter, _FIter, _Predicate, const _Tp&);
646
647 template<typename _FIter1, typename _FIter2>
648 _FIter1
649 search(_FIter1, _FIter1, _FIter2, _FIter2);
650
651 template<typename _FIter1, typename _FIter2, typename _BinaryPredicate>
652 _FIter1
653 search(_FIter1, _FIter1, _FIter2, _FIter2, _BinaryPredicate);
654
655 template<typename _FIter, typename _Size, typename _Tp>
656 _FIter
657 search_n(_FIter, _FIter, _Size, const _Tp&);
658
659 template<typename _FIter, typename _Size, typename _Tp,
660 typename _BinaryPredicate>
661 _FIter
662 search_n(_FIter, _FIter, _Size, const _Tp&, _BinaryPredicate);
663
664 template<typename _IIter1, typename _IIter2, typename _OIter>
665 _OIter
666 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
667
668 template<typename _IIter1, typename _IIter2, typename _OIter,
669 typename _Compare>
670 _OIter
671 set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
672
673 template<typename _IIter1, typename _IIter2, typename _OIter>
674 _OIter
675 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
676
677 template<typename _IIter1, typename _IIter2, typename _OIter,
678 typename _Compare>
679 _OIter
680 set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
681
682 template<typename _IIter1, typename _IIter2, typename _OIter>
683 _OIter
684 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
685
686 template<typename _IIter1, typename _IIter2, typename _OIter,
687 typename _Compare>
688 _OIter
689 set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2,
690 _OIter, _Compare);
691
692 template<typename _IIter1, typename _IIter2, typename _OIter>
693 _OIter
694 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter);
695
696 template<typename _IIter1, typename _IIter2, typename _OIter,
697 typename _Compare>
698 _OIter
699 set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare);
700
701 template<typename _RAIter>
702 void
703 sort(_RAIter, _RAIter);
704
705 template<typename _RAIter, typename _Compare>
706 void
707 sort(_RAIter, _RAIter, _Compare);
708
709 template<typename _RAIter>
710 void
711 stable_sort(_RAIter, _RAIter);
712
713 template<typename _RAIter, typename _Compare>
714 void
715 stable_sort(_RAIter, _RAIter, _Compare);
716
717 template<typename _IIter, typename _OIter, typename _UnaryOperation>
718 _OIter
719 transform(_IIter, _IIter, _OIter, _UnaryOperation);
720
721 template<typename _IIter1, typename _IIter2, typename _OIter,
722 typename _BinaryOperation>
723 _OIter
724 transform(_IIter1, _IIter1, _IIter2, _OIter, _BinaryOperation);
725
726 template<typename _IIter, typename _OIter>
727 _OIter
728 unique_copy(_IIter, _IIter, _OIter);
729
730 template<typename _IIter, typename _OIter, typename _BinaryPredicate>
731 _OIter
732 unique_copy(_IIter, _IIter, _OIter, _BinaryPredicate);
733
734_GLIBCXX_END_NESTED_NAMESPACE
735
736#ifdef _GLIBCXX_NAMESPACE_ASSOCIATION_PARALLEL
737# include <parallel/algorithmfwd.h>
738#endif
739
740#endif
741