|    Non-modifying sequence operations  
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class InputIt, class UnaryPred > 
 bool all_of( ExecutionPolicy&& policy, InputIt first, InputIt last,UnaryPred p );
 | std::all_of | 
| template< class ExecutionPolicy, class InputIt, class UnaryPred > 
 bool any_of( ExecutionPolicy&& policy, InputIt first, InputIt last,UnaryPred p );
 | std::any_of | 
| template< class ExecutionPolicy, class InputIt, class UnaryPred > 
 bool none_of( ExecutionPolicy&& policy, InputIt first, InputIt last,UnaryPred p );
 | std::none_of | 
| template< class ExecutionPolicy, class InputIt, class T > 
 typename iterator_traits<InputIt>::difference_typecount( ExecutionPolicy&& policy, InputIt first, InputIt last,
 const T &value );
 | std::count | 
| template< class ExecutionPolicy, class InputIt, class UnaryPred > 
 typename iterator_traits<InputIt>::difference_typecount_if( ExecutionPolicy&& policy, InputIt first, InputIt last,
 UnaryPred p );
 | std::count_if | 
| template< class ExecutionPolicy, class InputIt1, class InputIt2 > 
 std::pair<InputIt1,InputIt2>mismatch( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2 );
 
 template< class ExecutionPolicy, class InputIt1,
 class InputIt2, class BinaryPred >
 std::pair<InputIt1,InputIt2>
 mismatch( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, BinaryPred p );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2 >
 std::pair<InputIt1,InputIt2>
 mismatch( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2 );
 
 template< class ExecutionPolicy, class InputIt1,
 class InputIt2, class BinaryPred >
 std::pair<InputIt1,InputIt2>
 mismatch( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2, BinaryPred p );
 | std::mismatch | 
| template< class ExecutionPolicy, class InputIt1, class InputIt2 > 
 bool equal( ExecutionPolicy&& policy,InputIt1 first1, InputIt1 last1,
 InputIt2 first2 );
 
 template< class ExecutionPolicy, class InputIt1,
 class InputIt2, class BinaryPred >
 bool equal( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, BinaryPred p );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2 >
 bool equal( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2 );
 
 template< class ExecutionPolicy, class InputIt1,
 class InputIt2, class BinaryPred >
 bool equal( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2, BinaryPred p );
 | std::equal | 
| template< class ExecutionPolicy, class InputIt, class T > 
 InputIt find( ExecutionPolicy&& policy, InputIt first, InputIt last,const T& value );
 | std::find | 
| template< class ExecutionPolicy, class InputIt, class UnaryPred > 
 InputIt find_if( ExecutionPolicy&& policy, InputIt first, InputIt last,UnaryPred p );
 | std::find_if | 
| template< class ExecutionPolicy, class InputIt, class UnaryPred > 
 InputIt find_if_not( ExecutionPolicy&& policy,InputIt first, InputIt last,
 UnaryPred p );
 | std::find_if_not | 
| template< class ExecutionPolicy, class ForwardIt1, class ForwardIt2 > 
 ForwardIt1 find_end( ExecutionPolicy&& policy,ForwardIt1 first, ForwardIt1 last,
 ForwardIt2 s_first, ForwardIt2 s_last );
 
 template< class ExecutionPolicy, class ForwardIt1,
 class ForwardIt2, class BinaryPred >
 ForwardIt1 find_end( ExecutionPolicy&& policy,
 ForwardIt1 first, ForwardIt1 last,
 ForwardIt2 s_first, ForwardIt2 s_last,
 BinaryPred p );
 | std::find_end | 
| template< class ExecutionPolicy, class InputIt, class ForwardIt > 
 InputIt find_first_of( ExecutionPolicy&& policy,InputIt first, InputIt last,
 ForwardIt s_first, ForwardIt s_last );
 
 template< class ExecutionPolicy, class InputIt,
 class ForwardIt, class BinaryPred >
 InputIt find_first_of( ExecutionPolicy&& policy,
 InputIt first, InputIt last,
 ForwardIt s_first, ForwardIt s_last,
 BinaryPred p );
 | std::find_first_of | 
| template< class ExecutionPolicy, class ForwardIt > 
 ForwardIt adjacent_find( ExecutionPolicy&& policy, ForwardIt first, ForwardIt last );
 
 template< class ExecutionPolicy, class ForwardIt, class BinaryPred>
 ForwardIt adjacent_find( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last,
 BinaryPred p );
 | std::adjacent_find | 
