tmp/tmpuq63zqpk/{from.md → to.md}
RENAMED
|
@@ -69,10 +69,13 @@ namespace std::ranges {
|
|
| 69 |
}
|
| 70 |
}
|
| 71 |
|
| 72 |
constexpr auto size() requires sized_range<V>;
|
| 73 |
constexpr auto size() const requires sized_range<const V>;
|
|
|
|
|
|
|
|
|
|
| 74 |
};
|
| 75 |
|
| 76 |
template<class R>
|
| 77 |
stride_view(R&&, range_difference_t<R>) -> stride_view<views::all_t<R>>;
|
| 78 |
}
|
|
@@ -102,10 +105,22 @@ constexpr auto size() const requires sized_range<const V>;
|
|
| 102 |
|
| 103 |
``` cpp
|
| 104 |
return to-unsigned-like(div-ceil(ranges::distance(base_), stride_));
|
| 105 |
```
|
| 106 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 107 |
#### Class template `stride_view::iterator` <a id="range.stride.iterator">[[range.stride.iterator]]</a>
|
| 108 |
|
| 109 |
``` cpp
|
| 110 |
namespace std::ranges {
|
| 111 |
template<input_range V>
|
|
@@ -263,11 +278,11 @@ return *this;
|
|
| 263 |
|
| 264 |
``` cpp
|
| 265 |
constexpr void operator++(int);
|
| 266 |
```
|
| 267 |
|
| 268 |
-
*Effects:* Equivalent to
|
| 269 |
|
| 270 |
``` cpp
|
| 271 |
constexpr iterator operator++(int) requires forward_range<Base>;
|
| 272 |
```
|
| 273 |
|
|
|
|
| 69 |
}
|
| 70 |
}
|
| 71 |
|
| 72 |
constexpr auto size() requires sized_range<V>;
|
| 73 |
constexpr auto size() const requires sized_range<const V>;
|
| 74 |
+
|
| 75 |
+
constexpr auto reserve_hint() requires approximately_sized_range<V>;
|
| 76 |
+
constexpr auto reserve_hint() const requires approximately_sized_range<const V>;
|
| 77 |
};
|
| 78 |
|
| 79 |
template<class R>
|
| 80 |
stride_view(R&&, range_difference_t<R>) -> stride_view<views::all_t<R>>;
|
| 81 |
}
|
|
|
|
| 105 |
|
| 106 |
``` cpp
|
| 107 |
return to-unsigned-like(div-ceil(ranges::distance(base_), stride_));
|
| 108 |
```
|
| 109 |
|
| 110 |
+
``` cpp
|
| 111 |
+
constexpr auto reserve_hint() requires approximately_sized_range<V>;
|
| 112 |
+
constexpr auto reserve_hint() const requires approximately_sized_range<const V>;
|
| 113 |
+
```
|
| 114 |
+
|
| 115 |
+
*Effects:* Equivalent to:
|
| 116 |
+
|
| 117 |
+
``` cpp
|
| 118 |
+
auto s = static_cast<range_difference_t<decltype((base_))>>(ranges::reserve_hint(base_));
|
| 119 |
+
return to-unsigned-like(div-ceil(s, stride_));
|
| 120 |
+
```
|
| 121 |
+
|
| 122 |
#### Class template `stride_view::iterator` <a id="range.stride.iterator">[[range.stride.iterator]]</a>
|
| 123 |
|
| 124 |
``` cpp
|
| 125 |
namespace std::ranges {
|
| 126 |
template<input_range V>
|
|
|
|
| 278 |
|
| 279 |
``` cpp
|
| 280 |
constexpr void operator++(int);
|
| 281 |
```
|
| 282 |
|
| 283 |
+
*Effects:* Equivalent to `++*this;`
|
| 284 |
|
| 285 |
``` cpp
|
| 286 |
constexpr iterator operator++(int) requires forward_range<Base>;
|
| 287 |
```
|
| 288 |
|