owning_view.h 534 B

123456789101112131415161718192021222324252627
  1. //
  2. // owning_view.h
  3. // stream
  4. //
  5. // Created by Sam Jaffe on 3/29/23.
  6. //
  7. #pragma once
  8. namespace stream::ranges {
  9. template <typename C> class owning_view {
  10. private:
  11. C container_;
  12. public:
  13. owning_view(C && container) : container_(std::move(container)) {}
  14. auto begin() const { return end_aware_iterator(container_); }
  15. auto end() const { return end_aware_iterator<iter<C>>(); }
  16. bool empty() const { return container_.empty(); }
  17. size_t size() const { return container_.size(); }
  18. };
  19. }
  20. namespace stream::ranges::views {
  21. }