On Tuesday, 5 November 2013 at 12:27:55 UTC, Jacob Carlborg wrote:
On 2013-11-05 12:16, Meta wrote:
One gotcha relates to enums. Writing `enum a = [0, 1, 2]` is a
really
bad idea, because everywhere you use a, it constructs a new
array at
runtime. The [0, 1, 2] is "pasted in", and you'll have a bunch
of
allocations you didn't expect. This doesn't just happen with
arrays, but
that's the most common case. What *is* okay is using string
enums, as
strings are a bit special due to being immutable.
Isn't the problem rather that [0, 1, 2] allocates in the first
place, regardless if an enum is used or not.
It's a combination of [0, 1, 2] allocating and enum a = [0, 1, 2]
not doing what you think it does (defining a variable instead of
just copying and pasting).