generated_view fix
This commit is contained in:
parent
cac97fe59d
commit
292f0f4886
|
@ -20,7 +20,7 @@ template <std::invocable F> struct generated_iterator {
|
||||||
F generator{};
|
F generator{};
|
||||||
|
|
||||||
generated_iterator() = default;
|
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()) {}
|
generated_iterator(F &&gen) : generator(std::move(gen)), value(gen()) {}
|
||||||
|
|
||||||
auto generate_new_value() -> void { value = generator(); }
|
auto generate_new_value() -> void { value = generator(); }
|
||||||
|
@ -47,11 +47,11 @@ template <std::invocable F> struct generated_iterator {
|
||||||
|
|
||||||
template <std::invocable F>
|
template <std::invocable F>
|
||||||
class generated_view : rg::view_interface<generated_view<F>> {
|
class generated_view : rg::view_interface<generated_view<F>> {
|
||||||
F generator;
|
F generator = {};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
generated_view() = default;
|
constexpr generated_view() = default;
|
||||||
constexpr generated_view(F &&generator) : generator(generator) {}
|
constexpr generated_view(F generator) : generator(std::move(generator)) {}
|
||||||
|
|
||||||
constexpr auto begin() const { return detail::generated_iterator(generator); }
|
constexpr auto begin() const { return detail::generated_iterator(generator); }
|
||||||
constexpr auto end() const { return std::unreachable_sentinel; }
|
constexpr auto end() const { return std::unreachable_sentinel; }
|
||||||
|
|
Loading…
Reference in a new issue