From Jason Turner

[range.slide.view]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpezndqdnm/{from.md → to.md} +17 -0
tmp/tmpezndqdnm/{from.md → to.md} RENAMED
@@ -39,10 +39,13 @@ namespace std::ranges {
39
  requires (!(simple-view<V> && slide-caches-nothing<const V>));
40
  constexpr auto end() const requires slide-caches-nothing<const V>;
41
 
42
  constexpr auto size() requires sized_range<V>;
43
  constexpr auto size() const requires sized_range<const V>;
 
 
 
44
  };
45
 
46
  template<class R>
47
  slide_view(R&&, range_difference_t<R>) -> slide_view<views::all_t<R>>;
48
  }
@@ -126,5 +129,19 @@ constexpr auto size() const requires sized_range<const V>;
126
  auto sz = ranges::distance(base_) - n_ + 1;
127
  if (sz < 0) sz = 0;
128
  return to-unsigned-like(sz);
129
  ```
130
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  requires (!(simple-view<V> && slide-caches-nothing<const V>));
40
  constexpr auto end() const requires slide-caches-nothing<const V>;
41
 
42
  constexpr auto size() requires sized_range<V>;
43
  constexpr auto size() const requires sized_range<const V>;
44
+
45
+ constexpr auto reserve_hint() requires approximately_sized_range<V>;
46
+ constexpr auto reserve_hint() const requires approximately_sized_range<const V>;
47
  };
48
 
49
  template<class R>
50
  slide_view(R&&, range_difference_t<R>) -> slide_view<views::all_t<R>>;
51
  }
 
129
  auto sz = ranges::distance(base_) - n_ + 1;
130
  if (sz < 0) sz = 0;
131
  return to-unsigned-like(sz);
132
  ```
133
 
134
+ ``` cpp
135
+ constexpr auto reserve_hint() requires approximately_sized_range<V>;
136
+ constexpr auto reserve_hint() const requires approximately_sized_range<const V>;
137
+ ```
138
+
139
+ *Effects:* Equivalent to:
140
+
141
+ ``` cpp
142
+ auto sz = static_cast<range_difference_t<decltype((base_))>>(ranges::reserve_hint(base_)) -
143
+ n_ + 1;
144
+ if (sz < 0) sz = 0;
145
+ return to-unsigned-like(sz);
146
+ ```
147
+