tmp/tmpmvh3lwai/{from.md → to.md}
RENAMED
|
@@ -14,11 +14,11 @@ namespace std::ranges {
|
|
| 14 |
constexpr explicit common_view(V r);
|
| 15 |
|
| 16 |
constexpr V base() const & requires copy_constructible<V> { return base_; }
|
| 17 |
constexpr V base() && { return std::move(base_); }
|
| 18 |
|
| 19 |
-
constexpr auto begin() {
|
| 20 |
if constexpr (random_access_range<V> && sized_range<V>)
|
| 21 |
return ranges::begin(base_);
|
| 22 |
else
|
| 23 |
return common_iterator<iterator_t<V>, sentinel_t<V>>(ranges::begin(base_));
|
| 24 |
}
|
|
@@ -28,11 +28,11 @@ namespace std::ranges {
|
|
| 28 |
return ranges::begin(base_);
|
| 29 |
else
|
| 30 |
return common_iterator<iterator_t<const V>, sentinel_t<const V>>(ranges::begin(base_));
|
| 31 |
}
|
| 32 |
|
| 33 |
-
constexpr auto end() {
|
| 34 |
if constexpr (random_access_range<V> && sized_range<V>)
|
| 35 |
return ranges::begin(base_) + ranges::distance(base_);
|
| 36 |
else
|
| 37 |
return common_iterator<iterator_t<V>, sentinel_t<V>>(ranges::end(base_));
|
| 38 |
}
|
|
@@ -48,10 +48,17 @@ namespace std::ranges {
|
|
| 48 |
return ranges::size(base_);
|
| 49 |
}
|
| 50 |
constexpr auto size() const requires sized_range<const V> {
|
| 51 |
return ranges::size(base_);
|
| 52 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
};
|
| 54 |
|
| 55 |
template<class R>
|
| 56 |
common_view(R&&) -> common_view<views::all_t<R>>;
|
| 57 |
}
|
|
|
|
| 14 |
constexpr explicit common_view(V r);
|
| 15 |
|
| 16 |
constexpr V base() const & requires copy_constructible<V> { return base_; }
|
| 17 |
constexpr V base() && { return std::move(base_); }
|
| 18 |
|
| 19 |
+
constexpr auto begin() requires (!simple-view<V>) {
|
| 20 |
if constexpr (random_access_range<V> && sized_range<V>)
|
| 21 |
return ranges::begin(base_);
|
| 22 |
else
|
| 23 |
return common_iterator<iterator_t<V>, sentinel_t<V>>(ranges::begin(base_));
|
| 24 |
}
|
|
|
|
| 28 |
return ranges::begin(base_);
|
| 29 |
else
|
| 30 |
return common_iterator<iterator_t<const V>, sentinel_t<const V>>(ranges::begin(base_));
|
| 31 |
}
|
| 32 |
|
| 33 |
+
constexpr auto end() requires (!simple-view<V>) {
|
| 34 |
if constexpr (random_access_range<V> && sized_range<V>)
|
| 35 |
return ranges::begin(base_) + ranges::distance(base_);
|
| 36 |
else
|
| 37 |
return common_iterator<iterator_t<V>, sentinel_t<V>>(ranges::end(base_));
|
| 38 |
}
|
|
|
|
| 48 |
return ranges::size(base_);
|
| 49 |
}
|
| 50 |
constexpr auto size() const requires sized_range<const V> {
|
| 51 |
return ranges::size(base_);
|
| 52 |
}
|
| 53 |
+
|
| 54 |
+
constexpr auto reserve_hint() requires approximately_sized_range<V> {
|
| 55 |
+
return ranges::reserve_hint(base_);
|
| 56 |
+
}
|
| 57 |
+
constexpr auto reserve_hint() const requires approximately_sized_range<const V> {
|
| 58 |
+
return ranges::reserve_hint(base_);
|
| 59 |
+
}
|
| 60 |
};
|
| 61 |
|
| 62 |
template<class R>
|
| 63 |
common_view(R&&) -> common_view<views::all_t<R>>;
|
| 64 |
}
|