[pstl] Use std::transform_reduce instead of hand-rolled implementation
authorLouis Dionne <ldionne@apple.com>
Tue, 16 Jul 2019 17:29:09 +0000 (17:29 +0000)
committerLouis Dionne <ldionne@apple.com>
Tue, 16 Jul 2019 17:29:09 +0000 (17:29 +0000)
llvm-svn: 366233

pstl/include/pstl/internal/numeric_impl.h

index 625bb94..fe1f222 100644 (file)
@@ -93,11 +93,7 @@ _Tp
 __brick_transform_reduce(_ForwardIterator __first, _ForwardIterator __last, _Tp __init, _BinaryOperation __binary_op,
                          _UnaryOperation __unary_op, /*is_vector=*/std::false_type) noexcept
 {
-    for (; __first != __last; ++__first)
-    {
-        __init = __binary_op(__init, __unary_op(*__first));
-    }
-    return __init;
+    return std::transform_reduce(__first, __last, __init, __binary_op, __unary_op);
 }
 
 template <class _ForwardIterator, class _Tp, class _UnaryOperation, class _BinaryOperation>