| 3658 | return m_generator.get(); |
| 3659 | } |
| 3660 | bool next() override { |
| 3661 | ++m_returned; |
| 3662 | if (m_returned >= m_target) { |
| 3663 | return false; |
| 3664 | } |
| 3665 | |
| 3666 | const auto success = m_generator.next(); |
| 3667 | // If the underlying generator does not contain enough values |
| 3668 | // then we cut short as well |
| 3669 | if (!success) { |
| 3670 | m_returned = m_target; |
| 3671 | } |
| 3672 | return success; |
| 3673 | } |
| 3674 | }; |
| 3675 | |
| 3676 | template <typename T> |