From Jason Turner

[range.repeat]

Diff to HTML by rtfpessoa

tmp/tmp56h3dx3v/{from.md → to.md} RENAMED
@@ -6,12 +6,12 @@
6
  the same value.
7
 
8
  The name `views::repeat` denotes a customization point object
9
  [[customization.point.object]]. Given subexpressions `E` and `F`, the
10
  expressions `views::repeat(E)` and `views::repeat(E, F)` are
11
- expression-equivalent to `repeat_view(E)` and `repeat_view(E, F)`,
12
- respectively.
13
 
14
  [*Example 1*:
15
 
16
  ``` cpp
17
  for (int i : views::repeat(17, 4))
@@ -58,12 +58,12 @@ namespace std::ranges {
58
  constexpr unreachable_sentinel_t end() const noexcept;
59
 
60
  constexpr auto size() const requires (!same_as<Bound, unreachable_sentinel_t>);
61
  };
62
 
63
- template<class T, class Bound>
64
- repeat_view(T, Bound) -> repeat_view<T, Bound>;
65
  }
66
  ```
67
 
68
  ``` cpp
69
  constexpr explicit repeat_view(const T& value, Bound bound = Bound())
 
6
  the same value.
7
 
8
  The name `views::repeat` denotes a customization point object
9
  [[customization.point.object]]. Given subexpressions `E` and `F`, the
10
  expressions `views::repeat(E)` and `views::repeat(E, F)` are
11
+ expression-equivalent to `repeat_view<decay_t<decltype((E))>>(E)` and
12
+ `repeat_view(E, F)`, respectively.
13
 
14
  [*Example 1*:
15
 
16
  ``` cpp
17
  for (int i : views::repeat(17, 4))
 
58
  constexpr unreachable_sentinel_t end() const noexcept;
59
 
60
  constexpr auto size() const requires (!same_as<Bound, unreachable_sentinel_t>);
61
  };
62
 
63
+ template<class T, class Bound = unreachable_sentinel_t>
64
+ repeat_view(T, Bound = Bound()) -> repeat_view<T, Bound>;
65
  }
66
  ```
67
 
68
  ``` cpp
69
  constexpr explicit repeat_view(const T& value, Bound bound = Bound())