On Sunday, 28 December 2014 at 18:16:04 UTC, Andrei Alexandrescu wrote:
Very little breakage I can think of. Ranges usually don't own their payload.

I'm thinking more about higher order ranges, e.g. take, filter, cycle, retro; over a mutable range with ref front. Even if the underlying range (e.g. an array) has the inout, the higher order range will need the inout as well, so that it is propagated, no?


auto ref foo(ref int x) { return x; } // non-ref due to lack of inout
on x?

"auto" has no meaning there. It does here:

auto ref foo(auto ref int x) { return x; }

This wouldn't compile anymore - inout is needed for x as well.

Ah, yep. That's what I meant :-)  Thanks for the clarification.

Reply via email to