7#include <dr/detail/ranges_shim.hpp>
17template <rng::range R>
18class owning_view :
public rng::view_interface<owning_view<R>> {
20 owning_view(R &&range) : range_(std::move(range)) {}
23 requires std::default_initializable<R>
32 requires(rng::sized_range<R>)
34 return rng::size(range_);
38 requires(rng::sized_range<R>)
43 auto begin() {
return rng::begin(range_); }
46 requires(rng::range<const R>)
48 return rng::begin(range_);
51 auto end() {
return rng::end(range_); }
54 requires(rng::range<const R>)
56 return rng::end(range_);
59 decltype(
auto) base() {
return range_; }
61 decltype(
auto) base()
const {
return range_; }
Definition: owning_view.hpp:18