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