| template< class ExecutionPolicy, class ForwardIt1, class ForwardIt2 > 
 ForwardIt1 search( ExecutionPolicy&& policy, ForwardIt1 first, ForwardIt1 last,
 ForwardIt2 s_first, ForwardIt2 s_last );
 
 template< class ExecutionPolicy, class ForwardIt1,
 class ForwardIt2, class BinaryPred >
 ForwardIt1 search( ExecutionPolicy&& policy,
 ForwardIt1 first, ForwardIt1 last,
 ForwardIt2 s_first, ForwardIt2 s_last,
 BinaryPred p );
 | std::search | 
| template< class ExecutionPolicy, class ForwardIt, class Size, class T > 
 ForwardIt search_n( ExecutionPolicy&& policy,ForwardIt first, ForwardIt last,
 Size count, const T& value );
 
 template< class ExecutionPolicy, class ForwardIt,
 class Size, class T, class BinaryPred >
 ForwardIt search_n( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last,
 Size count, const T& value,
 BinaryPred p );
 | std::search_n | 
|    Modifying sequence operations  
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class InputIt, class OutputIt > 
 OutputIt copy( ExecutionPolicy&& policy, InputIt first, InputIt last, OutputIt d_first );
 | std::copy | 
| template< class ExecutionPolicy, class InputIt, 
           class OutputIt, class UnaryPred >OutputIt copy_if( ExecutionPolicy&& policy, InputIt first, InputIt last,
 OutputIt d_first, UnaryPred pred );
 | std::copy_if | 
| template< class ExecutionPolicy, class InputIt, 
           class Size, class OutputIt >OutputIt copy_n( ExecutionPolicy&& policy, InputIt first, Size count,
 OutputIt result );
 | std::copy_n | 
| template< class ExecutionPolicy, class InputIt, class OutputIt > 
 OutputIt move( ExecutionPolicy&& policy, InputIt first, InputIt last,OutputIt d_first );
 | std::move | 
| template< class ExecutionPolicy, class ForwardIt, class T > 
 void fill( ExecutionPolicy&& policy, ForwardIt first, ForwardIt last,const T& value );
 | std::fill | 
| template< class ExecutionPolicy, class OutputIt, class Size, class T > 
 OutputIt fill_n( ExecutionPolicy&& policy, OutputIt first, Size count,const T& value );
 | std::fill_n | 
| template< class ExecutionPolicy, class InputIt, 
           class OutputIt, class UnaryOp >OutputIt transform( ExecutionPolicy&& policy,
 InputIt first1, InputIt last1,
 OutputIt d_first, UnaryOp unary_op );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2,
 class OutputIt, class BinaryOp >
 OutputIt transform( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, OutputIt d_first,
 BinaryOp binary_op );
 | std::transform | 
| template< class ExecutionPolicy, class ForwardIt, class Generator > 
 void generate( ExecutionPolicy&& policy, ForwardIt first, ForwardIt last,Generator g );
 | std::generate | 
| template< class ExecutionPolicy, class OutputIt, 
           class Size, class Generator >OutputIt generate_n( ExecutionPolicy&& policy, OutputIt first,
 Size count, Generator g );
 | std::generate_n | 
| template< class ExecutionPolicy, class ForwardIt, class T > 
 ForwardIt remove( ExecutionPolicy&& policy,ForwardIt first, ForwardIt last, const T& value );
 | std::remove | 
| template< class ExecutionPolicy, class ForwardIt, class UnaryPred > 
 ForwardIt remove_if( ExecutionPolicy&& policy, ForwardIt first, ForwardIt last, UnaryPred p );
 | std::remove_if | 
| template< class ExecutionPolicy, class InputIt, class OutputIt, class T > 
 OutputIt remove_copy( ExecutionPolicy&& policy, InputIt first, InputIt last,
 OutputIt d_first, const T& value );
 | std::remove_copy | 
| template< class ExecutionPolicy, class InputIt, 
           class OutputIt, class UnaryPred >OutputIt remove_copy_if( ExecutionPolicy&& policy,
 InputIt first, InputIt last,
 OutputIt d_first, UnaryPred p );
 | std::remove_copy_if | 
