D Language Gotchas
Meta
jared771 at gmail.com
Tue Nov 5 08:07:04 PST 2013
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).
More information about the Digitalmars-d
mailing list