#pragma once #include class ImplGenerator { public: ImplGenerator(int nr_entries); bool has_more_numbers(); int get_next_num(); private: int m_nr_entries; int internal_counter = 0; std::unordered_set already_generated_numbers; virtual int get_next_num_internal() = 0; };