32 #ifndef _GLIBCXX_PARALLEL_SORT_H
33 #define _GLIBCXX_PARALLEL_SORT_H 1
39 #if _GLIBCXX_PARALLEL_ASSERTIONS
43 #if _GLIBCXX_MERGESORT
47 #if _GLIBCXX_QUICKSORT
51 #if _GLIBCXX_BAL_QUICKSORT
58 template<
bool __stable,
typename _RAIter,
61 __parallel_sort(_RAIter __begin, _RAIter __end,
73 template<
bool __stable,
typename _RAIter,
typename _Compare>
75 __parallel_sort(_RAIter __begin, _RAIter __end,
81 parallel_sort_mwms<__stable, true>
84 parallel_sort_mwms<__stable, false>
97 template<
bool __stable,
typename _RAIter,
typename _Compare>
99 __parallel_sort(_RAIter __begin, _RAIter __end,
105 parallel_sort_mwms<__stable, true>
118 template<
bool __stable,
typename _RAIter,
typename _Compare>
120 __parallel_sort(_RAIter __begin, _RAIter __end,
126 parallel_sort_mwms<__stable, false>
138 template<
bool __stable,
typename _RAIter,
typename _Compare>
140 __parallel_sort(_RAIter __begin, _RAIter __end,
145 _GLIBCXX_PARALLEL_ASSERT(__stable ==
false);
159 template<
bool __stable,
typename _RAIter,
typename _Compare>
161 __parallel_sort(_RAIter __begin, _RAIter __end,
166 _GLIBCXX_PARALLEL_ASSERT(__stable ==
false);
181 template<
bool __stable,
typename _RAIter,
typename _Compare>
183 __parallel_sort(_RAIter __begin, _RAIter __end,
188 __parallel_sort<__stable>
189 (__begin, __end, __comp,
201 template<
bool __stable,
typename _RAIter,
typename _Compare>
203 __parallel_sort(_RAIter __begin, _RAIter __end,
208 typedef typename _TraitsType::value_type _ValueType;
209 typedef typename _TraitsType::difference_type _DifferenceType;
212 #if _GLIBCXX_MERGESORT
216 parallel_sort_mwms<__stable, true>
219 parallel_sort_mwms<false, false>
223 #if _GLIBCXX_QUICKSORT
228 #if _GLIBCXX_BAL_QUICKSORT
234 __gnu_sequential::sort(__begin, __end, __comp);