@@ -55,17 +55,15 @@ of parallel range algorithms.
55
55
template <typename I, typename Proj>
56
56
using /*projected-value-type*/ = std::remove_cvref_t<std::invoke_result_t<Proj&, std::iter_value_t<I>&>>;
57
57
58
- // C++20 analogue of nothrow-random-access-range proposed for C++26 in P3179R9; exposition only
58
+ // C++20 analogue of nothrow-random-access-range in the C++26 working draft; exposition only
59
+ // Semantic requirements are listed further below
59
60
template <typename R>
60
61
concept nothrow-random-access-range =
61
62
std::ranges::random_access_range<R> &&
62
63
std::is_lvalue_reference_v<std::iter_reference_t<std::ranges::iterator_t<R>>> &&
63
64
std::same_as<std::remove_cvref_t<std::iter_reference_t<std::ranges::iterator_t<R>>>,
64
65
std::iter_value_t<std::ranges::iterator_t<R>>>;
65
66
66
- Semantic Requirements
67
- ~~~~~~~~~~~~~~~~~~~~~
68
-
69
67
A type ``R `` models ``nothrow-random-access-range `` if no exceptions are thrown from:
70
68
71
69
- increment, decrement, copy construction, move construction, copy assignment, move assignment,
@@ -627,7 +625,7 @@ Uninitialized Memory Algorithms
627
625
std::ranges::sized_range<R> &&
628
626
std::default_initializable<std::ranges::range_value_t<R>>
629
627
std::ranges::borrowed_iterator_t<R>
630
- uninitialized_value_construct (ExecutionPolicy&& pol, R&& r, const std::ranges::range_value_t<R>& value );
628
+ uninitialized_value_construct (ExecutionPolicy&& pol, R&& r);
631
629
632
630
// uninitialized_copy
633
631
template <typename ExecutionPolicy, std::random_access_range IR, /*nothrow-random-access-range*/ OR>
@@ -649,8 +647,7 @@ Uninitialized Memory Algorithms
649
647
uninitialized_move (ExecutionPolicy&& pol, IR&& in_range, OR&& out_range);
650
648
651
649
// uninitialized_fill
652
- template <typename ExecutionPolicy, /*nothrow-random-access-range*/ R,
653
- typename T>
650
+ template <typename ExecutionPolicy, /*nothrow-random-access-range*/ R, typename T>
654
651
requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
655
652
std::ranges::sized_range<R> &&
656
653
std::constructible_from<std::ranges::range_value_t<R>, const T&>
0 commit comments