foreach() behavior on ranges

bauss jj_1337 at live.dk
Wed Aug 25 06:51:36 UTC 2021


On Tuesday, 24 August 2021 at 19:06:44 UTC, Alexandru Ermicioi 
wrote:
> On Tuesday, 24 August 2021 at 09:15:23 UTC, bauss wrote:
>>
>> A range should be a struct always and thus its state is copied 
>> when the foreach loop is created.
>
> Actually the range contracts don't mention that it needs to be 
> a by value type. It can also be a reference type, i.e. a class.
>

Of course it doesn't disallow classes but it's generally advised 
that you use structs and that's what you want in 99% of the 
cases. It's usually a red flag when a range starts being a 
reference type.



More information about the Digitalmars-d-learn mailing list