| template< class ExecutionPolicy, class ForwardIt, class T > 
 void replace( ExecutionPolicy&& policy,ForwardIt first, ForwardIt last,
 const T& old_value, const T& new_value );
 | std::replace | 
| template< class ExecutionPolicy, class ForwardIt, 
           class UnaryPred, class T >void replace_if( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last,
 UnaryPred p, const T& new_value );
 | std::replace_if | 
| template< class ExecutionPolicy, class InputIt, class OutputIt, class T > 
 OutputIt replace_copy( ExecutionPolicy&& policy, InputIt first, InputIt last, OutputIt d_first,
 const T& old_value, const T& new_value );
 | std::replace_copy | 
| template< class ExecutionPolicy, class InputIt, class OutputIt, 
           class UnaryPred, class T >OutputIt replace_copy_if( ExecutionPolicy&& policy,
 InputIt first, InputIt last, OutputIt d_first,
 UnaryPred p, const T& new_value );
 | std::replace_copy_if | 
| template< class ExecutionPolicy, class ForwardIt1, class ForwardIt2 > 
 ForwardIt2 swap_ranges( ExecutionPolicy&& policy,ForwardIt1 first1, ForwardIt1 last1,
 ForwardIt2 first2 );
 | std::swap_ranges | 
| template< class ExecutionPolicy, class BidirIt > 
 void reverse( ExecutionPolicy&& policy, BidirIt first, BidirIt last ); | std::reverse | 
| template< class ExecutionPolicy, class BidirIt, class OutputIt > 
 OutputIt reverse_copy( ExecutionPolicy&& policy, BidirIt first, BidirIt last, OutputIt d_first );
 | std::reverse_copy | 
| template< class ExecutionPolicy, class ForwardIt > 
 ForwardIt rotate( ExecutionPolicy&& policy, ForwardIt first, ForwardIt n_first, ForwardIt last );
 | std::rotate | 
| template< class ExecutionPolicy, class ForwardIt, class OutputIt > 
 OutputIt rotate_copy( ExecutionPolicy&& policy, ForwardIt first, ForwardIt n_first, ForwardIt last,
 OutputIt d_first );
 | std::rotate_copy | 
| template< class ExecutionPolicy, class ForwardIt > 
 ForwardIt unique( ExecutionPolicy&& policy, ForwardIt first, ForwardIt last );
 
 template< class ExecutionPolicy, class ForwardIt, class BinaryPred >
 ForwardIt unique( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last, BinaryPred p );
 | std::unique | 
| template< class ExecutionPolicy, class InputIt, class OutputIt > 
 OutputIt unique_copy( ExecutionPolicy&& policy, InputIt first, InputIt last,
 OutputIt d_first );
 
 template< class ExecutionPolicy, class InputIt,
 class OutputIt, class BinaryPred >
 OutputIt unique_copy( ExecutionPolicy&& policy,
 InputIt first, InputIt last,
 OutputIt d_first, BinaryPred p );
 | std::unique_copy | 
|    Partitioning operations  
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class InputIt, class UnaryPred > 
 bool is_partitioned( ExecutionPolicy&& policy, InputIt first, InputIt last, UnaryPred p );
 | std::is_partitioned | 
| template< class ExecutionPolicy, class ForwardIt, class UnaryPred > 
 ForwardIt partition( ExecutionPolicy&& policy, ForwardIt first, ForwardIt last, UnaryPred p );
 | std::partition | 
| template< class ExecutionPolicy, class InputIt, class OutputIt1, 
           class OutputIt2, class UnaryPred >std::pair<OutputIt1, OutputIt2>
 partition_copy( ExecutionPolicy&& policy,
 InputIt first, InputIt last,
 OutputIt1 d_first_true, OutputIt2 d_first_false,
 UnaryPred p );
 | std::partition_copy | 
| template< class ExecutionPolicy, class BidirIt, class UnaryPred > 
 BidirIt stable_partition( ExecutionPolicy&& policy, BidirIt first, BidirIt last, UnaryPred p );
 | std::stable_partition | 
|    Sorting operations  
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class ForwardIt > 
 bool is_sorted( ExecutionPolicy&& policy,ForwardIt first, ForwardIt last );
 
 template< class ExecutionPolicy, class ForwardIt, class Compare >
 bool is_sorted( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last, Compare cmp );
 | std::is_sorted | 
