]>
Commit | Line | Data |
---|---|---|
cd1e6665 | 1 | // <parallel/algorithm> Forward declarations -*- C++ -*- |
c2ba9709 | 2 | |
99dee823 | 3 | // Copyright (C) 2007-2021 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 terms | |
7 | // of the GNU General Public License as published by the Free Software | |
748086b7 | 8 | // Foundation; either version 3, or (at your option) any later |
c2ba9709 JS |
9 | // version. |
10 | ||
11 | // This library is distributed in the hope that it will be useful, but | |
12 | // WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | // General Public License for more details. | |
15 | ||
748086b7 JJ |
16 | // Under Section 7 of GPL version 3, you are granted additional |
17 | // permissions described in the GCC Runtime Library Exception, version | |
18 | // 3.1, as published by the Free Software Foundation. | |
19 | ||
20 | // You should have received a copy of the GNU General Public License and | |
21 | // a copy of the GCC Runtime Library Exception along with this program; | |
22 | // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
23 | // <http://www.gnu.org/licenses/>. | |
c2ba9709 JS |
24 | |
25 | /** @file parallel/algorithmfwd.h | |
26 | * This file is a GNU parallel extension to the Standard C++ Library. | |
27 | */ | |
28 | ||
29 | #ifndef _GLIBCXX_PARALLEL_ALGORITHMFWD_H | |
30 | #define _GLIBCXX_PARALLEL_ALGORITHMFWD_H 1 | |
31 | ||
32 | #pragma GCC system_header | |
33 | ||
34 | #include <parallel/tags.h> | |
35 | #include <parallel/settings.h> | |
36 | ||
12ffa228 | 37 | namespace std _GLIBCXX_VISIBILITY(default) |
c2ba9709 JS |
38 | { |
39 | namespace __parallel | |
40 | { | |
41 | template<typename _FIter> | |
6f95a65a BK |
42 | _FIter |
43 | adjacent_find(_FIter, _FIter); | |
c2ba9709 JS |
44 | |
45 | template<typename _FIter> | |
6f95a65a BK |
46 | _FIter |
47 | adjacent_find(_FIter, _FIter, __gnu_parallel::sequential_tag); | |
c2ba9709 | 48 | |
6f95a65a BK |
49 | template<typename _FIter, typename _IterTag> |
50 | _FIter | |
1acba85b | 51 | __adjacent_find_switch(_FIter, _FIter, _IterTag); |
c2ba9709 JS |
52 | |
53 | template<typename _RAIter> | |
6f95a65a | 54 | _RAIter |
1acba85b | 55 | __adjacent_find_switch(_RAIter, _RAIter, random_access_iterator_tag); |
c2ba9709 | 56 | |
c2ba9709 | 57 | |
6f95a65a BK |
58 | template<typename _FIter, typename _BiPredicate> |
59 | _FIter | |
60 | adjacent_find(_FIter, _FIter, _BiPredicate); | |
c2ba9709 | 61 | |
6f95a65a BK |
62 | template<typename _FIter, typename _BiPredicate> |
63 | _FIter | |
64 | adjacent_find(_FIter, _FIter, _BiPredicate, | |
15ac3c72 | 65 | __gnu_parallel::sequential_tag); |
6f95a65a BK |
66 | |
67 | template<typename _FIter, typename _BiPredicate, typename _IterTag> | |
68 | _FIter | |
1acba85b | 69 | __adjacent_find_switch(_FIter, _FIter, _BiPredicate, _IterTag); |
c2ba9709 | 70 | |
6f95a65a BK |
71 | template<typename _RAIter, typename _BiPredicate> |
72 | _RAIter | |
1acba85b | 73 | __adjacent_find_switch(_RAIter, _RAIter, _BiPredicate, |
15ac3c72 | 74 | random_access_iterator_tag); |
6f95a65a BK |
75 | |
76 | ||
77 | template<typename _IIter, typename _Tp> | |
78 | typename iterator_traits<_IIter>::difference_type | |
79 | count(_IIter, _IIter, const _Tp&); | |
c2ba9709 | 80 | |
531898c3 | 81 | template<typename _IIter, typename _Tp> |
6f95a65a | 82 | typename iterator_traits<_IIter>::difference_type |
531898c3 | 83 | count(_IIter, _IIter, const _Tp&, __gnu_parallel::sequential_tag); |
c2ba9709 | 84 | |
531898c3 | 85 | template<typename _IIter, typename _Tp> |
6f95a65a | 86 | typename iterator_traits<_IIter>::difference_type |
ee1b5fc5 | 87 | count(_IIter, _IIter, const _Tp&, __gnu_parallel::_Parallelism); |
6f95a65a | 88 | |
531898c3 | 89 | template<typename _IIter, typename _Tp, typename _IterTag> |
6f95a65a | 90 | typename iterator_traits<_IIter>::difference_type |
1acba85b | 91 | __count_switch(_IIter, _IIter, const _Tp&, _IterTag); |
c2ba9709 | 92 | |
531898c3 | 93 | template<typename _RAIter, typename _Tp> |
6f95a65a | 94 | typename iterator_traits<_RAIter>::difference_type |
1acba85b | 95 | __count_switch(_RAIter, _RAIter, const _Tp&, random_access_iterator_tag, |
15ac3c72 JS |
96 | __gnu_parallel::_Parallelism __parallelism |
97 | = __gnu_parallel::parallel_unbalanced); | |
c2ba9709 | 98 | |
c2ba9709 | 99 | |
531898c3 | 100 | template<typename _IIter, typename _Predicate> |
6f95a65a | 101 | typename iterator_traits<_IIter>::difference_type |
531898c3 | 102 | count_if(_IIter, _IIter, _Predicate); |
c2ba9709 | 103 | |
531898c3 | 104 | template<typename _IIter, typename _Predicate> |
6f95a65a | 105 | typename iterator_traits<_IIter>::difference_type |
531898c3 | 106 | count_if(_IIter, _IIter, _Predicate, __gnu_parallel::sequential_tag); |
c2ba9709 | 107 | |
531898c3 | 108 | template<typename _IIter, typename _Predicate> |
6f95a65a | 109 | typename iterator_traits<_IIter>::difference_type |
ee1b5fc5 | 110 | count_if(_IIter, _IIter, _Predicate, __gnu_parallel::_Parallelism); |
c2ba9709 | 111 | |
531898c3 | 112 | template<typename _IIter, typename _Predicate, typename _IterTag> |
6f95a65a | 113 | typename iterator_traits<_IIter>::difference_type |
1acba85b | 114 | __count_if_switch(_IIter, _IIter, _Predicate, _IterTag); |
c2ba9709 | 115 | |
531898c3 | 116 | template<typename _RAIter, typename _Predicate> |
6f95a65a | 117 | typename iterator_traits<_RAIter>::difference_type |
1acba85b | 118 | __count_if_switch(_RAIter, _RAIter, _Predicate, random_access_iterator_tag, |
15ac3c72 JS |
119 | __gnu_parallel::_Parallelism __parallelism |
120 | = __gnu_parallel::parallel_unbalanced); | |
c2ba9709 JS |
121 | |
122 | // algobase.h | |
123 | template<typename _IIter1, typename _IIter2> | |
531898c3 PC |
124 | bool |
125 | equal(_IIter1, _IIter1, _IIter2, __gnu_parallel::sequential_tag); | |
c2ba9709 | 126 | |
1acba85b | 127 | template<typename _IIter1, typename _IIter2, typename _Predicate> |
531898c3 | 128 | bool |
1acba85b | 129 | equal(_IIter1, _IIter1, _IIter2, _Predicate, |
15ac3c72 | 130 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
131 | |
132 | template<typename _IIter1, typename _IIter2> | |
e12097ed | 133 | _GLIBCXX20_CONSTEXPR |
531898c3 PC |
134 | bool |
135 | equal(_IIter1, _IIter1, _IIter2); | |
c2ba9709 | 136 | |
1acba85b | 137 | template<typename _IIter1, typename _IIter2, typename _Predicate> |
e12097ed | 138 | _GLIBCXX20_CONSTEXPR |
531898c3 | 139 | bool |
1acba85b | 140 | equal(_IIter1, _IIter1, _IIter2, _Predicate); |
c2ba9709 | 141 | |
531898c3 PC |
142 | template<typename _IIter, typename _Tp> |
143 | _IIter | |
144 | find(_IIter, _IIter, const _Tp&, __gnu_parallel::sequential_tag); | |
c2ba9709 | 145 | |
531898c3 PC |
146 | template<typename _IIter, typename _Tp> |
147 | _IIter | |
1acba85b | 148 | find(_IIter, _IIter, const _Tp& __val); |
c2ba9709 | 149 | |
531898c3 PC |
150 | template<typename _IIter, typename _Tp, typename _IterTag> |
151 | _IIter | |
1acba85b | 152 | __find_switch(_IIter, _IIter, const _Tp&, _IterTag); |
c2ba9709 | 153 | |
531898c3 PC |
154 | template<typename _RAIter, typename _Tp> |
155 | _RAIter | |
1acba85b | 156 | __find_switch(_RAIter, _RAIter, const _Tp&, random_access_iterator_tag); |
c2ba9709 | 157 | |
531898c3 PC |
158 | template<typename _IIter, typename _Predicate> |
159 | _IIter | |
160 | find_if(_IIter, _IIter, _Predicate, __gnu_parallel::sequential_tag); | |
c2ba9709 | 161 | |
531898c3 PC |
162 | template<typename _IIter, typename _Predicate> |
163 | _IIter | |
164 | find_if(_IIter, _IIter, _Predicate); | |
c2ba9709 | 165 | |
531898c3 PC |
166 | template<typename _IIter, typename _Predicate, typename _IterTag> |
167 | _IIter | |
1acba85b | 168 | __find_if_switch(_IIter, _IIter, _Predicate, _IterTag); |
c2ba9709 | 169 | |
531898c3 PC |
170 | template<typename _RAIter, typename _Predicate> |
171 | _RAIter | |
1acba85b | 172 | __find_if_switch(_RAIter, _RAIter, _Predicate, random_access_iterator_tag); |
c2ba9709 JS |
173 | |
174 | template<typename _IIter, typename _FIter> | |
531898c3 PC |
175 | _IIter |
176 | find_first_of(_IIter, _IIter, _FIter, _FIter, | |
15ac3c72 | 177 | __gnu_parallel::sequential_tag); |
c2ba9709 | 178 | |
6f95a65a | 179 | template<typename _IIter, typename _FIter, typename _BiPredicate> |
531898c3 PC |
180 | _IIter |
181 | find_first_of(_IIter, _IIter, _FIter, _FIter, _BiPredicate, | |
15ac3c72 | 182 | __gnu_parallel::sequential_tag); |
c2ba9709 | 183 | |
6f95a65a | 184 | template<typename _IIter, typename _FIter, typename _BiPredicate> |
531898c3 PC |
185 | _IIter |
186 | find_first_of(_IIter, _IIter, _FIter, _FIter, _BiPredicate); | |
c2ba9709 JS |
187 | |
188 | template<typename _IIter, typename _FIter> | |
531898c3 PC |
189 | _IIter |
190 | find_first_of(_IIter, _IIter, _FIter, _FIter); | |
c2ba9709 | 191 | |
531898c3 | 192 | template<typename _IIter, typename _FIter, |
15ac3c72 | 193 | typename _IterTag1, typename _IterTag2> |
531898c3 | 194 | _IIter |
15ac3c72 JS |
195 | __find_first_of_switch( |
196 | _IIter, _IIter, _FIter, _FIter, _IterTag1, _IterTag2); | |
c2ba9709 | 197 | |
531898c3 | 198 | template<typename _RAIter, typename _FIter, typename _BiPredicate, |
15ac3c72 | 199 | typename _IterTag> |
531898c3 | 200 | _RAIter |
1acba85b | 201 | __find_first_of_switch(_RAIter, _RAIter, _FIter, _FIter, _BiPredicate, |
15ac3c72 | 202 | random_access_iterator_tag, _IterTag); |
c2ba9709 | 203 | |
531898c3 | 204 | template<typename _IIter, typename _FIter, typename _BiPredicate, |
15ac3c72 | 205 | typename _IterTag1, typename _IterTag2> |
531898c3 | 206 | _IIter |
1acba85b | 207 | __find_first_of_switch(_IIter, _IIter, _FIter, _FIter, _BiPredicate, |
15ac3c72 | 208 | _IterTag1, _IterTag2); |
c2ba9709 JS |
209 | |
210 | ||
531898c3 PC |
211 | template<typename _IIter, typename _Function> |
212 | _Function | |
213 | for_each(_IIter, _IIter, _Function); | |
6f95a65a | 214 | |
531898c3 PC |
215 | template<typename _IIter, typename _Function> |
216 | _Function | |
217 | for_each(_IIter, _IIter, _Function, __gnu_parallel::sequential_tag); | |
c2ba9709 | 218 | |
531898c3 PC |
219 | template<typename _Iterator, typename _Function> |
220 | _Function | |
ee1b5fc5 | 221 | for_each(_Iterator, _Iterator, _Function, __gnu_parallel::_Parallelism); |
c2ba9709 | 222 | |
531898c3 PC |
223 | template<typename _IIter, typename _Function, typename _IterTag> |
224 | _Function | |
1acba85b | 225 | __for_each_switch(_IIter, _IIter, _Function, _IterTag); |
c2ba9709 | 226 | |
531898c3 PC |
227 | template<typename _RAIter, typename _Function> |
228 | _Function | |
15ac3c72 JS |
229 | __for_each_switch(_RAIter, _RAIter, _Function, random_access_iterator_tag, |
230 | __gnu_parallel::_Parallelism __parallelism | |
231 | = __gnu_parallel::parallel_balanced); | |
6f95a65a | 232 | |
c2ba9709 | 233 | |
531898c3 | 234 | template<typename _FIter, typename _Generator> |
6f95a65a | 235 | void |
531898c3 | 236 | generate(_FIter, _FIter, _Generator); |
c2ba9709 | 237 | |
531898c3 | 238 | template<typename _FIter, typename _Generator> |
6f95a65a | 239 | void |
531898c3 | 240 | generate(_FIter, _FIter, _Generator, __gnu_parallel::sequential_tag); |
c2ba9709 | 241 | |
531898c3 | 242 | template<typename _FIter, typename _Generator> |
6f95a65a | 243 | void |
ee1b5fc5 | 244 | generate(_FIter, _FIter, _Generator, __gnu_parallel::_Parallelism); |
6f95a65a | 245 | |
531898c3 | 246 | template<typename _FIter, typename _Generator, typename _IterTag> |
6f95a65a | 247 | void |
1acba85b | 248 | __generate_switch(_FIter, _FIter, _Generator, _IterTag); |
c2ba9709 | 249 | |
531898c3 | 250 | template<typename _RAIter, typename _Generator> |
6f95a65a | 251 | void |
15ac3c72 JS |
252 | __generate_switch(_RAIter, _RAIter, _Generator, random_access_iterator_tag, |
253 | __gnu_parallel::_Parallelism __parallelism | |
254 | = __gnu_parallel::parallel_balanced); | |
c2ba9709 | 255 | |
531898c3 | 256 | template<typename _OIter, typename _Size, typename _Generator> |
6f95a65a | 257 | _OIter |
531898c3 | 258 | generate_n(_OIter, _Size, _Generator); |
c2ba9709 | 259 | |
531898c3 | 260 | template<typename _OIter, typename _Size, typename _Generator> |
6f95a65a | 261 | _OIter |
531898c3 | 262 | generate_n(_OIter, _Size, _Generator, __gnu_parallel::sequential_tag); |
c2ba9709 | 263 | |
531898c3 | 264 | template<typename _OIter, typename _Size, typename _Generator> |
6f95a65a | 265 | _OIter |
ee1b5fc5 | 266 | generate_n(_OIter, _Size, _Generator, __gnu_parallel::_Parallelism); |
6f95a65a | 267 | |
531898c3 | 268 | template<typename _OIter, typename _Size, typename _Generator, |
15ac3c72 | 269 | typename _IterTag> |
6f95a65a | 270 | _OIter |
1acba85b | 271 | __generate_n_switch(_OIter, _Size, _Generator, _IterTag); |
c2ba9709 | 272 | |
531898c3 | 273 | template<typename _RAIter, typename _Size, typename _Generator> |
6f95a65a | 274 | _RAIter |
15ac3c72 JS |
275 | __generate_n_switch(_RAIter, _Size, _Generator, random_access_iterator_tag, |
276 | __gnu_parallel::_Parallelism __parallelism | |
277 | = __gnu_parallel::parallel_balanced); | |
c2ba9709 JS |
278 | |
279 | template<typename _IIter1, typename _IIter2> | |
531898c3 PC |
280 | bool |
281 | lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, | |
15ac3c72 | 282 | __gnu_parallel::sequential_tag); |
c2ba9709 | 283 | |
531898c3 PC |
284 | template<typename _IIter1, typename _IIter2, typename _Predicate> |
285 | bool | |
286 | lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Predicate, | |
15ac3c72 | 287 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
288 | |
289 | template<typename _IIter1, typename _IIter2> | |
e12097ed | 290 | _GLIBCXX20_CONSTEXPR |
531898c3 PC |
291 | bool |
292 | lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2); | |
c2ba9709 | 293 | |
531898c3 | 294 | template<typename _IIter1, typename _IIter2, typename _Predicate> |
e12097ed | 295 | _GLIBCXX20_CONSTEXPR |
531898c3 PC |
296 | bool |
297 | lexicographical_compare(_IIter1, _IIter1, _IIter2, _IIter2, _Predicate); | |
c2ba9709 | 298 | |
531898c3 | 299 | template<typename _IIter1, typename _IIter2, |
15ac3c72 | 300 | typename _Predicate, typename _IterTag1, typename _IterTag2> |
531898c3 | 301 | bool |
1acba85b | 302 | __lexicographical_compare_switch(_IIter1, _IIter1, _IIter2, _IIter2, |
15ac3c72 | 303 | _Predicate, _IterTag1, _IterTag2); |
c2ba9709 | 304 | |
531898c3 PC |
305 | template<typename _RAIter1, typename _RAIter2, typename _Predicate> |
306 | bool | |
1acba85b | 307 | __lexicographical_compare_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, |
15ac3c72 JS |
308 | _Predicate, random_access_iterator_tag, |
309 | random_access_iterator_tag); | |
c2ba9709 JS |
310 | |
311 | // algo.h | |
312 | template<typename _IIter1, typename _IIter2> | |
531898c3 PC |
313 | pair<_IIter1, _IIter2> |
314 | mismatch(_IIter1, _IIter1, _IIter2, __gnu_parallel::sequential_tag); | |
c2ba9709 | 315 | |
531898c3 PC |
316 | template<typename _IIter1, typename _IIter2, typename _Predicate> |
317 | pair<_IIter1, _IIter2> | |
318 | mismatch(_IIter1, _IIter1, _IIter2, _Predicate, | |
15ac3c72 | 319 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
320 | |
321 | template<typename _IIter1, typename _IIter2> | |
531898c3 PC |
322 | pair<_IIter1, _IIter2> |
323 | mismatch(_IIter1, _IIter1, _IIter2); | |
c2ba9709 | 324 | |
531898c3 PC |
325 | template<typename _IIter1, typename _IIter2, typename _Predicate> |
326 | pair<_IIter1, _IIter2> | |
327 | mismatch(_IIter1, _IIter1, _IIter2, _Predicate); | |
c2ba9709 | 328 | |
531898c3 | 329 | template<typename _IIter1, typename _IIter2, typename _Predicate, |
15ac3c72 | 330 | typename _IterTag1, typename _IterTag2> |
531898c3 | 331 | pair<_IIter1, _IIter2> |
1acba85b | 332 | __mismatch_switch(_IIter1, _IIter1, _IIter2, _Predicate, |
15ac3c72 | 333 | _IterTag1, _IterTag2); |
c2ba9709 | 334 | |
531898c3 PC |
335 | template<typename _RAIter1, typename _RAIter2, typename _Predicate> |
336 | pair<_RAIter1, _RAIter2> | |
1acba85b | 337 | __mismatch_switch(_RAIter1, _RAIter1, _RAIter2, _Predicate, |
15ac3c72 | 338 | random_access_iterator_tag, random_access_iterator_tag); |
c2ba9709 JS |
339 | |
340 | template<typename _FIter1, typename _FIter2> | |
531898c3 PC |
341 | _FIter1 |
342 | search(_FIter1, _FIter1, _FIter2, _FIter2, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
343 | |
344 | template<typename _FIter1, typename _FIter2> | |
531898c3 PC |
345 | _FIter1 |
346 | search(_FIter1, _FIter1, _FIter2, _FIter2); | |
c2ba9709 | 347 | |
6f95a65a | 348 | template<typename _FIter1, typename _FIter2, typename _BiPredicate> |
531898c3 PC |
349 | _FIter1 |
350 | search(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate, | |
15ac3c72 | 351 | __gnu_parallel::sequential_tag); |
c2ba9709 | 352 | |
6f95a65a | 353 | template<typename _FIter1, typename _FIter2, typename _BiPredicate> |
531898c3 PC |
354 | _FIter1 |
355 | search(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate); | |
c2ba9709 JS |
356 | |
357 | template<typename _RAIter1, typename _RAIter2> | |
531898c3 | 358 | _RAIter1 |
1acba85b | 359 | __search_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, |
15ac3c72 | 360 | random_access_iterator_tag, random_access_iterator_tag); |
c2ba9709 | 361 | |
531898c3 | 362 | template<typename _FIter1, typename _FIter2, typename _IterTag1, |
15ac3c72 | 363 | typename _IterTag2> |
531898c3 | 364 | _FIter1 |
1acba85b | 365 | __search_switch(_FIter1, _FIter1, _FIter2, _FIter2, _IterTag1, _IterTag2); |
c2ba9709 | 366 | |
6f95a65a | 367 | template<typename _RAIter1, typename _RAIter2, typename _BiPredicate> |
531898c3 | 368 | _RAIter1 |
1acba85b | 369 | __search_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, _BiPredicate, |
15ac3c72 | 370 | random_access_iterator_tag, random_access_iterator_tag); |
c2ba9709 | 371 | |
531898c3 | 372 | template<typename _FIter1, typename _FIter2, typename _BiPredicate, |
15ac3c72 | 373 | typename _IterTag1, typename _IterTag2> |
531898c3 | 374 | _FIter1 |
1acba85b | 375 | __search_switch(_FIter1, _FIter1, _FIter2, _FIter2, _BiPredicate, |
15ac3c72 | 376 | _IterTag1, _IterTag2); |
c2ba9709 | 377 | |
531898c3 PC |
378 | template<typename _FIter, typename _Integer, typename _Tp> |
379 | _FIter | |
380 | search_n(_FIter, _FIter, _Integer, const _Tp&, | |
15ac3c72 | 381 | __gnu_parallel::sequential_tag); |
c2ba9709 | 382 | |
531898c3 | 383 | template<typename _FIter, typename _Integer, typename _Tp, |
15ac3c72 | 384 | typename _BiPredicate> |
531898c3 PC |
385 | _FIter |
386 | search_n(_FIter, _FIter, _Integer, const _Tp&, _BiPredicate, | |
15ac3c72 | 387 | __gnu_parallel::sequential_tag); |
c2ba9709 | 388 | |
531898c3 PC |
389 | template<typename _FIter, typename _Integer, typename _Tp> |
390 | _FIter | |
391 | search_n(_FIter, _FIter, _Integer, const _Tp&); | |
c2ba9709 | 392 | |
531898c3 | 393 | template<typename _FIter, typename _Integer, typename _Tp, |
15ac3c72 | 394 | typename _BiPredicate> |
531898c3 PC |
395 | _FIter |
396 | search_n(_FIter, _FIter, _Integer, const _Tp&, _BiPredicate); | |
c2ba9709 | 397 | |
531898c3 | 398 | template<typename _RAIter, typename _Integer, typename _Tp, |
15ac3c72 | 399 | typename _BiPredicate> |
531898c3 | 400 | _RAIter |
1acba85b | 401 | __search_n_switch(_RAIter, _RAIter, _Integer, const _Tp&, |
15ac3c72 | 402 | _BiPredicate, random_access_iterator_tag); |
c2ba9709 | 403 | |
531898c3 | 404 | template<typename _FIter, typename _Integer, typename _Tp, |
15ac3c72 | 405 | typename _BiPredicate, typename _IterTag> |
531898c3 | 406 | _FIter |
1acba85b | 407 | __search_n_switch(_FIter, _FIter, _Integer, const _Tp&, |
15ac3c72 | 408 | _BiPredicate, _IterTag); |
c2ba9709 JS |
409 | |
410 | ||
1acba85b | 411 | template<typename _IIter, typename _OIter, typename _UnaryOperation> |
6f95a65a | 412 | _OIter |
1acba85b | 413 | transform(_IIter, _IIter, _OIter, _UnaryOperation); |
c2ba9709 | 414 | |
1acba85b | 415 | template<typename _IIter, typename _OIter, typename _UnaryOperation> |
6f95a65a | 416 | _OIter |
1acba85b | 417 | transform(_IIter, _IIter, _OIter, _UnaryOperation, |
15ac3c72 | 418 | __gnu_parallel::sequential_tag); |
c2ba9709 | 419 | |
1acba85b | 420 | template<typename _IIter, typename _OIter, typename _UnaryOperation> |
6f95a65a | 421 | _OIter |
1acba85b | 422 | transform(_IIter, _IIter, _OIter, _UnaryOperation, |
15ac3c72 | 423 | __gnu_parallel::_Parallelism); |
6f95a65a | 424 | |
1acba85b | 425 | template<typename _IIter, typename _OIter, typename _UnaryOperation, |
15ac3c72 | 426 | typename _IterTag1, typename _IterTag2> |
6f95a65a | 427 | _OIter |
1acba85b | 428 | __transform1_switch(_IIter, _IIter, _OIter, _UnaryOperation, |
15ac3c72 | 429 | _IterTag1, _IterTag2); |
6f95a65a | 430 | |
c2ba9709 | 431 | |
1acba85b | 432 | template<typename _RAIIter, typename _RAOIter, typename _UnaryOperation> |
6f95a65a | 433 | _RAOIter |
1acba85b | 434 | __transform1_switch(_RAIIter, _RAIIter, _RAOIter, _UnaryOperation, |
15ac3c72 JS |
435 | random_access_iterator_tag, random_access_iterator_tag, |
436 | __gnu_parallel::_Parallelism __parallelism | |
437 | = __gnu_parallel::parallel_balanced); | |
c2ba9709 | 438 | |
c2ba9709 | 439 | |
531898c3 | 440 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 441 | typename _BiOperation> |
6f95a65a BK |
442 | _OIter |
443 | transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation); | |
444 | ||
531898c3 | 445 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 446 | typename _BiOperation> |
6f95a65a BK |
447 | _OIter |
448 | transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation, | |
15ac3c72 | 449 | __gnu_parallel::sequential_tag); |
6f95a65a | 450 | |
531898c3 | 451 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 452 | typename _BiOperation> |
6f95a65a BK |
453 | _OIter |
454 | transform(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation, | |
15ac3c72 | 455 | __gnu_parallel::_Parallelism); |
6f95a65a | 456 | |
531898c3 | 457 | template<typename _RAIter1, typename _RAIter2, typename _RAIter3, |
15ac3c72 | 458 | typename _BiOperation> |
6f95a65a | 459 | _RAIter3 |
1acba85b | 460 | __transform2_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter3, _BiOperation, |
15ac3c72 JS |
461 | random_access_iterator_tag, random_access_iterator_tag, |
462 | random_access_iterator_tag, | |
463 | __gnu_parallel::_Parallelism __parallelism | |
464 | = __gnu_parallel::parallel_balanced); | |
6f95a65a | 465 | |
531898c3 | 466 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 JS |
467 | typename _BiOperation, typename _Tag1, |
468 | typename _Tag2, typename _Tag3> | |
6f95a65a | 469 | _OIter |
1acba85b | 470 | __transform2_switch(_IIter1, _IIter1, _IIter2, _OIter, _BiOperation, |
15ac3c72 | 471 | _Tag1, _Tag2, _Tag3); |
c2ba9709 | 472 | |
c2ba9709 | 473 | |
531898c3 | 474 | template<typename _FIter, typename _Tp> |
6f95a65a | 475 | void |
531898c3 | 476 | replace(_FIter, _FIter, const _Tp&, const _Tp&); |
c2ba9709 | 477 | |
531898c3 | 478 | template<typename _FIter, typename _Tp> |
6f95a65a | 479 | void |
531898c3 | 480 | replace(_FIter, _FIter, const _Tp&, const _Tp&, |
15ac3c72 | 481 | __gnu_parallel::sequential_tag); |
c2ba9709 | 482 | |
531898c3 | 483 | template<typename _FIter, typename _Tp> |
6f95a65a | 484 | void |
531898c3 | 485 | replace(_FIter, _FIter, const _Tp&, const _Tp&, |
15ac3c72 | 486 | __gnu_parallel::_Parallelism); |
6f95a65a | 487 | |
531898c3 | 488 | template<typename _FIter, typename _Tp, typename _IterTag> |
6f95a65a | 489 | void |
1acba85b | 490 | __replace_switch(_FIter, _FIter, const _Tp&, const _Tp&, _IterTag); |
c2ba9709 | 491 | |
531898c3 | 492 | template<typename _RAIter, typename _Tp> |
6f95a65a | 493 | void |
1acba85b | 494 | __replace_switch(_RAIter, _RAIter, const _Tp&, const _Tp&, |
15ac3c72 | 495 | random_access_iterator_tag, __gnu_parallel::_Parallelism); |
c2ba9709 JS |
496 | |
497 | ||
531898c3 | 498 | template<typename _FIter, typename _Predicate, typename _Tp> |
6f95a65a | 499 | void |
531898c3 | 500 | replace_if(_FIter, _FIter, _Predicate, const _Tp&); |
c2ba9709 | 501 | |
531898c3 | 502 | template<typename _FIter, typename _Predicate, typename _Tp> |
6f95a65a | 503 | void |
531898c3 | 504 | replace_if(_FIter, _FIter, _Predicate, const _Tp&, |
15ac3c72 | 505 | __gnu_parallel::sequential_tag); |
c2ba9709 | 506 | |
531898c3 | 507 | template<typename _FIter, typename _Predicate, typename _Tp> |
6f95a65a | 508 | void |
531898c3 | 509 | replace_if(_FIter, _FIter, _Predicate, const _Tp&, |
15ac3c72 | 510 | __gnu_parallel::_Parallelism); |
6f95a65a | 511 | |
531898c3 | 512 | template<typename _FIter, typename _Predicate, typename _Tp, |
15ac3c72 | 513 | typename _IterTag> |
6f95a65a | 514 | void |
1acba85b | 515 | __replace_if_switch(_FIter, _FIter, _Predicate, const _Tp&, _IterTag); |
6f95a65a | 516 | |
531898c3 | 517 | template<typename _RAIter, typename _Predicate, typename _Tp> |
6f95a65a | 518 | void |
1acba85b | 519 | __replace_if_switch(_RAIter, _RAIter, _Predicate, const _Tp&, |
15ac3c72 JS |
520 | random_access_iterator_tag, |
521 | __gnu_parallel::_Parallelism); | |
6f95a65a | 522 | |
c2ba9709 JS |
523 | |
524 | template<typename _FIter> | |
6f95a65a BK |
525 | _FIter |
526 | max_element(_FIter, _FIter); | |
c2ba9709 | 527 | |
6f95a65a BK |
528 | template<typename _FIter> |
529 | _FIter | |
530 | max_element(_FIter, _FIter, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
531 | |
532 | template<typename _FIter> | |
6f95a65a | 533 | _FIter |
ee1b5fc5 | 534 | max_element(_FIter, _FIter, __gnu_parallel::_Parallelism); |
c2ba9709 JS |
535 | |
536 | template<typename _FIter, typename _Compare> | |
6f95a65a BK |
537 | _FIter |
538 | max_element(_FIter, _FIter, _Compare); | |
c2ba9709 | 539 | |
6f95a65a BK |
540 | template<typename _FIter, typename _Compare> |
541 | _FIter | |
542 | max_element(_FIter, _FIter, _Compare, __gnu_parallel::sequential_tag); | |
543 | ||
544 | template<typename _FIter, typename _Compare> | |
545 | _FIter | |
ee1b5fc5 | 546 | max_element(_FIter, _FIter, _Compare, __gnu_parallel::_Parallelism); |
6f95a65a BK |
547 | |
548 | template<typename _FIter, typename _Compare, typename _IterTag> | |
549 | _FIter | |
1acba85b | 550 | __max_element_switch(_FIter, _FIter, _Compare, _IterTag); |
c2ba9709 JS |
551 | |
552 | template<typename _RAIter, typename _Compare> | |
6f95a65a | 553 | _RAIter |
15ac3c72 JS |
554 | __max_element_switch( |
555 | _RAIter, _RAIter, _Compare, random_access_iterator_tag, | |
556 | __gnu_parallel::_Parallelism __parallelism | |
557 | = __gnu_parallel::parallel_balanced); | |
6f95a65a | 558 | |
c2ba9709 JS |
559 | |
560 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
6f95a65a BK |
561 | _OIter |
562 | merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, | |
15ac3c72 | 563 | __gnu_parallel::sequential_tag); |
c2ba9709 | 564 | |
531898c3 | 565 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 566 | typename _Compare> |
6f95a65a BK |
567 | _OIter |
568 | merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare, | |
15ac3c72 | 569 | __gnu_parallel::sequential_tag); |
c2ba9709 | 570 | |
531898c3 | 571 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 572 | typename _Compare> |
6f95a65a BK |
573 | _OIter |
574 | merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare); | |
c2ba9709 JS |
575 | |
576 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
6f95a65a BK |
577 | _OIter |
578 | merge(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); | |
c2ba9709 | 579 | |
531898c3 | 580 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 JS |
581 | typename _Compare, typename _IterTag1, typename _IterTag2, |
582 | typename _IterTag3> | |
6f95a65a | 583 | _OIter |
1acba85b | 584 | __merge_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare, |
15ac3c72 | 585 | _IterTag1, _IterTag2, _IterTag3); |
c2ba9709 | 586 | |
531898c3 | 587 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 588 | typename _Compare> |
6f95a65a | 589 | _OIter |
1acba85b | 590 | __merge_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Compare, |
15ac3c72 JS |
591 | random_access_iterator_tag, random_access_iterator_tag, |
592 | random_access_iterator_tag); | |
6f95a65a | 593 | |
c2ba9709 JS |
594 | |
595 | template<typename _FIter> | |
6f95a65a BK |
596 | _FIter |
597 | min_element(_FIter, _FIter); | |
c2ba9709 | 598 | |
6f95a65a BK |
599 | template<typename _FIter> |
600 | _FIter | |
601 | min_element(_FIter, _FIter, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
602 | |
603 | template<typename _FIter> | |
6f95a65a | 604 | _FIter |
15ac3c72 JS |
605 | min_element(_FIter, _FIter, |
606 | __gnu_parallel::_Parallelism __parallelism_tag); | |
c2ba9709 JS |
607 | |
608 | template<typename _FIter, typename _Compare> | |
6f95a65a BK |
609 | _FIter |
610 | min_element(_FIter, _FIter, _Compare); | |
c2ba9709 | 611 | |
6f95a65a BK |
612 | template<typename _FIter, typename _Compare> |
613 | _FIter | |
614 | min_element(_FIter, _FIter, _Compare, __gnu_parallel::sequential_tag); | |
615 | ||
616 | template<typename _FIter, typename _Compare> | |
617 | _FIter | |
ee1b5fc5 | 618 | min_element(_FIter, _FIter, _Compare, __gnu_parallel::_Parallelism); |
6f95a65a BK |
619 | |
620 | template<typename _FIter, typename _Compare, typename _IterTag> | |
621 | _FIter | |
1acba85b | 622 | __min_element_switch(_FIter, _FIter, _Compare, _IterTag); |
c2ba9709 JS |
623 | |
624 | template<typename _RAIter, typename _Compare> | |
6f95a65a | 625 | _RAIter |
15ac3c72 JS |
626 | __min_element_switch( |
627 | _RAIter, _RAIter, _Compare, random_access_iterator_tag, | |
628 | __gnu_parallel::_Parallelism __parallelism | |
629 | = __gnu_parallel::parallel_balanced); | |
c2ba9709 JS |
630 | |
631 | template<typename _RAIter> | |
531898c3 PC |
632 | void |
633 | nth_element(_RAIter, _RAIter, _RAIter, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
634 | |
635 | template<typename _RAIter, typename _Compare> | |
531898c3 PC |
636 | void |
637 | nth_element(_RAIter, _RAIter, _RAIter, _Compare, | |
15ac3c72 | 638 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
639 | |
640 | template<typename _RAIter, typename _Compare> | |
531898c3 PC |
641 | void |
642 | nth_element(_RAIter, _RAIter, _RAIter, _Compare); | |
c2ba9709 JS |
643 | |
644 | template<typename _RAIter> | |
531898c3 PC |
645 | void |
646 | nth_element(_RAIter, _RAIter, _RAIter); | |
c2ba9709 JS |
647 | |
648 | template<typename _RAIter, typename _Compare> | |
531898c3 PC |
649 | void |
650 | partial_sort(_RAIter, _RAIter, _RAIter, _Compare, | |
15ac3c72 | 651 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
652 | |
653 | template<typename _RAIter> | |
531898c3 PC |
654 | void |
655 | partial_sort(_RAIter, _RAIter, _RAIter, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
656 | |
657 | template<typename _RAIter, typename _Compare> | |
531898c3 PC |
658 | void |
659 | partial_sort(_RAIter, _RAIter, _RAIter, _Compare); | |
c2ba9709 JS |
660 | |
661 | template<typename _RAIter> | |
531898c3 PC |
662 | void |
663 | partial_sort(_RAIter, _RAIter, _RAIter); | |
c2ba9709 | 664 | |
1acba85b | 665 | template<typename _FIter, typename _Predicate> |
531898c3 | 666 | _FIter |
1acba85b | 667 | partition(_FIter, _FIter, _Predicate, __gnu_parallel::sequential_tag); |
c2ba9709 | 668 | |
1acba85b | 669 | template<typename _FIter, typename _Predicate> |
531898c3 | 670 | _FIter |
1acba85b | 671 | partition(_FIter, _FIter, _Predicate); |
c2ba9709 | 672 | |
1acba85b | 673 | template<typename _FIter, typename _Predicate, typename _IterTag> |
531898c3 | 674 | _FIter |
1acba85b | 675 | __partition_switch(_FIter, _FIter, _Predicate, _IterTag); |
c2ba9709 | 676 | |
1acba85b | 677 | template<typename _RAIter, typename _Predicate> |
531898c3 | 678 | _RAIter |
15ac3c72 JS |
679 | __partition_switch( |
680 | _RAIter, _RAIter, _Predicate, random_access_iterator_tag); | |
c2ba9709 JS |
681 | |
682 | template<typename _RAIter> | |
531898c3 PC |
683 | void |
684 | random_shuffle(_RAIter, _RAIter, __gnu_parallel::sequential_tag); | |
c2ba9709 | 685 | |
531898c3 PC |
686 | template<typename _RAIter, typename _RandomNumberGenerator> |
687 | void | |
688 | random_shuffle(_RAIter, _RAIter, _RandomNumberGenerator&, | |
15ac3c72 | 689 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
690 | |
691 | template<typename _RAIter> | |
531898c3 PC |
692 | void |
693 | random_shuffle(_RAIter, _RAIter); | |
c2ba9709 | 694 | |
531898c3 PC |
695 | template<typename _RAIter, typename _RandomNumberGenerator> |
696 | void | |
247d8075 | 697 | random_shuffle(_RAIter, _RAIter, |
734f5023 | 698 | #if __cplusplus >= 201103L |
247d8075 PC |
699 | _RandomNumberGenerator&&); |
700 | #else | |
701 | _RandomNumberGenerator&); | |
702 | #endif | |
c2ba9709 JS |
703 | |
704 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
531898c3 PC |
705 | _OIter |
706 | set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, | |
15ac3c72 | 707 | __gnu_parallel::sequential_tag); |
c2ba9709 | 708 | |
531898c3 | 709 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 710 | typename _Predicate> |
531898c3 | 711 | _OIter |
1acba85b | 712 | set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, |
15ac3c72 | 713 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
714 | |
715 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
531898c3 PC |
716 | _OIter |
717 | set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); | |
c2ba9709 | 718 | |
531898c3 | 719 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 720 | typename _Predicate> |
531898c3 PC |
721 | _OIter |
722 | set_union(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate); | |
c2ba9709 | 723 | |
531898c3 | 724 | template<typename _IIter1, typename _IIter2, typename _Predicate, |
15ac3c72 JS |
725 | typename _OIter, typename _IterTag1, typename _IterTag2, |
726 | typename _IterTag3> | |
531898c3 | 727 | _OIter |
1acba85b | 728 | __set_union_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, |
15ac3c72 | 729 | _Predicate, _IterTag1, _IterTag2, _IterTag3); |
531898c3 PC |
730 | |
731 | template<typename _RAIter1, typename _RAIter2, typename _Output_RAIter, | |
15ac3c72 | 732 | typename _Predicate> |
531898c3 | 733 | _Output_RAIter |
1acba85b | 734 | __set_union_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, _Output_RAIter, |
15ac3c72 JS |
735 | _Predicate, random_access_iterator_tag, |
736 | random_access_iterator_tag, random_access_iterator_tag); | |
c2ba9709 JS |
737 | |
738 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
531898c3 PC |
739 | _OIter |
740 | set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, | |
15ac3c72 | 741 | __gnu_parallel::sequential_tag); |
c2ba9709 | 742 | |
531898c3 | 743 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 744 | typename _Predicate> |
531898c3 PC |
745 | _OIter |
746 | set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, | |
15ac3c72 | 747 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
748 | |
749 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
531898c3 PC |
750 | _OIter |
751 | set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); | |
c2ba9709 | 752 | |
531898c3 | 753 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 754 | typename _Predicate> |
531898c3 PC |
755 | _OIter |
756 | set_intersection(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate); | |
c2ba9709 | 757 | |
531898c3 | 758 | template<typename _IIter1, typename _IIter2, typename _Predicate, |
15ac3c72 JS |
759 | typename _OIter, typename _IterTag1, typename _IterTag2, |
760 | typename _IterTag3> | |
531898c3 | 761 | _OIter |
1acba85b | 762 | __set_intersection_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, |
15ac3c72 | 763 | _Predicate, _IterTag1, _IterTag2, _IterTag3); |
531898c3 PC |
764 | |
765 | template<typename _RAIter1, typename _RAIter2, typename _Output_RAIter, | |
15ac3c72 | 766 | typename _Predicate> |
531898c3 | 767 | _Output_RAIter |
1acba85b | 768 | __set_intersection_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, |
15ac3c72 JS |
769 | _Output_RAIter, _Predicate, |
770 | random_access_iterator_tag, | |
771 | random_access_iterator_tag, | |
772 | random_access_iterator_tag); | |
c2ba9709 JS |
773 | |
774 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
531898c3 PC |
775 | _OIter |
776 | set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, | |
15ac3c72 | 777 | __gnu_parallel::sequential_tag); |
c2ba9709 | 778 | |
531898c3 | 779 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 780 | typename _Predicate> |
531898c3 PC |
781 | _OIter |
782 | set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, | |
15ac3c72 | 783 | _Predicate, __gnu_parallel::sequential_tag); |
c2ba9709 JS |
784 | |
785 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
531898c3 PC |
786 | _OIter |
787 | set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); | |
788 | ||
789 | template<typename _IIter1, typename _IIter2, typename _OIter, | |
15ac3c72 | 790 | typename _Predicate> |
531898c3 PC |
791 | _OIter |
792 | set_symmetric_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, | |
15ac3c72 | 793 | _Predicate); |
531898c3 PC |
794 | |
795 | template<typename _IIter1, typename _IIter2, typename _Predicate, | |
15ac3c72 JS |
796 | typename _OIter, typename _IterTag1, typename _IterTag2, |
797 | typename _IterTag3> | |
531898c3 | 798 | _OIter |
1acba85b | 799 | __set_symmetric_difference_switch(_IIter1, _IIter1, _IIter2, _IIter2, |
15ac3c72 JS |
800 | _OIter, _Predicate, _IterTag1, _IterTag2, |
801 | _IterTag3); | |
c2ba9709 | 802 | |
531898c3 | 803 | template<typename _RAIter1, typename _RAIter2, typename _Output_RAIter, |
15ac3c72 | 804 | typename _Predicate> |
531898c3 | 805 | _Output_RAIter |
1acba85b | 806 | __set_symmetric_difference_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, |
15ac3c72 JS |
807 | _Output_RAIter, _Predicate, |
808 | random_access_iterator_tag, | |
809 | random_access_iterator_tag, | |
810 | random_access_iterator_tag); | |
c2ba9709 JS |
811 | |
812 | ||
813 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
531898c3 PC |
814 | _OIter |
815 | set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, | |
15ac3c72 | 816 | __gnu_parallel::sequential_tag); |
c2ba9709 | 817 | |
531898c3 | 818 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 819 | typename _Predicate> |
531898c3 PC |
820 | _OIter |
821 | set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate, | |
15ac3c72 | 822 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
823 | |
824 | template<typename _IIter1, typename _IIter2, typename _OIter> | |
531898c3 PC |
825 | _OIter |
826 | set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter); | |
c2ba9709 | 827 | |
531898c3 | 828 | template<typename _IIter1, typename _IIter2, typename _OIter, |
15ac3c72 | 829 | typename _Predicate> |
531898c3 PC |
830 | _OIter |
831 | set_difference(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, _Predicate); | |
c2ba9709 | 832 | |
531898c3 | 833 | template<typename _IIter1, typename _IIter2, typename _Predicate, |
15ac3c72 JS |
834 | typename _OIter, typename _IterTag1, typename _IterTag2, |
835 | typename _IterTag3> | |
531898c3 | 836 | _OIter |
1acba85b | 837 | __set_difference_switch(_IIter1, _IIter1, _IIter2, _IIter2, _OIter, |
15ac3c72 | 838 | _Predicate, _IterTag1, _IterTag2, _IterTag3); |
c2ba9709 | 839 | |
531898c3 | 840 | template<typename _RAIter1, typename _RAIter2, typename _Output_RAIter, |
15ac3c72 | 841 | typename _Predicate> |
531898c3 | 842 | _Output_RAIter |
1acba85b | 843 | __set_difference_switch(_RAIter1, _RAIter1, _RAIter2, _RAIter2, |
15ac3c72 JS |
844 | _Output_RAIter, _Predicate, |
845 | random_access_iterator_tag, | |
846 | random_access_iterator_tag, | |
847 | random_access_iterator_tag); | |
c2ba9709 JS |
848 | |
849 | ||
850 | template<typename _RAIter> | |
531898c3 PC |
851 | void |
852 | sort(_RAIter, _RAIter, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
853 | |
854 | template<typename _RAIter, typename _Compare> | |
531898c3 PC |
855 | void |
856 | sort(_RAIter, _RAIter, _Compare, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
857 | |
858 | template<typename _RAIter> | |
531898c3 PC |
859 | void |
860 | sort(_RAIter, _RAIter); | |
c2ba9709 JS |
861 | |
862 | template<typename _RAIter, typename _Compare> | |
531898c3 PC |
863 | void |
864 | sort(_RAIter, _RAIter, _Compare); | |
c2ba9709 JS |
865 | |
866 | template<typename _RAIter> | |
531898c3 PC |
867 | void |
868 | stable_sort(_RAIter, _RAIter, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
869 | |
870 | template<typename _RAIter, typename _Compare> | |
531898c3 PC |
871 | void |
872 | stable_sort(_RAIter, _RAIter, _Compare, __gnu_parallel::sequential_tag); | |
c2ba9709 JS |
873 | |
874 | template<typename _RAIter> | |
531898c3 PC |
875 | void |
876 | stable_sort(_RAIter, _RAIter); | |
c2ba9709 JS |
877 | |
878 | template<typename _RAIter, typename _Compare> | |
531898c3 PC |
879 | void |
880 | stable_sort(_RAIter, _RAIter, _Compare); | |
c2ba9709 JS |
881 | |
882 | template<typename _IIter, typename _OIter> | |
531898c3 PC |
883 | _OIter |
884 | unique_copy(_IIter, _IIter, _OIter, __gnu_parallel::sequential_tag); | |
c2ba9709 | 885 | |
531898c3 PC |
886 | template<typename _IIter, typename _OIter, typename _Predicate> |
887 | _OIter | |
888 | unique_copy(_IIter, _IIter, _OIter, _Predicate, | |
15ac3c72 | 889 | __gnu_parallel::sequential_tag); |
c2ba9709 JS |
890 | |
891 | template<typename _IIter, typename _OIter> | |
531898c3 PC |
892 | _OIter |
893 | unique_copy(_IIter, _IIter, _OIter); | |
c2ba9709 | 894 | |
531898c3 PC |
895 | template<typename _IIter, typename _OIter, typename _Predicate> |
896 | _OIter | |
897 | unique_copy(_IIter, _IIter, _OIter, _Predicate); | |
c2ba9709 | 898 | |
531898c3 | 899 | template<typename _IIter, typename _OIter, typename _Predicate, |
15ac3c72 | 900 | typename _IterTag1, typename _IterTag2> |
531898c3 | 901 | _OIter |
1acba85b | 902 | __unique_copy_switch(_IIter, _IIter, _OIter, _Predicate, |
15ac3c72 | 903 | _IterTag1, _IterTag2); |
c2ba9709 | 904 | |
531898c3 PC |
905 | template<typename _RAIter, typename _RandomAccess_OIter, typename _Predicate> |
906 | _RandomAccess_OIter | |
1acba85b | 907 | __unique_copy_switch(_RAIter, _RAIter, _RandomAccess_OIter, _Predicate, |
15ac3c72 | 908 | random_access_iterator_tag, random_access_iterator_tag); |
c2ba9709 JS |
909 | } // end namespace __parallel |
910 | } // end namespace std | |
911 | ||
cbcd1e45 | 912 | #endif /* _GLIBCXX_PARALLEL_ALGORITHMFWD_H */ |