(St)Range behavior
Chris
wendlec at tcd.ie
Fri Oct 25 07:02:52 PDT 2013
On Friday, 25 October 2013 at 12:57:51 UTC, Meta wrote:
> On Friday, 25 October 2013 at 11:06:18 UTC, Chris wrote:
>> I have three lazy ranges tied together in a foreach loop like
>> so:
>>
>> Item[] items; // An array of Item-struct
>>
>> foreach (item; items.range1.range2.range3) {
>> // ...
>> }
>>
>> The funny thing is that when I run the foreach loop it does
>> everything in reverse. So I changed it to
>>
>> foreach (item; items.range3.range2.range1) {
>> // ...
>> }
>>
>> And now it works as expected. I've never had such strange
>> behavior and have no clue what could have caused it. In all my
>> other ranges it works from left to right 1. step, 2. step, 3.
>> step and not from right to left.
>
> Can you post some code?
And it is also circular. range3 sends it to range 1 again I must
have screwed it up somewhere. Everything is ok, if I do it step
by step:
foreach (item; items.range1) {}
foreach (item; items.range2) {}
foreach (item; items.range3) {}
Has anyone ever come across a bug like this? Each range works
fine on its own. When I tie them together, they go upside down
and in circles. Weird. Maybe I can extract some test code.
More information about the Digitalmars-d
mailing list