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).

Reply via email to