On Saturday, 6 October 2012 at 08:51:02 UTC, Dmitry Olshansky wrote:
On 06-Oct-12 12:13, monarch_dodra wrote:
On Saturday, 6 October 2012 at 08:00:42 UTC, Johannes Pfau wrote:
Am Fri, 05 Oct 2012 17:15:44 +0200
schrieb "monarch_dodra" <[email protected]>:

[SNIP]

Couldn't we just fix std.range.put to check for an 'empty' property?

Well, the issue (imo) is not put's implementation: as Steven
Schveighoffer said, cramming too big into too small is wrong (logic error).

The problem (I think), is that once a range verifies the isOutputRange criteria, the user should be able to call "put" without (too much) worries.

Not possible. The only thing isOutputRange serves is that putting stuff into X is sensible in one of many ways (delegates, own put, input range with assignable elements). Any run-time properties such as lengths and maximums are out of isOutputRange business. And in the end one can still run out of supposedly "infinite" things like RAM, disk space etc.

Yes, but that would be an exception that also holds true for "isInfiniteRange", but only happens under "exceptional" circumstances.

Hence the (too much) above.

Reply via email to