On Friday 30 October 2015 01:43:22 Igor Mironchik wrote: > > peek <missing, no one has ever asked for it> > > It can be useful in some cases, for example, when you implementing some > sort of parsers where very often you need to know what next character is > but don't really need to seek stream's position. > > > unget seek(pos() - 1) (slow! can't be avoided) > > Slow? This is not the main problem. The main problem is that that seek() > and pos() uses device's units. But I need to seek() one character back, > and what then just -1, or -2, or something else? unget() can't be > implemented with methods of QTextStream.
By the way, peek() and unget() are complementary. If you have one, you won't need the other. For various reasons, unget/unread is difficult to implement. The most important one is what happens if your last read operation crossed a buffer chunk boundary? That means we don't have the previous character anymore to be unread and the device may not be seekable at all (think of QTextStream on stdin). Peeking is easier to implement. It will suffer from the same problem (peeking past a buffer boundary), but in most cases, reading the next 16kB might be enough. I will accept a contribution adding QTextStream::peek(). -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest