| 3887 | |
| 3888 | template <typename T> |
| 3889 | class GeneratorWrapper final { |
| 3890 | std::unique_ptr<IGenerator<T>> m_generator; |
| 3891 | public: |
| 3892 | GeneratorWrapper(std::unique_ptr<IGenerator<T>> generator): |
| 3893 | m_generator(std::move(generator)) |
| 3894 | {} |
| 3895 | T const& get() const { |
| 3896 | return m_generator->get(); |
| 3897 | } |
| 3898 | bool next() { |
| 3899 | return m_generator->next(); |
| 3900 | } |
| 3901 | }; |
| 3902 | |
| 3903 | template <typename T> |
| 3904 | GeneratorWrapper<T> value(T&& value) { |