From Jason Turner

[uninitialized.fill]

Diff to HTML by rtfpessoa

tmp/tmpa3s8a659/{from.md → to.md} RENAMED
@@ -13,25 +13,24 @@ for (; first != last; ++first)
13
  typename iterator_traits<NoThrowForwardIterator>::value_type(x);
14
  ```
15
 
16
  ``` cpp
17
  namespace ranges {
18
- template<no-throw-forward-iterator I, no-throw-sentinel<I> S, class T>
19
  requires constructible_from<iter_value_t<I>, const T&>
20
  I uninitialized_fill(I first, S last, const T& x);
21
- template<no-throw-forward-range R, class T>
22
  requires constructible_from<range_value_t<R>, const T&>
23
  borrowed_iterator_t<R> uninitialized_fill(R&& r, const T& x);
24
  }
25
  ```
26
 
27
  *Effects:* Equivalent to:
28
 
29
  ``` cpp
30
- for (; first != last; ++first) {
31
  ::new (voidify(*first)) remove_reference_t<iter_reference_t<I>>(x);
32
- }
33
  return first;
34
  ```
35
 
36
  ``` cpp
37
  template<class NoThrowForwardIterator, class Size, class T>
@@ -47,11 +46,11 @@ for (; n--; ++first)
47
  return first;
48
  ```
49
 
50
  ``` cpp
51
  namespace ranges {
52
- template<no-throw-forward-iterator I, class T>
53
  requires constructible_from<iter_value_t<I>, const T&>
54
  I uninitialized_fill_n(I first, iter_difference_t<I> n, const T& x);
55
  }
56
  ```
57
 
 
13
  typename iterator_traits<NoThrowForwardIterator>::value_type(x);
14
  ```
15
 
16
  ``` cpp
17
  namespace ranges {
18
+ template<nothrow-forward-iterator I, nothrow-sentinel-for<I> S, class T>
19
  requires constructible_from<iter_value_t<I>, const T&>
20
  I uninitialized_fill(I first, S last, const T& x);
21
+ template<nothrow-forward-range R, class T>
22
  requires constructible_from<range_value_t<R>, const T&>
23
  borrowed_iterator_t<R> uninitialized_fill(R&& r, const T& x);
24
  }
25
  ```
26
 
27
  *Effects:* Equivalent to:
28
 
29
  ``` cpp
30
+ for (; first != last; ++first)
31
  ::new (voidify(*first)) remove_reference_t<iter_reference_t<I>>(x);
 
32
  return first;
33
  ```
34
 
35
  ``` cpp
36
  template<class NoThrowForwardIterator, class Size, class T>
 
46
  return first;
47
  ```
48
 
49
  ``` cpp
50
  namespace ranges {
51
+ template<nothrow-forward-iterator I, class T>
52
  requires constructible_from<iter_value_t<I>, const T&>
53
  I uninitialized_fill_n(I first, iter_difference_t<I> n, const T& x);
54
  }
55
  ```
56