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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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 |
```
|