@@ -1365,7 +1365,7 @@ __parallel_selective_copy(__parallel_tag<_IsVector>, _ExecutionPolicy&& __exec,
13651365 __stop_in = __i + __stop; // Since there is only one such position, there is no data race
13661366 }
13671367 },
1368- [&__stop_out](auto __total) { // Apex
1368+ [&__stop_out](_DifferenceType __total) { // Apex
13691369 if (__total < __stop_out) // Output size is bigger than needed
13701370 __stop_out = __total;
13711371 });
@@ -1401,17 +1401,13 @@ __pattern_copy_if(__parallel_tag<_IsVector> __tag, _ExecutionPolicy&& __exec, _R
14011401 return __internal::__brick_copy_if (__first, __last, __result, __pred, _IsVector{});
14021402}
14031403
1404- template <class _IsVector , class _ExecutionPolicy , class _RandomAccessIterator1 , class _RandomAccessIterator2 ,
1405- class _UnaryPredicate >
1404+ template <class _IsVector , class _ExecutionPolicy , class _RandomAccessIterator1 , class _DifferenceType ,
1405+ class _RandomAccessIterator2 , class _UnaryPredicate >
14061406std::pair<_RandomAccessIterator1, _RandomAccessIterator2>
14071407__pattern_bounded_copy_if (__parallel_tag<_IsVector> __tag, _ExecutionPolicy&& __exec, _RandomAccessIterator1 __first,
1408- typename std::iterator_traits<_RandomAccessIterator1>::difference_type __n,
1409- _RandomAccessIterator2 __result,
1410- typename std::iterator_traits<_RandomAccessIterator2>::difference_type __n_out,
1408+ _DifferenceType __n, _RandomAccessIterator2 __result, _DifferenceType __n_out,
14111409 _UnaryPredicate __pred)
14121410{
1413- using _DifferenceType = typename std::iterator_traits<_RandomAccessIterator1>::difference_type;
1414-
14151411 return __parallel_selective_copy (
14161412 __tag, std::forward<_ExecutionPolicy>(__exec), __first, __n, __result, _DifferenceType{__n_out},
14171413 [&__pred](_RandomAccessIterator1 __it, _DifferenceType __idx) { return __pred (__it[__idx]); });
0 commit comments