add the same iterators to generator_range

master
Daniel Kolesa 2017-03-13 18:50:44 +01:00
parent b63729641b
commit ea9ac2e5c6
1 changed files with 15 additions and 0 deletions

View File

@ -577,6 +577,11 @@ struct generator_range: input_range<generator_range<T>> {
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<T> begin() noexcept;
detail::generator_iterator<T> end() noexcept;
private:
generator<T> *p_gen;
};
@ -621,6 +626,16 @@ detail::generator_iterator<T> generator<T>::end() noexcept {
return detail::generator_iterator<T>{*this};
}
template<typename T>
detail::generator_iterator<T> generator_range<T>::begin() noexcept {
return detail::generator_iterator<T>{*p_gen};
}
template<typename T>
detail::generator_iterator<T> generator_range<T>::end() noexcept {
return detail::generator_iterator<T>{*p_gen};
}
} /* namespace ostd */
#endif