Class template eof_iterator
boost::eof_iterator
 Synopsis
Description
eof_iteratorКласс полезен для построения форвардных итераторов в тех случаях, когда итератор извлекает данные из какого-либо источника и легко обнаруживает «eof» — т.е. ситуацию, когда данных нет. Одним из очевидных примеров является чтение строк из файла.
Внедрение таких итераторов с использованием «iterator_facade» напрямую потребовало бы создания класса с тремя основными операциями. При использовании 'eof_iterator' производный класс должен определять только один способ получения нового значения плюс пара конструкторов.
Основная идея заключается в том, что итератор имеет бит «eof». Два итератора равны только в том случае, если оба имеют набор битов «eof». Метод «get» либо получает новое значение, либо устанавливает бит «eof».
В частности, производный класс должен определять:
- Конструктор по умолчанию, который создает итератор с битовым набором «eof». Тело конструктора должно называться методом «found_eof», определенным здесь. 
- Еще один конструктор. Он должен инициализировать некоторый «указатель данных», используемый в работе итератора, а затем вызывать «get». 
- [см.] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто] [скрыто]]. [ORIG_END] -->
- извлекать новый элемент и хранить его в месте, возвращенном методом «значения». 
- Продвиньте указатель данных. 
 
По сути, метод «get» имеет функциональность как «прироста», так и «отсчета». Это очень хорошо для случаев, когда извлечение данных неявно перемещает указатель данных, например, для работы потока.
eof_iterator 
        public
       construct/copy/destruct
eof_iterator protected member functions
- Возвращаясь к подсвечнику, мы имеем дело с фиксатором. [ORIG_END] -->
- ] [ - ] [ - ] [ - ]] [ - ]] [ - ]] [[ - ]]] [[ - ]]]] [[ - ]]]] [[ - ]]]] [[ - ]]] [[ - ]]]] [[ - ]]]] [[ - ]]]] [[[[]]]]] [[[[]]]]] [[[[]]]]] [[[[]]]]] [[[[]]]]] [[[[]]]] [[[[]]]]] [[[[]]]]] [[[[]]]]] [[[[]]]]]] [[[[[]]]]]] [[[[[]]]]]] [[[[]]]]]] [[[[[]]]]]]] [[[[[]]]]]] [[[[]]]] [ORIG_END] -->
eof_iterator private member functions
- <voidincrement(); >
- <boolequal(consteof_iterator&other)const; >
- <constValueType&dereference()const; >