@@ -50,17 +50,15 @@ of parallel range algorithms.
50
50
template <typename I, typename Proj>
51
51
using /*projected-value-type*/ = std::remove_cvref_t<std::invoke_result_t<Proj&, std::iter_value_t<I>&>>;
52
52
53
- // C++20 analogue of nothrow-random-access-range proposed for C++26 in P3179R9; exposition only
53
+ // C++20 analogue of nothrow-random-access-range in the C++26 working draft; exposition only
54
+ // Semantic requirements are listed further below
54
55
template <typename R>
55
56
concept nothrow-random-access-range =
56
57
std::ranges::random_access_range<R> &&
57
58
std::is_lvalue_reference_v<std::iter_reference_t<std::ranges::iterator_t<R>>> &&
58
59
std::same_as<std::remove_cvref_t<std::iter_reference_t<std::ranges::iterator_t<R>>>,
59
60
std::iter_value_t<std::ranges::iterator_t<R>>>;
60
61
61
- Semantic Requirements
62
- ~~~~~~~~~~~~~~~~~~~~~
63
-
64
62
A type ``R `` models ``nothrow-random-access-range `` if no exceptions are thrown from:
65
63
66
64
- increment, decrement, copy construction, move construction, copy assignment, move assignment,
@@ -572,7 +570,7 @@ Uninitialized Memory Algorithms
572
570
std::ranges::sized_range<R> &&
573
571
std::default_initializable<std::ranges::range_value_t<R>>
574
572
std::ranges::borrowed_iterator_t<R>
575
- uninitialized_value_construct (ExecutionPolicy&& pol, R&& r, const std::ranges::range_value_t<R>& value );
573
+ uninitialized_value_construct (ExecutionPolicy&& pol, R&& r);
576
574
577
575
// uninitialized_copy
578
576
template <typename ExecutionPolicy, std::random_access_range IR, /*nothrow-random-access-range*/ OR>
@@ -594,8 +592,7 @@ Uninitialized Memory Algorithms
594
592
uninitialized_move (ExecutionPolicy&& pol, IR&& in_range, OR&& out_range);
595
593
596
594
// uninitialized_fill
597
- template <typename ExecutionPolicy, /*nothrow-random-access-range*/ R,
598
- typename T>
595
+ template <typename ExecutionPolicy, /*nothrow-random-access-range*/ R, typename T>
599
596
requires oneapi::dpl::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> &&
600
597
std::ranges::sized_range<R> &&
601
598
std::constructible_from<std::ranges::range_value_t<R>, const T&>
0 commit comments