On Sat, 05 Feb 2011 00:46:40 -0500, Andrei Alexandrescu <[email protected]> wrote:

I've had the opportunity today to put some solid hours of thinking into the relationship (better said the relatedness) of what would be called "buffered streams" and ranges. They have some commonalities and some differences, but it's been difficult to capture them. I think now I have a clear view, caused by a few recent discussions. One was the CSV reader discussed on the Phobos list; another was the discussion on defining the "right" std.xml.

[snip]

What do you all think?

I haven't read many of the responses, but I'll say again what I've always said. The range concept does not fit streams very well. I think a range can be built on a stream, but I think a buffered stream should be it's own type (similar to how you laid it out a few weeks ago).

IMO, a stream should be a simple class hierarchy that defines input/output and buffering. Then ranges can be built on top of the stream to interface with other parts of phobos.

Now, I think as an *input parameter* for algorithms that wish to work with streams (or other ranges), a range of T[] is most appropriate.

-Steve

Reply via email to