From Jason Turner

[uninitialized.construct.value]

Diff to HTML by rtfpessoa

tmp/tmplwrw7sg8/{from.md → to.md} RENAMED
@@ -1,28 +1,28 @@
1
  ### `uninitialized_value_construct` <a id="uninitialized.construct.value">[[uninitialized.construct.value]]</a>
2
 
3
  ``` cpp
4
  template<class NoThrowForwardIterator>
5
- void uninitialized_value_construct(NoThrowForwardIterator first, NoThrowForwardIterator last);
 
6
  ```
7
 
8
  *Effects:* Equivalent to:
9
 
10
  ``` cpp
11
  for (; first != last; ++first)
12
- ::new (voidify(*first))
13
- typename iterator_traits<NoThrowForwardIterator>::value_type();
14
  ```
15
 
16
  ``` cpp
17
  namespace ranges {
18
  template<nothrow-forward-iterator I, nothrow-sentinel-for<I> S>
19
  requires default_initializable<iter_value_t<I>>
20
- I uninitialized_value_construct(I first, S last);
21
  template<nothrow-forward-range R>
22
  requires default_initializable<range_value_t<R>>
23
- borrowed_iterator_t<R> uninitialized_value_construct(R&& r);
24
  }
25
  ```
26
 
27
  *Effects:* Equivalent to:
28
 
@@ -32,27 +32,27 @@ for (; first != last; ++first)
32
  return first;
33
  ```
34
 
35
  ``` cpp
36
  template<class NoThrowForwardIterator, class Size>
37
- NoThrowForwardIterator uninitialized_value_construct_n(NoThrowForwardIterator first, Size n);
 
38
  ```
39
 
40
  *Effects:* Equivalent to:
41
 
42
  ``` cpp
43
  for (; n > 0; (void)++first, --n)
44
- ::new (voidify(*first))
45
- typename iterator_traits<NoThrowForwardIterator>::value_type();
46
  return first;
47
  ```
48
 
49
  ``` cpp
50
  namespace ranges {
51
  template<nothrow-forward-iterator I>
52
  requires default_initializable<iter_value_t<I>>
53
- I uninitialized_value_construct_n(I first, iter_difference_t<I> n);
54
  }
55
  ```
56
 
57
  *Effects:* Equivalent to:
58
 
 
1
  ### `uninitialized_value_construct` <a id="uninitialized.construct.value">[[uninitialized.construct.value]]</a>
2
 
3
  ``` cpp
4
  template<class NoThrowForwardIterator>
5
+ constexpr void uninitialized_value_construct(NoThrowForwardIterator first,
6
+ NoThrowForwardIterator last);
7
  ```
8
 
9
  *Effects:* Equivalent to:
10
 
11
  ``` cpp
12
  for (; first != last; ++first)
13
+ ::new (voidify(*first)) iterator_traits<NoThrowForwardIterator>::value_type();
 
14
  ```
15
 
16
  ``` cpp
17
  namespace ranges {
18
  template<nothrow-forward-iterator I, nothrow-sentinel-for<I> S>
19
  requires default_initializable<iter_value_t<I>>
20
+ constexpr I uninitialized_value_construct(I first, S last);
21
  template<nothrow-forward-range R>
22
  requires default_initializable<range_value_t<R>>
23
+ constexpr borrowed_iterator_t<R> uninitialized_value_construct(R&& r);
24
  }
25
  ```
26
 
27
  *Effects:* Equivalent to:
28
 
 
32
  return first;
33
  ```
34
 
35
  ``` cpp
36
  template<class NoThrowForwardIterator, class Size>
37
+ constexpr NoThrowForwardIterator
38
+ uninitialized_value_construct_n(NoThrowForwardIterator first, Size n);
39
  ```
40
 
41
  *Effects:* Equivalent to:
42
 
43
  ``` cpp
44
  for (; n > 0; (void)++first, --n)
45
+ ::new (voidify(*first)) iterator_traits<NoThrowForwardIterator>::value_type();
 
46
  return first;
47
  ```
48
 
49
  ``` cpp
50
  namespace ranges {
51
  template<nothrow-forward-iterator I>
52
  requires default_initializable<iter_value_t<I>>
53
+ constexpr I uninitialized_value_construct_n(I first, iter_difference_t<I> n);
54
  }
55
  ```
56
 
57
  *Effects:* Equivalent to:
58