2016-07-04 25 views
0

Предположим, у меня есть Iterable интерфейс:Что называется эта идиома?

template<typename T> 
struct Iterable 
{ 
    virtual bool MoveNext() = 0; 
    virtual T& GetCurrent() = 0; 
}; 

А то у меня есть класс, который реализует интерфейс Iterable. Назовите его FileList. Он представляет список файлов в системе FAT16. Из-за ограниченной памяти на моем микроконтроллере вместо FileList, фактически сохраняя список файлов, когда он называется GetCurrent, он захватывает файл с SD-карты, к которой он обращается.

Так что мой вопрос:

Что идиома я просто называется предварительно полученные (если это даже идиома, что существует)?

+3

Если я правильно понимаю, это, кажется, ленивый итератор. – jweyrich

+3

Если вы пишете C++, имя для этой идиомы является «ошибкой». Если вы моделируете свои итераторы по концепциям в стандартной библиотеке, вы сможете использовать их со всеми стандартными алгоритмами. Это должна быть победа. –

+0

@RichardHodges Увидев, что я на микроконтроллере (как упоминалось в вопросе), у меня нет доступа к стандартной библиотеке C++, так как он будет есть всю мою память. – DarthRubik

ответ

-1

Иногда это называется генератором.

+1

Это всегда ответ или просто иногда? – KABoissonneault

+0

Если у вас есть что-то, чтобы создать резервную копию вашей претензии, это было бы хорошо – DarthRubik

+0

https://en.wikipedia.org/wiki/Generator_(computer_programming) – T33C

Смежные вопросы