Assigning global and static associative arrays
Jonathan M Davis
jmdavisProg at gmx.com
Fri Aug 31 15:21:22 PDT 2012
On Saturday, September 01, 2012 00:12:06 ixid wrote:
> Hmm, you mean if you call the same function it creates a new copy
> every time? I misunderstood you to mean it creates it once at
> each site in the code it's called.
enum values are basically copy-pasted everywhere that they're used. So, if you
have something like
enum arr = [1, 2, 3, 4 5];
auto a = arr;
auto b = arr;
auto c = arr;
it's effectively identical to
auto a = [1, 2, 3, 4, 5];
auto b = [1, 2, 3, 4, 5];
auto c = [1, 2, 3, 4, 5];
as opposed to actual variable such as
auto arr = [1, 2, 3, 4, 5];
auto a = arr;
auto b = arr;
auto c = arr;
In this case, each variable is actually a slice of the same array rather than
duplicating the value.
Using an enum is particularly bad for an AA, since it's not exactly a simple
data type, and there's definitely some cost to constructing them.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list