@@ -209,17 +209,6 @@ Element Search Operations
209209 const T* >
210210 bool contains (ExecutionPolicy&& pol, R&& r, const T& value, Proj proj = {});
211211
212- // contains_subrange
213- template <typename ExecutionPolicy, std::ranges::random_access_range R1,
214- std::ranges::random_access_range R2, typename Pred = std::ranges::equal_to,
215- typename Proj1 = std::identity, typename Proj2 = std::identity>
216- requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
217- std::ranges::sized_range<R1> && std::ranges::sized_range<R2> &&
218- std::indirectly_comparable< std::ranges::iterator_t<R1>, std::ranges::iterator_t<R2>,
219- Pred, Proj1, Proj2 >
220- bool contains_subrange (ExecutionPolicy&& pol, R1&& r1, R2&& r2, Pred pred = {},
221- Proj1 proj1 = {}, Proj2 proj2 = {});
222-
223212 // find_last
224213 template <typename ExecutionPolicy, std::ranges::random_access_range R,
225214 typename Proj = std::identity,
@@ -250,27 +239,6 @@ Element Search Operations
250239 std::ranges::borrowed_subrange_t<R>
251240 find_last_if_not (ExecutionPolicy&& pol, R&& r, Pred pred, Proj proj = {});
252241
253- // starts_with
254- template < typename ExecutionPolicy, std::ranges::random_access_range R1,
255- std::ranges::random_access_range R2, typename Pred = std::ranges::equal_to,
256- typename Proj1 = std::identity, typename Proj2 = std::identity>
257- requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
258- std::ranges::sized_range<R1> && std::ranges::sized_range<R2> &&
259- std::indirectly_comparable< std::ranges::iterator_t<R1>, std::ranges::iterator_t<R2>,
260- Pred, Proj1, Proj2 >
261- bool starts_with (ExecutionPolicy&& pol, R1&& r1, R2&& r2, Pred pred = {},
262- Proj1 proj1 = {}, Proj2 proj2 = {});
263-
264- // ends_with
265- template <typename ExecutionPolicy, std::ranges::random_access_range R1,
266- std::ranges::random_access_range R2, typename Pred = std::ranges::equal_to,
267- typename Proj1 = std::identity, typename Proj2 = std::identity>
268- requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
269- std::ranges::sized_range<R1> && std::ranges::sized_range<R2> &&
270- std::indirectly_comparable< std::ranges::iterator_t<R1>, std::ranges::iterator_t<R2>,
271- Pred, Proj1, Proj2 >
272- bool ends_with (ExecutionPolicy&& pol, R1&& r1, R2&& r2, Pred pred = {},
273- Proj1 proj1 = {}, Proj2 proj2 = {});
274242 }
275243
276244 Minimum and Maximum
@@ -430,6 +398,39 @@ Sequence Search and Comparison
430398 std::ranges::sized_range<R1> && std::ranges::sized_range<R2>
431399 bool lexicographical_compare (ExecutionPolicy&& pol, R1&& r1, R2&& r2, Comp comp = {},
432400 Proj1 proj1 = {}, Proj2 proj2 = {});
401+ // contains_subrange
402+ template <typename ExecutionPolicy, std::ranges::random_access_range R1,
403+ std::ranges::random_access_range R2, typename Pred = std::ranges::equal_to,
404+ typename Proj1 = std::identity, typename Proj2 = std::identity>
405+ requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
406+ std::ranges::sized_range<R1> && std::ranges::sized_range<R2> &&
407+ std::indirectly_comparable< std::ranges::iterator_t<R1>, std::ranges::iterator_t<R2>,
408+ Pred, Proj1, Proj2 >
409+ bool contains_subrange (ExecutionPolicy&& pol, R1&& r1, R2&& r2, Pred pred = {},
410+ Proj1 proj1 = {}, Proj2 proj2 = {});
411+
412+ // starts_with
413+ template < typename ExecutionPolicy, std::ranges::random_access_range R1,
414+ std::ranges::random_access_range R2, typename Pred = std::ranges::equal_to,
415+ typename Proj1 = std::identity, typename Proj2 = std::identity>
416+ requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
417+ std::ranges::sized_range<R1> && std::ranges::sized_range<R2> &&
418+ std::indirectly_comparable< std::ranges::iterator_t<R1>, std::ranges::iterator_t<R2>,
419+ Pred, Proj1, Proj2 >
420+ bool starts_with (ExecutionPolicy&& pol, R1&& r1, R2&& r2, Pred pred = {},
421+ Proj1 proj1 = {}, Proj2 proj2 = {});
422+
423+ // ends_with
424+ template <typename ExecutionPolicy, std::ranges::random_access_range R1,
425+ std::ranges::random_access_range R2, typename Pred = std::ranges::equal_to,
426+ typename Proj1 = std::identity, typename Proj2 = std::identity>
427+ requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
428+ std::ranges::sized_range<R1> && std::ranges::sized_range<R2> &&
429+ std::indirectly_comparable< std::ranges::iterator_t<R1>, std::ranges::iterator_t<R2>,
430+ Pred, Proj1, Proj2 >
431+ bool ends_with (ExecutionPolicy&& pol, R1&& r1, R2&& r2, Pred pred = {},
432+ Proj1 proj1 = {}, Proj2 proj2 = {});
433+
433434 }
434435
435436 Sorting, Merge, and Heap Operations
0 commit comments