Предположим, у меня есть Iterable
интерфейс:Что называется эта идиома?
template<typename T>
struct Iterable
{
virtual bool MoveNext() = 0;
virtual T& GetCurrent() = 0;
};
А то у меня есть класс, который реализует интерфейс Iterable
. Назовите его FileList
. Он представляет список файлов в системе FAT16
. Из-за ограниченной памяти на моем микроконтроллере вместо FileList
, фактически сохраняя список файлов, когда он называется GetCurrent
, он захватывает файл с SD-карты, к которой он обращается.
Так что мой вопрос:
Что идиома я просто называется предварительно полученные (если это даже идиома, что существует)?
Если я правильно понимаю, это, кажется, ленивый итератор. – jweyrich
Если вы пишете C++, имя для этой идиомы является «ошибкой». Если вы моделируете свои итераторы по концепциям в стандартной библиотеке, вы сможете использовать их со всеми стандартными алгоритмами. Это должна быть победа. –
@RichardHodges Увидев, что я на микроконтроллере (как упоминалось в вопросе), у меня нет доступа к стандартной библиотеке C++, так как он будет есть всю мою память. – DarthRubik