On Saturday, 11 January 2014 at 03:49:28 UTC, Manu wrote:
On 11 January 2014 00:26, monarch_dodra
*However*, depending on the range type (non-transitive),
popping might
instantaneously invalidate the element you are operating on
(think
"byLine", that returns a "char[]", not a "string").
Since you mentioned it here yesterday, I thought 'byLine' would
be useful
this morning... but I can't find it!
This is an embarrassing theme.
Does it actually exist, and I am even further retarded... or
did you just
make that up?
It's because not actually a range adaptor or string adaptor, but
an stdio function:
http://dlang.org/phobos/std_stdio.html
http://dlang.org/phobos/std_stdio.html#.File.byChunk
http://dlang.org/phobos/std_stdio.html#.File.byLine
It's designed that way as to avoid allocating a new buffer.
Related:
That said, "std.algorithm.splitter" will lazily split a range of
characters into lines, if you give it the "right" terminator.
Unfortunately, it only accepts a single terminator, or a pred, so
you can't do "splitter('\n' "\r\n")".
You can also use
"http://dlang.org/phobos/std_string.html#.splitLines" to eagerly
and conveniently (and correctly) do this.