Output range primitives
Joel Nilsson via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jul 5 14:13:57 PDT 2017
For something to be an output range it has to define the put
primitive. I am wondering why there is only a single type of
output range. Would it not make sense to have, say, a fillable
output range which defines @property bool full()?
This could be used in functions like copy that currently just
spam the output range until there's nothing left to throw at it.
I can imagine situations where you would want to continuously
copy from the input range until the output range was "satisfied".
Let's say we have a range that acts as a message queue between
two threads. The consumer would have no issue checking if there
are any available messages by calling empty, but the producer
currently has no standard way of checking if the buffer is full.
Is there any reason that this isn't in the range spec, or has the
need for it not arised yet? Maybe it's just a poor idea?
Enlighten me.
More information about the Digitalmars-d
mailing list