| 3568 | |
| 3569 | template <typename T> |
| 3570 | class GeneratorWrapper final { |
| 3571 | std::unique_ptr<IGenerator<T>> m_generator; |
| 3572 | public: |
| 3573 | GeneratorWrapper(std::unique_ptr<IGenerator<T>> generator): |
| 3574 | m_generator(std::move(generator)) |
| 3575 | {} |
| 3576 | T const& get() const { |
| 3577 | return m_generator->get(); |
| 3578 | } |
| 3579 | bool next() { |
| 3580 | return m_generator->next(); |
| 3581 | } |
| 3582 | }; |
| 3583 | |
| 3584 | template <typename T> |
| 3585 | GeneratorWrapper<T> value(T&& value) { |