| template< class ExecutionPolicy, class ForwardIt > 
 ForwardIt is_sorted_until( ExecutionPolicy&& policy,ForwardIt first, ForwardIt last );
 
 template< class ExecutionPolicy, class ForwardIt, class Compare >
 ForwardIt is_sorted_until( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last,
 Compare cmp );
 | std::is_sorted_until | 
| template< class ExecutionPolicy, class RandomIt > 
 void sort( ExecutionPolicy&& policy, RandomIt first, RandomIt last );
 template< class ExecutionPolicy, class RandomIt, class Compare >
 void sort( ExecutionPolicy&& policy,
 RandomIt first, RandomIt last, Compare cmp );
 | std::sort | 
| template< class ExecutionPolicy, class RandomIt > 
 void partial_sort( ExecutionPolicy&& policy,RandomIt first, RandomIt middle, RandomIt last );
 
 template< class ExecutionPolicy, class RandomIt, class Compare >
 void partial_sort( ExecutionPolicy&& policy,
 RandomIt first, RandomIt middle, RandomIt last,
 Compare cmp );
 | std::partial_sort | 
| template< class ExecutionPolicy, class InputIt, class RandomIt > 
 RandomIt partial_sort_copy( ExecutionPolicy&& policy, InputIt first, InputIt last,
 RandomIt d_first, RandomIt d_last );
 
 template< class ExecutionPolicy, class InputIt,
 class RandomIt, class Compare >
 RandomIt partial_sort_copy( ExecutionPolicy&& policy,
 InputIt first, InputIt last,
 RandomIt d_first, RandomIt d_last,
 Compare cmp );
 | std::partial_sort_copy | 
| template< class ExecutionPolicy, class RandomIt > 
 void stable_sort( ExecutionPolicy&& policy, RandomIt first, RandomIt last );
 
 template< class ExecutionPolicy, class RandomIt, class Compare >
 void stable_sort( ExecutionPolicy&& policy,
 RandomIt first, RandomIt last, Compare cmp );
 | std::stable_sort | 
| template< class ExecutionPolicy, class RandomIt > 
 void nth_element( ExecutionPolicy&& policy,RandomIt first, RandomIt nth, RandomIt last );
 
 template< class ExecutionPolicy, class RandomIt, class Compare >
 void nth_element( ExecutionPolicy&& policy,
 RandomIt first, RandomIt nth, RandomIt last,
 Compare cmp );
 | std::nth_element | 
