std.v2020.algorithm etc[ WAS: Is run.d going to be expand for runtime and the phobos library?]
Paul Backus
snarwin at gmail.com
Sat Jun 20 13:07:41 UTC 2020
On Saturday, 20 June 2020 at 12:42:01 UTC, Stanislav Blinov wrote:
> On Saturday, 20 June 2020 at 10:43:41 UTC, Paul Backus wrote:
>
>> Also, switch from `void popFront()` to `typeof(this) rest`, so
>> that we can have `const` and `immutable` ranges.
>
> *Switch* is probably too restrictive. For a given range a
> `popFront` may be more efficient than a `range = range.rest`.
> Making `rest` a valid range primitive though, and using where
> appropriate - that'd be awesome.
For non-forward ranges, there's no promise that the original
range (or any copies of it) will remain valid after calling
`rest`, so you can always implement `rest` like this:
auto rest() {
this.popFront;
return this;
}
More information about the Digitalmars-d
mailing list