More on C++ stack arrays
David Nadlinger
code at klickverbot.at
Mon Oct 21 14:24:22 PDT 2013
On Monday, 21 October 2013 at 21:07:46 UTC, Iain Buclaw wrote:
> But yes. I think a GC memcopy should be occuring, as dynamic
> arrays
> aren't passed by value, so are expected to last the lifetime of
> the
> reference to the address.
This doesn't produce a heap copy (neither according to the spec
nor to actual DMD/LDC behaviour):
---
void foo() {
int[3] a;
int[] b = a;
}
---
Thus, your example will not copy any data either, as due to
associativity, it is equivalent to an assignment to y followed by
an assignment of y to x. x simply is a slice of the
stack-allocated static array.
David
More information about the Digitalmars-d
mailing list