https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91495

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Author: redi
Date: Tue Aug 20 21:03:11 2019
New Revision: 274754

URL: https://gcc.gnu.org/viewcvs?rev=274754&root=gcc&view=rev
Log:
Implement new serial algorithms from Parallelism TS (P0024R2)

These new (non-parallel) algorithms were added to C++17 along with the
parallel algorithms, but were missing from libstdc++.

Backported for PR libstdc++/91495, replacing the use of
std::__size_to_integer which is not present on the branch.

Backport from mainline
2019-06-19  Jonathan Wakely  <jwak...@redhat.com>

        * include/std/numeric (reduce(Iter, Iter, T, BinOp)): Fix value
        category used in invocable check.
        (reduce(Iter, Iter, T)): Pass initial value as rvalue.
        * testsuite/26_numerics/reduce/2.cc: New test.

Backport from mainline
2019-06-18  Jonathan Wakely  <jwak...@redhat.com>

        * include/bits/algorithmfwd.h: Change title of doc group.
        * include/bits/stl_algo.h (for_each_n): Add new C++17 algorithm from
        P0024R2.
        * include/bits/stl_numeric.h: Define doc group and add algos to it.
        * include/std/numeric (__is_random_access_iter): New internal trait.
        (reduce, transform_reduce, exclusive_scan, inclusive_scan)
        (transform_exclusive_scan, transform_inclusive_scan): Likewise.
        * testsuite/25_algorithms/for_each/for_each_n.cc: New test.
        * testsuite/26_numerics/exclusive_scan/1.cc: New test.
        * testsuite/26_numerics/inclusive_scan/1.cc: New test.
        * testsuite/26_numerics/reduce/1.cc: New test.
        * testsuite/26_numerics/transform_exclusive_scan/1.cc: New test.
        * testsuite/26_numerics/transform_inclusive_scan/1.cc: New test.
        * testsuite/26_numerics/transform_reduce/1.cc: New test.
        * testsuite/util/testsuite_iterators.h (test_container::size()): New
        member function.

Added:
   
branches/gcc-9-branch/libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n.cc
    branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/exclusive_scan/
   
branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc
    branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/inclusive_scan/
   
branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/inclusive_scan/1.cc
    branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/reduce/
    branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/reduce/1.cc
    branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/reduce/2.cc
   
branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/
   
branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/transform_exclusive_scan/1.cc
   
branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/
   
branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/transform_inclusive_scan/1.cc
    branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/transform_reduce/
   
branches/gcc-9-branch/libstdc++-v3/testsuite/26_numerics/transform_reduce/1.cc
Modified:
    branches/gcc-9-branch/libstdc++-v3/ChangeLog
    branches/gcc-9-branch/libstdc++-v3/include/bits/algorithmfwd.h
    branches/gcc-9-branch/libstdc++-v3/include/bits/stl_algo.h
    branches/gcc-9-branch/libstdc++-v3/include/bits/stl_numeric.h
    branches/gcc-9-branch/libstdc++-v3/include/std/numeric
    branches/gcc-9-branch/libstdc++-v3/testsuite/util/testsuite_iterators.h

Reply via email to