generated_view fix

This commit is contained in:
janis 2022-07-01 01:39:07 +01:00
parent cac97fe59d
commit 292f0f4886

View file

@ -20,7 +20,7 @@ template <std::invocable F> struct generated_iterator {
F generator{};
generated_iterator() = default;
generated_iterator(const F &gen) : generator(gen), value(gen()) {}
generated_iterator(F gen) : generator(gen), value(gen()) {}
generated_iterator(F &&gen) : generator(std::move(gen)), value(gen()) {}
auto generate_new_value() -> void { value = generator(); }
@ -47,11 +47,11 @@ template <std::invocable F> struct generated_iterator {
template <std::invocable F>
class generated_view : rg::view_interface<generated_view<F>> {
F generator;
F generator = {};
public:
generated_view() = default;
constexpr generated_view(F &&generator) : generator(generator) {}
constexpr generated_view() = default;
constexpr generated_view(F generator) : generator(std::move(generator)) {}
constexpr auto begin() const { return detail::generated_iterator(generator); }
constexpr auto end() const { return std::unreachable_sentinel; }