Changes before 1.0
janderson
askme at me.com
Tue Dec 5 20:20:17 PST 2006
janderson wrote:
> Bill Baxter wrote:
> > janderson wrote:
> >> Bill Baxter wrote:
> >>> janderson wrote:
> >>>>> It would be helpful if the following code would work:
> >>>>> enum TestEnum {
> >>>>> Value1, Value2
> >>>>> }
> >>>>> writefln("%s", TestEnum.Value2);
> >>>
> >>> I agree that I've wanted this kind of feature before too, but I don't
> >>> want it at the expense of bloating every single library that contains
> >>> enums with lots of string equivalents that will never get used in
> >>> real code. I.e. this kind of thing is really only useful for debug
> >>> or prototype code.
> >>> --bb
> >>
> >> I don't agree on this point (that it would only be used in debug). As
> >> I said, in scripting (ie game ai ect...) and in plugin libraries (ie
> >> maya) its common place to use a string lookup for enums. The code
> >> isn't *much* longer or more bug pron
> >
> > Mmmm -- bug pr0n. *much* longer ... more bug pr0n.... :-)
>
> sorry I ment: slightly more bug prone but not much longer...
>
> //enum -> string
>
> enum A
> {
> Value1,
> ...
> };
>
> string A[] =
> {
> "Value1",
> ...
> };
>
>
> //string to enum
>
> A AToString[char[]];
>
> void register()
> {
> AToString["Value1"] = Value;
> //ect...
> }
>
>
> Really not that much code. Also a lot of times in C++ you register lots
> of things together...
>
> struct AInfo
> {
> string name;
> string discription;
> int cost;
> };
>
> string A[] =
> {
> { "Value1", "Some value I picked", 10 },
> ...
> };
>
For clarity that should be more like:
AInfo A[] =
{
{ "Value1", "Some value I picked", 10 },
...
};
>
> >
> >> to write unless you go the other way and want it to be efficient (ie
> >> string->enum is more complex then enum->string). Still both cases are
> >> pretty trivial to write in code.
> >>
> >> I guess the main thing going for it is that users would recognize the
> >> pattern much more quickly (ie readability) although it does reduce the
> >> chance of offset errors (had one of those just the other day).
> >>
> >> -Joel
> >
> > Useful for bridging with scripting code. That's a good point. Python
> > has no enums either, so they sometimes get turned into strings when
> > going into Python land.
> >
> > Hey Kirk if you're listening, what does PyD do with enums?
> >
> > --bb
More information about the Digitalmars-d
mailing list