This one weird trick allows you to capture loop variables.
Imperatorn
johan_forsberg_86 at hotmail.com
Thu Nov 21 11:33:55 UTC 2024
On Sunday, 20 October 2024 at 17:48:15 UTC, Paul Backus wrote:
> On Sunday, 20 October 2024 at 02:14:14 UTC, Steven
> Schveighoffer wrote:
>> I thought of this when someone asked the age-old question
>> about [closures not capturing loop
>> variables](https://issues.dlang.org/show_bug.cgi?id=2043).
>>
>> https://gist.github.com/schveiguy/b6b037bdfe74997743de81f8d3f4b92b
>>
>> How does it work? It works because opApply is passed a lambda
>> function generated by the compiler to implement the foreach
>> body.
>>
>> But because this is a *separate* function, when you close over
>> that lambda, the lambda's stack is independently allocated on
>> the heap for each loop iteration.
>
> This is cute and all, but the correct solution is to fix the
> damn compiler. The fact that this is necessary in the first
> place is an embarrassment.
Indeed
More information about the Digitalmars-d
mailing list