enhancing enums

Mike Parker aldacron at gmail.com
Tue Dec 8 17:48:12 PST 2009


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.

> Personally, I'm fine with that though (well, except for the whole "let's 
> pretend manifest constants are an 'enum'" absurdity), because I *hate* enums 
> that pollute the namespace with their members.
> 
> 
> 



More information about the Digitalmars-d mailing list