On Fri, 05 Oct 2012 11:15:44 -0400, monarch_dodra <[email protected]> wrote:

However, I that the "isOutputRange" definition should require infinite-ness, as mentioned by others.

No, this is very wrong.  A slice is an output range, but is finite.

If you are putting something that is larger into something that is smaller and cannot be extended, I would expect an error. You don't?

This cannot be changed, as the fundamental target for an in-memory output range is a slice.

To enforce infiniteness, I'd like to add this to the requirement of output range:
*Must meet one of these two criteria:
**isInifite!Range
or
**Does not define "range.empty"
   //notion of infiniteness by default: delegates etc...

This actually has some very very low impact in phobos: The only OutputRanges ever used by phobos are appenders/delegates/printers anyways.

Just because it isn't *used* by phobos (and I doubt the statement above) doesn't mean that it's not a worthwhile part of the API. Phobos is a utility library, not a complete program.

For instance, there is nothing in Phobos that uses std.container.RedBlackTree (at least that I know of), but that doesn't mean it doesn't have value.

-Steve

Reply via email to