On Friday, 7 February 2020 at 20:13:57 UTC, Dennis wrote:
If I have an input range with element type `int[3]`, how do I
easily turn it into a range of `int` so I can map it?
If it were an int[3][] I could simply cast it to an int[]
before mapping, but I don't want to eagerly turn it into an
array.
I thought of doing this:
```
range.map!(x => x[]).joiner.map!(x => x*2);
```
But it gives:
Error: returning x[] escapes a reference to parameter x,
perhaps annotate with return
I tried doing:
```
map!((return x) => x[]) // same error
map!((return ref x) => x[]) // does not match, map.front is not
an lvalue
```
I can easily work around it with some more code, but I wonder
if someone knows an easy solution.
Depending on how your range is structured, it might be possible
to just mark front as returning by ref to make this work.