@@ -1027,19 +1027,17 @@ struct __swap_ranges_fn
10271027
10281028inline constexpr __internal::__swap_ranges_fn swap_ranges;
10291029
1030- // [alg.replace_if ]
1030+ // [alg.replace ]
10311031
10321032namespace __internal
10331033{
1034-
10351034struct __replace_if_fn
10361035{
1037- template <typename _ExecutionPolicy, std::ranges::random_access_range _R,
1038- typename _Proj = std::identity, typename _T = oneapi::dpl:: projected_value_t < std::ranges::iterator_t <_R>, _Proj >,
1039- std::indirect_unary_predicate<std::projected<std::ranges::iterator_t <_R>, _Proj>> _Pred>
1036+ template <typename _ExecutionPolicy, std::ranges::random_access_range _R, typename _Proj = std::identity ,
1037+ typename _T = std::ranges::range_value_t <_R>,
1038+ std::indirect_unary_predicate<std::projected<std::ranges::iterator_t <_R>, _Proj>> _Pred>
10401039 requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t <_ExecutionPolicy>>
1041- && std::indirectly_writable<std::ranges::iterator_t <_R>, const _T&>
1042- && std::ranges::sized_range<_R>
1040+ && std::ranges::sized_range<_R> && std::indirectly_writable<std::ranges::iterator_t <_R>, const _T&>
10431041
10441042 std::ranges::borrowed_iterator_t <_R>
10451043 operator ()(_ExecutionPolicy&& __exec, _R&& __r, _Pred __pred, const _T& __new_value, _Proj __proj = {}) const
@@ -1056,23 +1054,21 @@ struct __replace_if_fn
10561054
10571055inline constexpr __internal::__replace_if_fn replace_if;
10581056
1059- // [alg.replace]
1060-
10611057namespace __internal
10621058{
1063-
10641059struct __replace_fn
10651060{
1066- template <typename _ExecutionPolicy, std::ranges::random_access_range _R, typename _Proj = std::identity,
1067- typename _T1 = oneapi::dpl::projected_value_t <std::ranges::iterator_t <_R>, _Proj>, typename _T2 = _T1>
1061+ template <typename _ExecutionPolicy, std::ranges::random_access_range _R, typename _Proj = std::identity,
1062+ typename _T1 = oneapi::dpl::projected_value_t <std::ranges::iterator_t <_R>, _Proj>,
1063+ typename _T2 = std::ranges::range_value_t <_R>>
10681064 requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t <_ExecutionPolicy>>
1069- && std::indirectly_writable<std::ranges::iterator_t <_R>, const _T2&>
1070- && std::indirect_binary_predicate<std::ranges::equal_to,
1071- std::projected<std::ranges::iterator_t <_R>, _Proj>, const _T1*>
1072- && std::ranges::sized_range<_R>
1065+ && std::ranges::sized_range<_R> && std::indirectly_writable<std::ranges::iterator_t <_R>, const _T2&>
1066+ && std::indirect_binary_predicate<std::ranges::equal_to,
1067+ std::projected<std::ranges::iterator_t <_R>, _Proj>, const _T1*>
10731068
10741069 std::ranges::borrowed_iterator_t <_R>
1075- operator ()(_ExecutionPolicy&& __exec, _R&& __r, const _T1& __old_value, const _T2& __new_value, _Proj __proj = {}) const
1070+ operator ()(_ExecutionPolicy&& __exec, _R&& __r, const _T1& __old_value, const _T2& __new_value,
1071+ _Proj __proj = {}) const
10761072 {
10771073 return oneapi::dpl::ranges::replace_if (
10781074 std::forward<_ExecutionPolicy>(__exec), std::forward<_R>(__r),
@@ -1081,7 +1077,6 @@ struct __replace_fn
10811077 __new_value, __proj);
10821078 }
10831079}; // __replace_fn
1084-
10851080} // __internal
10861081
10871082inline constexpr __internal::__replace_fn replace;
0 commit comments