|    Set operations (on sorted ranges)  
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class InputIt1, 
           class InputIt2, class OutputIt >OutputIt merge( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2,
 class OutputIt, class Compare>
 OutputIt merge( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first, Compare cmp );
 | std::merge | 
| template< class ExecutionPolicy, class BidirIt > 
 void inplace_merge( ExecutionPolicy&& policy,BidirIt first, BidirIt middle, BidirIt last );
 
 template< class ExecutionPolicy, class BidirIt, class Compare>
 void inplace_merge( ExecutionPolicy&& policy,
 BidirIt first, BidirIt middle, BidirIt last,
 Compare cmp );
 | std::inplace_merge | 
| template< class ExecutionPolicy, class InputIt1, class InputIt2 > 
 bool includes( ExecutionPolicy&& policy,InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2 );
 
 template< class ExecutionPolicy, class InputIt1,
 class InputIt2, class Compare >
 bool includes( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2, Compare cmp );
 | std::includes | 
| template< class ExecutionPolicy, class InputIt1, 
           class InputIt2, class OutputIt >OutputIt set_difference( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2,
 class OutputIt, class Compare >
 OutputIt set_difference( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first, Compare cmp );
 | std::set_difference | 
| template< class ExecutionPolicy, class InputIt1, 
           class InputIt2, class OutputIt >OutputIt set_intersection( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2,
 class OutputIt, class Compare >
 OutputIt set_intersection( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first, Compare cmp );
 | std::set_intersection | 
| template< class ExecutionPolicy, class InputIt1, 
           class InputIt2, class OutputIt >OutputIt set_symmetric_difference( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2,
 class OutputIt, class Compare >
 OutputIt set_symmetric_difference( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first, Compare cmp );
 | std::set_symmetric_difference | 
| template< class ExecutionPolicy, class InputIt1, 
           class InputIt2, class OutputIt >OutputIt set_union( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2,
 class OutputIt, class Compare >
 OutputIt set_union( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 OutputIt d_first, Compare cmp );
 | std::set_union | 
|    Heap operations  
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class RandomIt > 
 bool is_heap( ExecutionPolicy&& policy,RandomIt first, RandomIt last );
 
 template< class ExecutionPolicy, class RandomIt, class Compare >
 bool is_heap( ExecutionPolicy&& policy,
 RandomIt first, RandomIt last, Compare cmp );
 | std::is_heap | 
| template< class ExecutionPolicy, class RandomIt > 
 RandomIt is_heap_until( ExecutionPolicy&& policy, RandomIt first, RandomIt last );
 
 template< class ExecutionPolicy, class RandomIt, class Compare >
 RandomIt is_heap_until( ExecutionPolicy&& policy,
 RandomIt first, RandomIt last, Compare cmp );
 | std::is_heap_until | 
|    Minimum/maximum operations  
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class ForwardIt > 
 ForwardIt max_element( ExecutionPolicy&& policy,ForwardIt first, ForwardIt last);
 
 template< class ExecutionPolicy, class ForwardIt, class Compare >
 ForwardIt max_element( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last, Compare cmp);
 | std::max_element | 
| template< class ExecutionPolicy, class ForwardIt > 
 ForwardIt min_element( ExecutionPolicy&& policy,ForwardIt first, ForwardIt last);
 
 template< class ExecutionPolicy, class ForwardIt, class Compare >
 ForwardIt min_element( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last, Compare cmp);
 | std::min_element | 
| template< class ExecutionPolicy, class ForwardIt > 
 std::pair<ForwardIt,ForwardIt>minmax_element( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last);
 
 template< class ExecutionPolicy, class ForwardIt, class Compare >
 std::pair<ForwardIt,ForwardIt>
 minmax_element( ExecutionPolicy&& policy,
 ForwardIt first, ForwardIt last, Compare cmp);
 | std::minmax_element | 
| template< class ExecutionPolicy, class InputIt1, class InputIt2 > 
 bool lexicographical_compare( ExecutionPolicy&& policy,InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2 );
 
 template< class ExecutionPolicy, class InputIt1,
 class InputIt2, class Compare >
 bool lexicographical_compare( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1,
 InputIt2 first2, InputIt2 last2,
 Compare cmp );
 | std::lexicographical_compare | 
|    Numeric operations  
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class InputIt, class OutputIt > 
 OutputIt adjacent_difference( ExecutionPolicy&& policy, InputIt first, InputIt last,
 OutputIt d_first );
 
 template< class ExecutionPolicy, class InputIt,
 class OutputIt, class BinaryOp >
 OutputIt adjacent_difference( ExecutionPolicy&& policy,
 InputIt first, InputIt last,
 OutputIt d_first, BinaryOp op );
 | std::adjacent_difference | 
| template< class ExecutionPolicy, class InputIt1, 
           class InputIt2, class T >T inner_product( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1, InputIt2 first2,
 T value );
 
 template< class ExecutionPolicy, class InputIt1, class InputIt2,
 class T, class BinaryOp1, class BinaryOp2>
 T inner_product( ExecutionPolicy&& policy,
 InputIt1 first1, InputIt1 last1, InputIt2 first2,
 T value, BinaryOp1 op1, BinaryOp2 op2 );
 | std::inner_product | 
|    Operations on uninitialized memory 
 | 
| Parallelized algorithm | Existing algorithm | 
| template< class ExecutionPolicy, class InputIt, class ForwardIt > 
 ForwardIt uninitialized_copy( ExecutionPolicy&& policy, InputIt first, InputIt last,
 ForwardIt d_first );
 | std::uninitialized_copy | 
| template< class ExecutionPolicy, class InputIt, 
           class Size, class ForwardIt >ForwardIt uninitialized_copy_n( ExecutionPolicy&& policy,
 InputIt first, Size count,
 ForwardIt d_first);
 | std::uninitialized_copy_n | 
| template< class ExecutionPolicy, class ForwardIt, class T > 
 void uninitialized_fill( ExecutionPolicy&& policy, ForwardIt first, ForwardIt last,
 const T& value );
 | std::uninitialized_fill | 
| template< class ExecutionPolicy, class ForwardIt, class Size, class T > 
 ForwardIt uninitialized_fill_n( ExecutionPolicy&& policy,ForwardIt first, Size count,
 const T& value );
 | std::uninitialized_fill_n |