@@ -3388,17 +3388,19 @@ struct __mask_buffers;
33883388template <>
33893389struct __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>
34123414template <>
34133415struct __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>
34303434template <bool __Bounded, class _IsVector , typename RawDataPtr, typename MaskDataPtr, typename _OutputIterator>
34313435struct _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