// // owning_view.h // stream // // Created by Sam Jaffe on 3/29/23. // #pragma once #include #include namespace stream::ranges { template 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 all_view(C &&) -> all_view; } namespace stream::ranges::views { template auto all(C && container) { return all_view(FWD(container)); } } #include