tmp/tmp6k8_tskb/{from.md → to.md}
RENAMED
|
@@ -51,11 +51,11 @@ namespace std::ranges {
|
|
| 51 |
constexpr explicit common_view(V r);
|
| 52 |
|
| 53 |
constexpr V base() const & requires copy_constructible<V> { return base_; }
|
| 54 |
constexpr V base() && { return std::move(base_); }
|
| 55 |
|
| 56 |
-
constexpr auto begin() {
|
| 57 |
if constexpr (random_access_range<V> && sized_range<V>)
|
| 58 |
return ranges::begin(base_);
|
| 59 |
else
|
| 60 |
return common_iterator<iterator_t<V>, sentinel_t<V>>(ranges::begin(base_));
|
| 61 |
}
|
|
@@ -65,11 +65,11 @@ namespace std::ranges {
|
|
| 65 |
return ranges::begin(base_);
|
| 66 |
else
|
| 67 |
return common_iterator<iterator_t<const V>, sentinel_t<const V>>(ranges::begin(base_));
|
| 68 |
}
|
| 69 |
|
| 70 |
-
constexpr auto end() {
|
| 71 |
if constexpr (random_access_range<V> && sized_range<V>)
|
| 72 |
return ranges::begin(base_) + ranges::distance(base_);
|
| 73 |
else
|
| 74 |
return common_iterator<iterator_t<V>, sentinel_t<V>>(ranges::end(base_));
|
| 75 |
}
|
|
@@ -85,10 +85,17 @@ namespace std::ranges {
|
|
| 85 |
return ranges::size(base_);
|
| 86 |
}
|
| 87 |
constexpr auto size() const requires sized_range<const V> {
|
| 88 |
return ranges::size(base_);
|
| 89 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 90 |
};
|
| 91 |
|
| 92 |
template<class R>
|
| 93 |
common_view(R&&) -> common_view<views::all_t<R>>;
|
| 94 |
}
|
|
|
|
| 51 |
constexpr explicit common_view(V r);
|
| 52 |
|
| 53 |
constexpr V base() const & requires copy_constructible<V> { return base_; }
|
| 54 |
constexpr V base() && { return std::move(base_); }
|
| 55 |
|
| 56 |
+
constexpr auto begin() requires (!simple-view<V>) {
|
| 57 |
if constexpr (random_access_range<V> && sized_range<V>)
|
| 58 |
return ranges::begin(base_);
|
| 59 |
else
|
| 60 |
return common_iterator<iterator_t<V>, sentinel_t<V>>(ranges::begin(base_));
|
| 61 |
}
|
|
|
|
| 65 |
return ranges::begin(base_);
|
| 66 |
else
|
| 67 |
return common_iterator<iterator_t<const V>, sentinel_t<const V>>(ranges::begin(base_));
|
| 68 |
}
|
| 69 |
|
| 70 |
+
constexpr auto end() requires (!simple-view<V>) {
|
| 71 |
if constexpr (random_access_range<V> && sized_range<V>)
|
| 72 |
return ranges::begin(base_) + ranges::distance(base_);
|
| 73 |
else
|
| 74 |
return common_iterator<iterator_t<V>, sentinel_t<V>>(ranges::end(base_));
|
| 75 |
}
|
|
|
|
| 85 |
return ranges::size(base_);
|
| 86 |
}
|
| 87 |
constexpr auto size() const requires sized_range<const V> {
|
| 88 |
return ranges::size(base_);
|
| 89 |
}
|
| 90 |
+
|
| 91 |
+
constexpr auto reserve_hint() requires approximately_sized_range<V> {
|
| 92 |
+
return ranges::reserve_hint(base_);
|
| 93 |
+
}
|
| 94 |
+
constexpr auto reserve_hint() const requires approximately_sized_range<const V> {
|
| 95 |
+
return ranges::reserve_hint(base_);
|
| 96 |
+
}
|
| 97 |
};
|
| 98 |
|
| 99 |
template<class R>
|
| 100 |
common_view(R&&) -> common_view<views::all_t<R>>;
|
| 101 |
}
|