Skip to content

Commit 3ff4c96

Browse files
include/oneapi/dpl/pstl/algorithm_impl.h - fix compile error with cl compiler
1 parent 009e788 commit 3ff4c96

File tree

1 file changed

+24
-17
lines changed

1 file changed

+24
-17
lines changed

include/oneapi/dpl/pstl/algorithm_impl.h

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3388,17 +3388,19 @@ struct __mask_buffers;
33883388
template <>
33893389
struct __mask_buffers<true>
33903390
{
3391+
using _mask_ptr_t = oneapi::dpl::__utils::__parallel_set_op_mask*;
3392+
33913393
__mask_buffers(std::size_t __mask_buf_size) : __buf_mask_rng(__mask_buf_size), __buf_mask_rng_res(__mask_buf_size)
33923394
{
33933395
}
33943396

3395-
oneapi::dpl::__utils::__parallel_set_op_mask*
3397+
_mask_ptr_t
33963398
get_buf_mask_rng_data(std::size_t __offset = 0) const
33973399
{
33983400
return __buf_mask_rng.get() + __offset;
33993401
}
34003402

3401-
oneapi::dpl::__utils::__parallel_set_op_mask*
3403+
_mask_ptr_t
34023404
get_buf_mask_rng_res_data() const
34033405
{
34043406
return __buf_mask_rng_res.get();
@@ -3412,15 +3414,17 @@ struct __mask_buffers<true>
34123414
template <>
34133415
struct __mask_buffers<false>
34143416
{
3417+
using _mask_ptr_t = std::nullptr_t;
3418+
34153419
__mask_buffers(std::size_t) {}
34163420

3417-
std::nullptr_t
3421+
_mask_ptr_t
34183422
get_buf_mask_rng_data(std::size_t = 0) const
34193423
{
34203424
return nullptr;
34213425
}
34223426

3423-
std::nullptr_t
3427+
_mask_ptr_t
34243428
get_buf_mask_rng_res_data() const
34253429
{
34263430
return nullptr;
@@ -3430,9 +3434,12 @@ struct __mask_buffers<false>
34303434
template <bool __Bounded, class _IsVector, typename RawDataPtr, typename MaskDataPtr, typename _OutputIterator>
34313435
struct _ScanPred
34323436
{
3433-
RawDataPtr __buf_raw_data_begin, __buf_raw_data_end;
3434-
MaskDataPtr __buf_mask_rng_raw_data_begin, __buf_mask_rng_res_raw_data_begin;
3435-
_OutputIterator __result1, __result2;
3437+
RawDataPtr __buf_raw_data_begin;
3438+
RawDataPtr __buf_raw_data_end;
3439+
MaskDataPtr __buf_mask_rng_raw_data_begin;
3440+
MaskDataPtr __buf_mask_rng_res_raw_data_begin;
3441+
_OutputIterator __result1;
3442+
_OutputIterator __result2;
34363443

34373444
template <typename _DifferenceType1, typename _SetRange>
34383445
void
@@ -3658,22 +3665,22 @@ __parallel_set_op(__parallel_tag<_IsVector> __tag, _ExecutionPolicy&& __exec, _R
36583665
_T* __buf_raw_data_end = __buf_raw_data_begin + __buf_size;
36593666

36603667
// Temporary "window"-organized mask of used items in input ranges
3661-
auto __buf_mask_rng_raw_data_begin = __mask_bufs.get_buf_mask_rng_data();
3662-
auto __buf_mask_rng_res_raw_data_begin = __mask_bufs.get_buf_mask_rng_res_data();
3668+
using _mask_ptr_t = typename __mask_buffers<__Bounded>::_mask_ptr_t;
3669+
_mask_ptr_t __buf_mask_rng_raw_data_begin = __mask_bufs.get_buf_mask_rng_data();
3670+
_mask_ptr_t __buf_mask_rng_res_raw_data_begin = __mask_bufs.get_buf_mask_rng_res_data();
36633671

36643672
_DifferenceType __res_reachedOutPos = 0; // offset to the first unprocessed item from output range
36653673

36663674
_SetRangeCombiner<__Bounded, _DifferenceType> __combine_pred;
36673675

36683676
// Scan predicate
3669-
_ScanPred<__Bounded, _IsVector, decltype(__buf_raw_data_begin), decltype(__buf_mask_rng_raw_data_begin),
3670-
_OutputIterator>
3671-
__scan_pred{__buf_raw_data_begin,
3672-
__buf_raw_data_end,
3673-
__buf_mask_rng_raw_data_begin,
3674-
__buf_mask_rng_res_raw_data_begin,
3675-
__result1,
3676-
__result2};
3677+
_ScanPred<__Bounded, _IsVector, _T*, _mask_ptr_t, _OutputIterator> __scan_pred{
3678+
__buf_raw_data_begin,
3679+
__buf_raw_data_end,
3680+
__buf_mask_rng_raw_data_begin,
3681+
__buf_mask_rng_res_raw_data_begin,
3682+
__result1,
3683+
__result2};
36773684

36783685
_ParallelSetOpStrictScanPred<__Bounded, _SetRange, _RandomAccessIterator1, _RandomAccessIterator2,
36793686
_OutputIterator, _SizeFunction, _SetUnionOp, _Compare, _Proj1, _Proj2, _T>

0 commit comments

Comments
 (0)