Boost logo

Boost :

From: Beman Dawes (bdawes_at_[hidden])
Date: 2003-07-12 11:59:19


The old input iterator 24.1.1 had a requirement:

   *r++ returned type T, semantics {T tmp= *r; ++r; return tmp; }

The new Single Pass Iterators in N1477 have no such requirement.

That's fine with me - that requirement was a source of bugs in my code and
violated the rule of least astonishment as far as I was concerned.

But before I remove the test from the filesystem library that verifies the
old input iterator semantics for directory_iterator, I'd like to verify
that the omission of *r++ was a design decision rather than an oversight.

The omission of special requirements for *r++ means that Readable and
Single Pass = Input, as shown in the diagram, is not actually correct,
unless I'm missing something. Thus perhaps it should be discussed in the
paper.

--Beman


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk