array construction without heap alloc

0ffh frank at frankhirsch.youknow.what.todo.net
Mon Dec 24 04:42:02 PST 2007


Jarrett Billingsley wrote:
> Before anyone says "but the compiler could detect those", what about in this 
> case:
> 
> extern(C) someFunc(int* arr, int len);
> 
> void myFunc(int x, int y)
> {
>     auto arr = [x, y];
>     someFunc(arr.ptr, arr.length);
> }
> 
> The compiler knows nothing about what someFunc does and can't tell if it 
> stores that array away in some global variable or something, therefore it 
> can't tell if this is legal code.  (This is why side effects are bad, the FP 
> programmers tell us..) 

If I am not mistaken, your example here does the "bad thing" already, no
matter if it allocates heap to initialise the variable or not.

regards, frank


More information about the Digitalmars-d-learn mailing list