diff options
| author | Nikolas Klauser <nikolasklauser@berlin.de> | 2023-06-09 13:45:34 -0700 |
|---|---|---|
| committer | Nikolas Klauser <nikolasklauser@berlin.de> | 2023-06-13 07:55:06 -0700 |
| commit | cd916108b4c6fea5908deed6066d5d4720cf7659 (patch) | |
| tree | 5369738071dabafe381d47baf920d87b86494334 /libcxx/include/algorithm | |
| parent | dbbd6276f20aa8bcf472f12a16a5a895ff797313 (diff) | |
[libc++][PSTL] Implement std::generate{,_n}
Reviewed By: #libc, ldionne
Spies: ldionne, libcxx-commits
Differential Revision: https://reviews.llvm.org/D152581
Diffstat (limited to 'libcxx/include/algorithm')
| -rw-r--r-- | libcxx/include/algorithm | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libcxx/include/algorithm b/libcxx/include/algorithm index 2ceedc97ae39..fefa98a67384 100644 --- a/libcxx/include/algorithm +++ b/libcxx/include/algorithm @@ -401,6 +401,11 @@ namespace ranges { requires invocable<F&> && indirectly_writable<O, invoke_result_t<F&>> constexpr O generate(O first, S last, F gen); // since C++20 + template<class ExecutionPolicy, class ForwardIterator, class Generator> + void generate(ExecutionPolicy&& exec, + ForwardIterator first, ForwardIterator last, + Generator gen); // since C++17 + template<class R, copy_constructible F> requires invocable<F&> && output_range<R, invoke_result_t<F&>> constexpr borrowed_iterator_t<R> generate(R&& r, F gen); // since C++20 @@ -409,6 +414,10 @@ namespace ranges { requires invocable<F&> && indirectly_writable<O, invoke_result_t<F&>> constexpr O generate_n(O first, iter_difference_t<O> n, F gen); // since C++20 + template<class ExecutionPolicy, class ForwardIterator, class Size, class Generator> + ForwardIterator generate_n(ExecutionPolicy&& exec, + ForwardIterator first, Size n, Generator gen); // since C++17 + template<input_iterator I1, sentinel_for<I1> S1, input_iterator I2, sentinel_for<I2> S2, class Pred = ranges::equal_to, class Proj1 = identity, class Proj2 = identity> requires indirectly_comparable<I1, I2, Pred, Proj1, Proj2> @@ -1806,6 +1815,7 @@ template <class BidirectionalIterator, class Compare> #include <__algorithm/pstl_fill.h> #include <__algorithm/pstl_find.h> #include <__algorithm/pstl_for_each.h> +#include <__algorithm/pstl_generate.h> #include <__algorithm/pstl_merge.h> #include <__algorithm/pstl_replace.h> #include <__algorithm/pstl_stable_sort.h> |
