-
-
Notifications
You must be signed in to change notification settings - Fork 450
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Parallel algorithms should accept iterator/sentinel pairs #3646
Labels
category: algorithms
project: GSoC
tag: pinned
Never close as stale
type: compatibility issue
type: feature request
Milestone
Comments
This was referenced Feb 1, 2019
msimberg
added a commit
that referenced
this issue
Apr 26, 2019
count and count_if accepts different iterator types
@hkaiser Should we link the related Technical Specification to the description? |
Sure, please feel free to do that, thanks! |
Related TS : The latest Technical Specification that fully describes the changes that need to be made. |
This was referenced Jun 15, 2021
This was referenced Jun 27, 2021
This was referenced Jul 7, 2021
This was referenced Jul 15, 2021
Merged
Merged
Thanks to everybody resolving the issue. Closing this now! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
category: algorithms
project: GSoC
tag: pinned
Never close as stale
type: compatibility issue
type: feature request
Our parallel algorithms currently expect for the begin/end iterator pairs to be of the same type. This is an unnecessary limitation. We should relax that.
Here is the list of algorithms that need to be adapted:
adjacent_difference
(Adjacent #5564)adjacent_find
(Adapt adjacent_find to C++20 #4996)all_of
any_of
none_of
copy
copy_if
(Implement customization point for hpx::copy and hpx::ranges::copy #4821)move
count
count_if
equal
(Adapting hpx::equal to be conforming to C++20 #4883)mismatch
(Adapting mismatch to C++20 #4884)exclusive_scan
(Adapt exclusive_scan to C++20 #5436)inclusive_scan
(Adapt inclusive_scan to C++ 20 #5439)reduce
(see Allowing for end iterator being different from begin iterator #3650, Adding CPOs for hpx::reduce #4836)transform
(Adapting transform to C++20 (non-compilable PR) #4855, Adapt transform to C++20 (compilable version) #4888, Adapt transform to C++20 #5051)fill
(Making fill and fill_n compatible with C++20 #4860)find
find_end
find_first_of
find_if
find_if_not
(Adapting hpx::find and friends to C++20 #4885)for_each
for_each_n
(Add CPOs for for_each #4867)for_loop
for_loop_strided
for_loop_n
for_loop_strided_n
(Add ranges overloads to for_loop (and variants) #4980)generate
generate_n
(Making generate() and generate_n conforming to C++20 #4896)is_heap
is_heap_until
(Making is_heap and is_heap_until conforming to C++20 #4965)is_partitioned
(Adapt is_partitioned to C++20 #5006)is_sorted
is_sorted_until
(Adapt is_sorted and is_sorted_until to C++20 #5025)lexicographical_compare
(Adapt lexicographical_compare to C++20 #5350)max_element
min_element
minmax_element
(Adapt min_element, max_element and minmax_element to C++20 #5241)make_heap
(Adding parallel make_heap #4964)sort
(Adapt sort to C++ 20 #5460)partial_sort
partial_sort_copy
(Add partial_sort_copy and adapt partial sort to c++ 20 #5630)nth_element
(Add nth_element #5592)stable_sort
(see Adding implementation of stable_sort #4803)partition
partition_copy
stable_partition
(Adapt partition, partition_copy and stable_partition to C++ 20 #5540)remove
remove_if
(Adapt remove and remove_if to C++20 #5125)remove_copy
remove_copy_if
(Adapt remove_copy(_if) to C++20 #5150)replace
replace_copy
replace_copy_if
replace_if
(Adapt replace(_if) to C++20 #5192)reverse
reverse_copy
(Adapt reverse to C++20 #5225)rotate
rotate_copy
(Adapt rotate/rotate_copy to C++20 #5459)search
(Adaptsearch
to C++20 and Range TS #5066)set_difference
set_intersection
set_symmetric_difference
set_union
includes
(Making set algorithms conform to C++20 #4970)merge
inplace_merge
(Making set algorithms conform to C++20 #4970)swap_ranges
(Adapt swap_ranges to C++ 20 #5449)uninitialized_copy
uninitialized_copy_n
(Adapt uninitialized_copy and uninitialized_copy_n to C++ 20 #5371)uninitialized_fill
uninitialized_fill_n
(Adapt uninitialized_fill and uninitialized_fill_n to C++ 20 #5402)uninitialized_default_construct
uninitialized_default_construct_n
(Adapt uninitialized_default_construct and uninitialized_default_construct_n to C++ 20 #5415)uninitialized_value_construct
uninitialized_value_construct_n
(Adapt uninitialized_value_construct and uninitialized_value_construct_n to C++ 20 #5416)uninitialized_move
uninitialized_move_n
(Adapt uninitialized_move and uninitialized_move_n to C++ 20 #5389)unique
unique_copy
(Adapt unique and unique_copy to C++ 20 #5458)transform_reduce
(Making transform_reduce conforming to C++20 #4925)transform_exclusive_scan
(Adapt transform_exclusive_scan to C++ 20 #5440)transform_inclusive_scan
(Adapt transform_inclusive_scan to C++ 20 #5444)destroy
destroy_n
(Making destroy and destroy_n conforming to C++20 #4869)The text was updated successfully, but these errors were encountered: