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