diff --git a/source/providers/Generate.h b/source/providers/Generate.h index 15d3936..5836a4d 100644 --- a/source/providers/Generate.h +++ b/source/providers/Generate.h @@ -20,8 +20,14 @@ class Generate : public StreamProvider { } bool advance_impl() override { - current_ = std::make_shared(generator_()); - return true; + try { + current_ = std::make_shared(generator_()); + return true; + } + catch (const std::out_of_range& e) { + // out_of_range indicates end of stream + return false; + } } PrintInfo print(std::ostream& os, int indent) const override {