tmp/tmpdb2_aves/{from.md → to.md}
RENAMED
|
@@ -23,27 +23,32 @@ namespace std::ranges {
|
|
| 23 |
{ return iterator<false>(ranges::begin(base_), 0); }
|
| 24 |
constexpr auto begin() const requires range-with-movable-references<const V>
|
| 25 |
{ return iterator<true>(ranges::begin(base_), 0); }
|
| 26 |
|
| 27 |
constexpr auto end() requires (!simple-view<V>) {
|
| 28 |
-
if constexpr (common_range<V> && sized_range<V>)
|
| 29 |
return iterator<false>(ranges::end(base_), ranges::distance(base_));
|
| 30 |
else
|
| 31 |
return sentinel<false>(ranges::end(base_));
|
| 32 |
}
|
| 33 |
constexpr auto end() const requires range-with-movable-references<const V> {
|
| 34 |
-
if constexpr (common_range<const V> && sized_range<const V>)
|
| 35 |
return iterator<true>(ranges::end(base_), ranges::distance(base_));
|
| 36 |
else
|
| 37 |
return sentinel<true>(ranges::end(base_));
|
| 38 |
}
|
| 39 |
|
| 40 |
constexpr auto size() requires sized_range<V>
|
| 41 |
{ return ranges::size(base_); }
|
| 42 |
constexpr auto size() const requires sized_range<const V>
|
| 43 |
{ return ranges::size(base_); }
|
| 44 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
constexpr V base() const & requires copy_constructible<V> { return base_; }
|
| 46 |
constexpr V base() && { return std::move(base_); }
|
| 47 |
};
|
| 48 |
|
| 49 |
template<class R>
|
|
|
|
| 23 |
{ return iterator<false>(ranges::begin(base_), 0); }
|
| 24 |
constexpr auto begin() const requires range-with-movable-references<const V>
|
| 25 |
{ return iterator<true>(ranges::begin(base_), 0); }
|
| 26 |
|
| 27 |
constexpr auto end() requires (!simple-view<V>) {
|
| 28 |
+
if constexpr (forward_range<V> && common_range<V> && sized_range<V>)
|
| 29 |
return iterator<false>(ranges::end(base_), ranges::distance(base_));
|
| 30 |
else
|
| 31 |
return sentinel<false>(ranges::end(base_));
|
| 32 |
}
|
| 33 |
constexpr auto end() const requires range-with-movable-references<const V> {
|
| 34 |
+
if constexpr (forward_range<const V> && common_range<const V> && sized_range<const V>)
|
| 35 |
return iterator<true>(ranges::end(base_), ranges::distance(base_));
|
| 36 |
else
|
| 37 |
return sentinel<true>(ranges::end(base_));
|
| 38 |
}
|
| 39 |
|
| 40 |
constexpr auto size() requires sized_range<V>
|
| 41 |
{ return ranges::size(base_); }
|
| 42 |
constexpr auto size() const requires sized_range<const V>
|
| 43 |
{ return ranges::size(base_); }
|
| 44 |
|
| 45 |
+
constexpr auto reserve_hint() requires approximately_sized_range<V>
|
| 46 |
+
{ return ranges::reserve_hint(base_); }
|
| 47 |
+
constexpr auto reserve_hint() const requires approximately_sized_range<const V>
|
| 48 |
+
{ return ranges::reserve_hint(base_); }
|
| 49 |
+
|
| 50 |
constexpr V base() const & requires copy_constructible<V> { return base_; }
|
| 51 |
constexpr V base() && { return std::move(base_); }
|
| 52 |
};
|
| 53 |
|
| 54 |
template<class R>
|