diff options
| author | fdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-27 21:17:36 +0000 |
|---|---|---|
| committer | fdumont <fdumont@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-09-27 21:17:36 +0000 |
| commit | d6afb2354ee741cf9eb0575beaf4849d5c28f875 (patch) | |
| tree | 982dee36a36ef4c06c3ecd1d32e305fef700f0c9 /libstdc++-v3/include/parallel | |
| parent | 1dd7fae50405fb48e4f2899422e8932840b9c9a6 (diff) | |
| download | ppe42-gcc-d6afb2354ee741cf9eb0575beaf4849d5c28f875.tar.gz ppe42-gcc-d6afb2354ee741cf9eb0575beaf4849d5c28f875.zip | |
2013-09-27 François Dumont <fdumont@gcc.gnu.org>
* include/bits/predefined_ops.h: New.
* include/bits/stl_heap.h: Include <bits/predefined_ops.h>.
(__is_heap_until, __push_heap, __adjust_heap, __pop_heap): Remove
algo duplication.
(__is_heap): Adapt.
(__make_heap): New.
(make_heap): Adapt to use latter.
(__sort_heap): New.
(sort_heap): Adapt to use latter.
* include/bits/algobase.h: Include <bits/predefined_ops.h>.
(__lexicographical_compare_impl): New.
(__lexicographical_compare<false>::__lc): Adapt to use latter.
(lexicographical_compare): Likewise.
(__lower_bound): New.
(lower_bound): Adapt to use latter.
(equal): Use _GLIBCXX_STD_A::equal in N3671 overloads.
(__mismatch): New.
(mismatch): Use latter.
* include/bits/algo.h: Include <bits/predefined_ops.h>. Remove
<functional> include.
(__move_median_first, __find, __find_if, __find_if_not): Remove
algo duplication.
(__find_end): Likewise.
(__search_n): Rename into ...
(__search_n_aux): ... this.
(__search_n): Renew, use latter.
(search_n): Use latter.
(__search): New.
(search): Use latter.
(__find_end): Likewise.
(__remove_copy_if): New.
(remove_copy): Use latter.
(__adjacent_find): New.
(adjacent_find): Use latter.
(__unique): New.
(unique): Use latter.
(__unique_copy): Remove algo duplication.
(__stable_partition): New.
(stable_partition): Use latter.
(__heap_select): Remove algo duplication, use __make_heap.
(__partial_sort): New, use latter.
(partial_sort): Use latter.
(__partial_sort_copy): New.
(partial_sort_copy): Use latter.
(__unguarded_linear_insert, __insertion_sort): Remove algo
duplication.
(__unguarded_insertion_sort, __final_insertion_sort): Likewise.
(__unguarded_partition, __unguarded_partition_pivot): Likewise.
(__partial_sort): New.
(partial_sort): Use latter.
(__sort): New.
(sort): Use latter.
(lower_bound): Use __lower_bound.
(__upper_bound): New.
(upper_bound): Use latter.
(__equal_range): New.
(equal_range): Use latter.
(__move_merge_adaptive, __move_merge_adaptive_backward): Remove
algo duplication.
(__merge_adaptive, __merge_without_buffer): Likewise.
(__inplace_merge): New.
(inplace_merge): Use latter.
(__move_merge, __merge_sort_loop, __chunk_insertion_sort): Remove
algo duplication.
(__merge_sort_with_buffer, __stable_sort_adaptive): Likewise.
(__inplace_stable_sort): Likewise.
(__include): New.
(includes): Use latter.
(__next_permutation): New.
(next_permutation): Use latter.
(__prev_permutation): New.
(prev_permutation): Use latter.
(__replace_copy_if): New.
(replace_copy): Use latter.
(__is_sorted_until): New.
(is_sorted_unitl): Use latter.
(__minmax_element): New.
(minmax_element): Use latter.
(__is_permutation): New.
(is_permutation): Use latter.
(__adjacent_find): New.
(adjacent_find): Use latter.
(__count_if): New.
(count): Use latter.
(count_if): Likewise.
(__merge): New.
(merge): Use latter.
(__stable_sort): New.
(stable_sort): Use latter.
(__set_union): New.
(set_union): Use latter.
(__set_intersection): New.
(set_intersection): Use latter.
(__set_difference): New.
(set_difference): Use latter.
(__set_symmetric_difference): New.
(set_symmetric_difference): Use latter.
(__min_element): New.
(min_element): Use latter.
(__max_element): New.
(max_element): Use latter.
* include/Makefile.am: Add predefined_ops.h.
* include/Makefile.in: Regenerate.
* include/parallel/algobase.h (equal, mismatch): Add overloads
from N3671.
* testsuite/25_algorithms/is_permutation/vectorbool.cc: New.
* testsuite/25_algorithms/adjacent_find/vectorbool.cc: Likewise.
* testsuite/25_algorithms/find/vectorbool.cc: Likewise.
* testsuite/25_algorithms/find_if/vectorbool.cc: Likewise.
* testsuite/25_algorithms/find_first_of/vectorbool.cc: Likewise.
* testsuite/25_algorithms/heap/vectorbool.cc: Likewise.
* testsuite/25_algorithms/find_end/vectorbool.cc: Likewise.
* testsuite/25_algorithms/find_if_not/vectorbool.cc: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@202992 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3/include/parallel')
| -rw-r--r-- | libstdc++-v3/include/parallel/algobase.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/libstdc++-v3/include/parallel/algobase.h b/libstdc++-v3/include/parallel/algobase.h index e3737cc8f70..d615065a555 100644 --- a/libstdc++-v3/include/parallel/algobase.h +++ b/libstdc++-v3/include/parallel/algobase.h @@ -122,6 +122,25 @@ namespace __parallel _IteratorCategory1(), _IteratorCategory2()); } +#if __cplusplus > 201103L + template<typename _InputIterator1, typename _InputIterator2> + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2) + { return _GLIBCXX_STD_A::mismatch(__first1, __last1, __first2, __last2); } + + template<typename _InputIterator1, typename _InputIterator2, + typename _BinaryPredicate> + inline pair<_InputIterator1, _InputIterator2> + mismatch(_InputIterator1 __first1, _InputIterator1 __last1, + _InputIterator2 __first2, _InputIterator2 __last2, + _BinaryPredicate __binary_pred) + { + return _GLIBCXX_STD_A::mismatch(__first1, __last1, __first2, __last2, + __binary_pred); + } +#endif + // Sequential fallback template<typename _IIter1, typename _IIter2> inline bool @@ -155,6 +174,22 @@ namespace __parallel == __end1; } +#if __cplusplus > 201103L + template<typename _II1, typename _II2> + inline bool + equal(_II1 __first1, _II1 __last1, _II2 __first2, _II2 __last2) + { return _GLIBCXX_STD_A::equal(__first1, __last1, __first2, __last2); } + + template<typename _IIter1, typename _IIter2, typename _BinaryPredicate> + inline bool + equal(_IIter1 __first1, _IIter1 __last1, + _IIter2 __first2, _IIter2 __last2, _BinaryPredicate __binary_pred) + { + return _GLIBCXX_STD_A::equal(__first1, __last1, __first2, __last2, + __binary_pred); + } +#endif + // Sequential fallback template<typename _IIter1, typename _IIter2> inline bool |

