Does foreach on array literal allocate?

Sergey Gromov snake.scaly at gmail.com
Thu Dec 4 17:31:35 PST 2008


Fri, 5 Dec 2008 03:58:39 +0900, Bill Baxter wrote:

> Does anyone know off the top of their head if code like this allocates
> or not with current DMD 1.x compilers?
> 
> foreach(x; [1, 2, 3, 4])
> {
>      // do something non-allocating with x
> }
> 
> And is the answer different if the values are only known at runtime?  Like here:
> 
> void a func(int a1, int a2, int a3)
> {
>    foreach(x; [a1,a2,a3]) {
>          // do something non-allocating with x
>    }
> 
> }

AFAIK array iteration never used delegates.  Therefore it shouldn't have
been ever allocating, and it shouldn't now.



More information about the Digitalmars-d mailing list