Pfligersdorffer, Christian wrote:
Any suggestions? Maybe some iterator-magic can be done? How about Boost.Spirit file_iterator? That is a read-only RandomAccessIterator for files. http://spirit.sourceforge.net/distrib/spirit_1_8_3/libs/spirit /doc/file_iterator.html
Hello Shunsuke,
that's a good idea but unfortunately I cannot use this class in my case. I have some special decoding ifstreams doing decompression and the like. So I'd really need an iterator that takes an i(f)stream object in it's constructor and wraps that.
C++ has istream_iterator, but it seems useless in this case. In fact, istream_iterator can be converted into ForwardIterator using Boost.Spirit multi_pass iterator. http://spirit.sourceforge.net/distrib/spirit_1_8_3/libs/spirit/doc/multi_pas... Thus you can make portions before passing them to clients. But unfortunately multi_pass iterator may copy the whole range in many cases. Regards, -- Shunsuke Sogame