Is enum static?
Jonathan M Davis
jmdavisProg at gmx.com
Tue Aug 20 12:25:41 PDT 2013
On Tuesday, August 20, 2013 20:38:52 John Colvin wrote:
> On Tuesday, 20 August 2013 at 17:02:07 UTC, Jonathan M Davis
>
> wrote:
> > On Tuesday, August 20, 2013 12:54:29 John Colvin wrote:
> >> is there an allocation in this?
> >>
> >> enum vals=[1, 2, 3, 0];
> >>
> >> int[4] a;
> >> a[] = vals[];
> >
> > Since, you're asking it to copy the elements of a dynamic array
> > to a static
> > one, I would fully expect it to result in an allocation, though
> > a smart
> > compiler might optimize it out. I wouldn't expect dmd to do
> > that though.
> >
> > - Jonathan M Davis
>
> So you're saying it will allocate a new dynamic array, initialise
> it with 1,2,3,0 and then copy the elements from that new array to
> the static one? That's not good...
Well, that's what you told it to do semantically. The compiler could
theoretically optimize it (and hopefully will eventually), but it would be an
optimization. At this point, if you initialize the static array with an array
literal, then it will avoid the allocation (though it didn't used to), but
AFAIK, it'll still allocate with your example.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list