|
183 | 183 | namespace views { inline constexpr @\unspec@ iota = @\unspec@; }
|
184 | 184 |
|
185 | 185 | // \ref{range.repeat}, repeat view
|
186 |
| - template<@\libconcept{copy_constructible}@ W, @\libconcept{semiregular}@ Bound = unreachable_sentinel_t> |
| 186 | + template<@\libconcept{move_constructible}@ W, @\libconcept{semiregular}@ Bound = unreachable_sentinel_t> |
187 | 187 | requires (is_object_v<W> && @\libconcept{same_as}@<W, remove_cv_t<W>>
|
188 | 188 | && (@\exposid{is-integer-like}@<Bound> || @\libconcept{same_as}@<Bound, unreachable_sentinel_t>))
|
189 | 189 | class repeat_view;
|
|
3240 | 3240 |
|
3241 | 3241 | \begin{codeblock}
|
3242 | 3242 | namespace std::ranges {
|
3243 |
| - template<@\libconcept{copy_constructible}@ W, @\libconcept{semiregular}@ Bound = unreachable_sentinel_t> |
| 3243 | + template<@\libconcept{move_constructible}@ W, @\libconcept{semiregular}@ Bound = unreachable_sentinel_t> |
3244 | 3244 | requires (is_object_v<W> && @\libconcept{same_as}@<W, remove_cv_t<W>>
|
3245 | 3245 | && (@\exposid{is-integer-like}@<Bound> || @\libconcept{same_as}@<Bound, unreachable_sentinel_t>))
|
3246 | 3246 | class @\libglobal{repeat_view}@ : public view_interface<repeat_view<W, Bound>> {
|
3247 | 3247 | private:
|
3248 | 3248 | // \ref{range.repeat.iterator}, class \tcode{range_view::\exposid{iterator}}
|
3249 | 3249 | struct @\exposid{iterator}@; // \expos
|
3250 | 3250 |
|
3251 |
| - @\exposid{copyable-box}@<W> @\exposid{value_}@ = W(); // \expos, see \ref{range.copy.wrap} |
| 3251 | + @\exposid{movable-box}@<W> @\exposid{value_}@ = W(); // \expos, see \ref{range.move.wrap} |
3252 | 3252 | Bound @\exposid{bound_}@ = Bound(); // \expos
|
3253 | 3253 |
|
3254 | 3254 | public:
|
3255 | 3255 | repeat_view() requires @\libconcept{default_initializable}@<W> = default;
|
3256 | 3256 |
|
3257 |
| - constexpr explicit repeat_view(const W& value, Bound bound = Bound()); |
3258 |
| - constexpr explicit repeat_view(W&& value, Bound bound = Bound()); |
| 3257 | + constexpr explicit repeat_view(const W& value, Bound bound = Bound()) |
| 3258 | + requires @\libconcept{copy_constructible}@<W>; |
| 3259 | + constexpr explicit repeat_view(W && value, Bound bound = Bound()); |
3259 | 3260 | template<class... WArgs, class... BoundArgs>
|
3260 | 3261 | requires @\libconcept{constructible_from}@<W, WArgs...> &&
|
3261 | 3262 | @\libconcept{constructible_from}@<Bound, BoundArgs...>
|
|
0 commit comments