On Monday, 9 November 2015 at 02:44:48 UTC, TheFlyingFiddle wrote:
On Monday, 9 November 2015 at 02:14:58 UTC, Jon D wrote:
Here's an example of the behavior differences below. It uses
refRange, but same behavior occurs if the range is created as
a class rather than a struct.
--Jon
This is an artifact of struct based ranges being value types.
When you use take the range get's copied into another structure
that is also a range but limits the number of elements you take
from that range.
...
If you want a more indepth explanation there were two talks at
Dconf this year that (in part) discussed this topic.
(https://www.youtube.com/watch?v=A8Btr8TPJ8c,
https://www.youtube.com/watch?v=QdMdH7WX2ew&list=PLEDeq48KhndP-mlE-0Bfb_qPIMA4RrrKo&index=14)
Thanks for the quick reply. The two videos were very helpful. I
understood what was happening underneath (mostly), but the videos
made it clear there are a number of open questions regarding
reference and value ranges and how best to use them.