This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] libstdc++: P1645R1 constexpr for <numeric> algorithms


On 26/02/20 10:28 -0500, Patrick Palka wrote:
On Wed, 26 Feb 2020, Jonathan Wakely wrote:

On 25/02/20 15:36 -0500, Patrick Palka wrote:
> This adds constexpr to 11 algorithms defined in <numeric> as per P1645R1.
>
> Tested on x86_64-pc-linux-gnu, OK to commit?
>
> libstdc++-v3/ChangeLog:
>
> 	P1645R1 constexpr for <numeric> algorithms
> 	* include/bits/stl_numeric.h (iota, accumulate, inner_product,
> 	partial_sum, adjacent_difference): Make conditionally constexpr for
> 	C++20.
> 	* include/std/numeric (reduce, transform_reduce, exclusive_scan,
> 	inclusive_scan, transform_exclusive_scan, transform_inclusive_scan):
> 	Likewise.  Define the feature test macro __cpp_lib_constexpr_numeric.
> 	* testsuite/26_numerics/accumulate/constexpr.cc: New test.
> 	* testsuite/26_numerics/adjacent_difference/constexpr.cc: Likewise.
> 	* testsuite/26_numerics/exclusive_scan/constexpr.cc: Likewise.
> 	* testsuite/26_numerics/inclusive_scan/constexpr.cc: Likewise.
> 	* testsuite/26_numerics/inner_product/constexpr.cc: Likewise.
> 	* testsuite/26_numerics/iota/constexpr.cc: Likewise.
> 	* testsuite/26_numerics/partial_sum/constexpr.cc: Likewise.
> 	* testsuite/26_numerics/reduce/constexpr.cc: Likewise.
> 	* testsuite/26_numerics/transform_exclusive_scan/constexpr.cc:
> Likewise.
> 	* testsuite/26_numerics/transform_inclusive_scan/constexpr.cc:
> Likewise.
> 	* testsuite/26_numerics/transform_reduce/constexpr.cc: Likewise.

testsuite/26_numerics/headers/numeric/synopsis.cc is now failing when
run with -std=gnu++2a.

For testsuite/25_algorithms/headers/algorithm/synopsis.cc we just
added _GLIBCXX20_CONSTEXPR to the test as needed.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]