| 123456789101112131415161718192021222324252627 |
- #pragma once
- #include <iterator>
- namespace stream { namespace detail {
- template <typename C> class source_stream {
- public:
- explicit source_stream(C && cont) : source_(std::forward<C>(cont)) {}
- auto begin() { return iterator(source_.begin()); }
- auto end() { return iterator(source_.end()); }
- private:
- C source_;
- };
- template <typename It> class range_stream {
- public:
- explicit range_stream(It b, It e) : begin_(b), end_(e) {}
- auto begin() { return iterator(begin_); }
- auto end() { return iterator(end_); }
- private:
- It begin_, end_;
- };
- }}
|