On 12/13/17 2:33 PM, Jonathan M Davis wrote:
On Wednesday, December 13, 2017 11:33:35 Steven Schveighoffer via
Digitalmars-d wrote:
I don't think there's a requirement for empty not to do any work, it
just has to return the same value each time.

IIRC, when this was discussed previously, it was decided that you really
couldn't do work in empty. The problem is that under some circumstances at
least, it's perfectly legitimate to skip calls to empty

The discussion before was whether empty was required to be called before calling front. It's perfectly acceptable to do work in empty, as long as you return the same value in 2 subsequent calls to empty without changing the range between those calls.

The problem is, if you have work done in empty, that doesn't mean you don't have to do the equivalent work in front. Which is probably what Luís is after.

The best way I think to have ranges work is to only modify them in popFront/popBack, and the ctor.

-Steve

Reply via email to