On 6/14/18 7:07 AM, Guillaume Piolat wrote:
On Tuesday, 12 June 2018 at 15:35:42 UTC, Steven Schveighoffer wrote:

No, that's not what I mean. What I mean is:

int[] arr = [1,2,3].s;
int[] arr2 = [4,5,6].s;

Legally, the compiler is allowed to reuse the stack memory allocated for arr for arr2. The lifetime of the arr data is over.

-Steve

https://github.com/p0nce/d-idioms/issues/150

Especially if the stdlib has a way to do this now.

The Phobos PR isn't merged yet, so I think it's still valid to have this idiom, but it needs to be changed such that the implicit slicing doesn't happen.

To be clear, I think the static array idiom is useful for many reasons (my favorite is avoiding issues with literal and type size mismatch), it just that the showcase usage leads to an instant dangling pointer and should be altered.

-Steve

Reply via email to