| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- //
- // owning_view.h
- // stream
- //
- // Created by Sam Jaffe on 3/29/23.
- //
- #pragma once
- #include <stream/forward.h>
- #include <iterator/detail/macro.h>
- namespace stream::ranges {
- template <typename C> class all_view {
- private:
- C container_;
- public:
- all_view(C && container) : container_(FWD(container)) {}
- auto & base() const { return container_; }
- auto begin() const { return container_.begin(); }
- auto end() const { return container_.end(); }
- bool empty() const { return container_.empty(); }
- size_t size() const { return container_.size(); }
- };
- template <typename C> all_view(C &&) -> all_view<C>;
- }
- namespace stream::ranges::views {
- template <typename C> auto all(C && container) {
- return all_view(FWD(container));
- }
- }
- #include <iterator/detail/undef.h>
|