Skip to content

Commit 085eaf5

Browse files
committed
Bugfix with __pattern_swap using nanoranges
Signed-off-by: Matthew Michel <[email protected]>
1 parent 63031ab commit 085eaf5

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

include/oneapi/dpl/pstl/hetero/algorithm_ranges_impl_hetero.h

+9-7
Original file line numberDiff line numberDiff line change
@@ -173,22 +173,24 @@ __pattern_swap(__hetero_tag<_BackendTag> __tag, _ExecutionPolicy&& __exec, _Rang
173173
if (__rng1.size() <= __rng2.size())
174174
{
175175
std::size_t __n = __rng1.size();
176-
auto __exec1 = oneapi::dpl::__par_backend_hetero::make_wrapped_policy<__swap1_wrapper>(std::forward<_ExecutionPolicy>(__exec));
176+
auto __exec1 = oneapi::dpl::__par_backend_hetero::make_wrapped_policy<__swap1_wrapper>(
177+
std::forward<_ExecutionPolicy>(__exec));
177178
auto __future = oneapi::dpl::__par_backend_hetero::__parallel_for(
178179
_BackendTag{}, std::move(__exec1),
179-
unseq_backend::__brick_swap<decltype(__exec1), _Function, _Range1, _Range2>{
180+
unseq_backend::__brick_swap<decltype(__exec1), _Function, std::decay_t<_Range1>, std::decay_t<_Range2>>{
180181
{}, __f, __n},
181182
__n, __rng1, __rng2);
182183
__future.wait(__par_backend_hetero::__deferrable_mode{});
183184
return __n;
184185
}
185186
std::size_t __n = __rng2.size();
186-
auto __exec2 = oneapi::dpl::__par_backend_hetero::make_wrapped_policy<__swap2_wrapper>(std::forward<_ExecutionPolicy>(__exec));
187+
auto __exec2 =
188+
oneapi::dpl::__par_backend_hetero::make_wrapped_policy<__swap2_wrapper>(std::forward<_ExecutionPolicy>(__exec));
187189
auto __future = oneapi::dpl::__par_backend_hetero::__parallel_for(
188-
_BackendTag{}, std::move(__exec2),
189-
unseq_backend::__brick_swap<decltype(__exec2), _Function, _Range2, _Range1>{
190-
{}, __f, __n},
191-
__n, __rng2, __rng1);
190+
_BackendTag{}, std::move(__exec2),
191+
unseq_backend::__brick_swap<decltype(__exec2), _Function, std::decay_t<_Range2>, std::decay_t<_Range1>>{
192+
{}, __f, __n},
193+
__n, __rng2, __rng1);
192194
__future.wait(__par_backend_hetero::__deferrable_mode{});
193195
return __n;
194196
}

0 commit comments

Comments
 (0)