From ea9ac2e5c6667a6c444921d02064de5cf40e6a2b Mon Sep 17 00:00:00 2001 From: q66 Date: Mon, 13 Mar 2017 18:50:44 +0100 Subject: [PATCH] add the same iterators to generator_range --- ostd/coroutine.hh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ostd/coroutine.hh b/ostd/coroutine.hh index 1eedde2..7d46b5a 100644 --- a/ostd/coroutine.hh +++ b/ostd/coroutine.hh @@ -577,6 +577,11 @@ struct generator_range: input_range> { bool equals_front(generator_range const &g) const noexcept { return p_gen == g.p_gen; } + + /* same behavior as on generator itself, for range for loop */ + detail::generator_iterator begin() noexcept; + detail::generator_iterator end() noexcept; + private: generator *p_gen; }; @@ -621,6 +626,16 @@ detail::generator_iterator generator::end() noexcept { return detail::generator_iterator{*this}; } +template +detail::generator_iterator generator_range::begin() noexcept { + return detail::generator_iterator{*p_gen}; +} + +template +detail::generator_iterator generator_range::end() noexcept { + return detail::generator_iterator{*p_gen}; +} + } /* namespace ostd */ #endif