On Monday, 30 May 2016 at 14:18:38 UTC, Nick Treleaven wrote:
On Monday, 30 May 2016 at 10:55:57 UTC, Marc Schütz wrote:
auto tmp = stdin.byLine;
auto lines = tmp.array;
Here, `lines` contains references to the buffer owned by
`tmp`, but doesn't escape (assuming `array` takes its argument
by `scope` or however the final solution will look like).
tmp and stdin.byLine are of type ByLine, whose front could be
scope/return to prevent escaping. Above array() does escape
ByLine.front so can't mark its argument with scope - the
compiler would error.
Sorry, I meant using array(scope R range) would not affect the
compiler error when array attempts to escape range.front into its
slice.