owning_view.h 472 B

123456789101112131415161718192021222324
  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 container_.begin(); }
  15. auto end() const { return container_.end(); }
  16. bool empty() const { return container_.empty(); }
  17. size_t size() const { return container_.size(); }
  18. };
  19. }