From Jason Turner

[range.iota.iterator]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp59l1migb/{from.md → to.md} +17 -5
tmp/tmp59l1migb/{from.md → to.md} RENAMED
@@ -1,21 +1,23 @@
1
  #### Class `iota_view::iterator` <a id="range.iota.iterator">[[range.iota.iterator]]</a>
2
 
3
  ``` cpp
4
  namespace std::ranges {
5
  template<weakly_incrementable W, semiregular Bound>
6
- requires weakly-equality-comparable-with<W, Bound>
7
  struct iota_view<W, Bound>::iterator {
8
  private:
9
  W value_ = W(); // exposition only
 
10
  public:
11
  using iterator_concept = see below;
12
- using iterator_category = input_iterator_tag;
 
13
  using value_type = W;
14
  using difference_type = IOTA-DIFF-T(W);
15
 
16
- iterator() = default;
17
  constexpr explicit iterator(W value);
18
 
19
  constexpr W operator*() const noexcept(is_nothrow_copy_constructible_v<W>);
20
 
21
  constexpr iterator& operator++();
@@ -229,11 +231,16 @@ friend constexpr auto operator<=>(const iterator& x, const iterator& y)
229
  ``` cpp
230
  friend constexpr iterator operator+(iterator i, difference_type n)
231
  requires advanceable<W>;
232
  ```
233
 
234
- *Effects:* Equivalent to: `return i += n;`
 
 
 
 
 
235
 
236
  ``` cpp
237
  friend constexpr iterator operator+(difference_type n, iterator i)
238
  requires advanceable<W>;
239
  ```
@@ -243,11 +250,16 @@ friend constexpr iterator operator+(difference_type n, iterator i)
243
  ``` cpp
244
  friend constexpr iterator operator-(iterator i, difference_type n)
245
  requires advanceable<W>;
246
  ```
247
 
248
- *Effects:* Equivalent to: `return i -= n;`
 
 
 
 
 
249
 
250
  ``` cpp
251
  friend constexpr difference_type operator-(const iterator& x, const iterator& y)
252
  requires advanceable<W>;
253
  ```
 
1
  #### Class `iota_view::iterator` <a id="range.iota.iterator">[[range.iota.iterator]]</a>
2
 
3
  ``` cpp
4
  namespace std::ranges {
5
  template<weakly_incrementable W, semiregular Bound>
6
+ requires weakly-equality-comparable-with<W, Bound> && copyable<W>
7
  struct iota_view<W, Bound>::iterator {
8
  private:
9
  W value_ = W(); // exposition only
10
+
11
  public:
12
  using iterator_concept = see below;
13
+ using iterator_category = input_iterator_tag; // present only if W models incrementable and
14
+ // IOTA-DIFF-T(W) is an integral type
15
  using value_type = W;
16
  using difference_type = IOTA-DIFF-T(W);
17
 
18
+ iterator() requires default_initializable<W> = default;
19
  constexpr explicit iterator(W value);
20
 
21
  constexpr W operator*() const noexcept(is_nothrow_copy_constructible_v<W>);
22
 
23
  constexpr iterator& operator++();
 
231
  ``` cpp
232
  friend constexpr iterator operator+(iterator i, difference_type n)
233
  requires advanceable<W>;
234
  ```
235
 
236
+ *Effects:* Equivalent to:
237
+
238
+ ``` cpp
239
+ i += n;
240
+ return i;
241
+ ```
242
 
243
  ``` cpp
244
  friend constexpr iterator operator+(difference_type n, iterator i)
245
  requires advanceable<W>;
246
  ```
 
250
  ``` cpp
251
  friend constexpr iterator operator-(iterator i, difference_type n)
252
  requires advanceable<W>;
253
  ```
254
 
255
+ *Effects:* Equivalent to:
256
+
257
+ ``` cpp
258
+ i -= n;
259
+ return i;
260
+ ```
261
 
262
  ``` cpp
263
  friend constexpr difference_type operator-(const iterator& x, const iterator& y)
264
  requires advanceable<W>;
265
  ```