enhancing enums

Nick Sabalausky a at a.a
Tue Dec 8 18:11:29 PST 2009


"Mike Parker" <aldacron at gmail.com> wrote in message 
news:hfmvkn$nvv$1 at digitalmars.com...
> Nick Sabalausky wrote:
>> "Bill Baxter" <wbaxter at gmail.com> wrote in message 
>> news:mailman.581.1260313623.20261.digitalmars-d at puremagic.com...
>>> On Tue, Dec 8, 2009 at 2:17 PM, hehe45 <a3161739 at uggsrock.com> wrote:
>>>> In c++ it is valid syntax to have trailing commas at the and of enum 
>>>> definitions:
>>>> enum {a, b, c, };
>>>> This would be a useful addition to D too.
>>>>
>>>> The enum class syntax from c++0x should also adopted by D, this would 
>>>> allow named enums which are >not automatically encased by a namespace:
>>>>
>>>> enum EnumName {A, B, C}; ---> A, B and C are global constants
>>>> enum class EnumName {A, B, C};---> A, B and C are in the EnumName 
>>>> namespace
>>>>
>>> That's basically what it is now:
>>>
>>> enum { A,B,C }  --> A,B,C global
>>
>> The difference though is that doesn't make A, B and C part of a new type.
>
>
> Which is a very good thing, from my perspective. I cut down the size of 
> the Derelict libraries quite a bit when I converted all the named enums 
> and other constants into anonymous enums, thereby eliminating all the 
> TypeInfo objects. In that particular case, TypeInfo is just useless bloat, 
> IMO.
>

I would think that could be optimized away. Maybe it would be a linker 
optimization though.





More information about the Digitalmars-d mailing list