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