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