| 3984 | |
| 3985 | template <typename T> |
| 3986 | class GeneratorWrapper final { |
| 3987 | std::unique_ptr<IGenerator<T>> m_generator; |
| 3988 | public: |
| 3989 | GeneratorWrapper(std::unique_ptr<IGenerator<T>> generator): |
| 3990 | m_generator(std::move(generator)) |
| 3991 | {} |
| 3992 | T const& get() const { |
| 3993 | return m_generator->get(); |
| 3994 | } |
| 3995 | bool next() { |
| 3996 | return m_generator->next(); |
| 3997 | } |
| 3998 | }; |
| 3999 | |
| 4000 | template <typename T> |
| 4001 | GeneratorWrapper<T> value(T&& value) { |