| 3550 | |
| 3551 | template <typename T> |
| 3552 | class GeneratorWrapper final { |
| 3553 | std::unique_ptr<IGenerator<T>> m_generator; |
| 3554 | public: |
| 3555 | GeneratorWrapper(std::unique_ptr<IGenerator<T>> generator): |
| 3556 | m_generator(std::move(generator)) |
| 3557 | {} |
| 3558 | T const& get() const { |
| 3559 | return m_generator->get(); |
| 3560 | } |
| 3561 | bool next() { |
| 3562 | return m_generator->next(); |
| 3563 | } |
| 3564 | }; |
| 3565 | |
| 3566 | template <typename T> |
| 3567 | GeneratorWrapper<T> value(T&& value) { |