> On Apr 3, 2020, at 10:09 PM, Sven Barth <pascaldra...@googlemail.com> wrote:
> 
> No. The "[...]" for an open array parameter means "open array constructer" 
> *not* "dynamic array constructor". And this on-the-fly open array is in fact 
> constructed on the stack. 

Ok, I see now. Excellent. I thought this was another dynamic array being 
created and destroyed.

> 
> If your DoThis would be declared with a dynamic array parameter (e.G. 
> "specialize TArray<Integer>") then you'd in fact have a temporary dynamic 
> array constructed on the heap. 
> 
> Also I didn't say that dynamic arrays can't be constant, but that they only 
> are so if declared in a const section. 
> 

can you post an example of a const dynamic array? I tried and it thinks it's a 
set so I can't assign to an open array.

Also that made me think, is it possible for an open array parameter to be 
written to if its source was a static array? You said it's a pointer so I 
wonder if it's possible to use them instead of passing a static array pointer 
with an additional parameter for the length.

Regards,
        Ryan Joseph

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to