D - enum : type ???
- Russ Lewis (23/23) Apr 09 2002 In com.d (in the newest D alpha source), there is this declaration:
- Walter (3/21) Apr 09 2002 Yes!
- OddesE (16/39) Apr 09 2002 I saw this too.
- Russ Lewis (10/18) Apr 09 2002 I've used unnamed enums before as a shorthand to declare a set of
- Walter (6/19) Apr 09 2002 You're right. Specifying no name for the enum creates an "anonymous" enu...
In com.d (in the newest D alpha source), there is this declaration: enum : int { S_OK = 0, S_FALSE = 0x00000001, NOERROR = 0, E_NOTIMPL = 0x80004001, E_NOINTERFACE = 0x80004002, E_POINTER = 0x80004003, E_ABORT = 0x80004004, E_FAIL = 0x80004005, E_HANDLE = 0x80070006, CLASS_E_NOAGGREGATION = 0x80040110, E_OUTOFMEMORY = 0x8007000E, E_INVALIDARG = 0x80070057, E_UNEXPECTED = 0x8000FFFF, } Does D allow you to specify the underlying type of an enum, then? -- The Villagers are Online! villagersonline.com .[ (the fox.(quick,brown)) jumped.over(the dog.lazy) ] .[ (a version.of(English).(precise.more)) is(possible) ] ?[ you want.to(help(develop(it))) ]
Apr 09 2002
"Russ Lewis" <spamhole-2001-07-16 deming-os.org> wrote in message news:3CB329ED.C26B55E7 deming-os.org...In com.d (in the newest D alpha source), there is this declaration: enum : int { S_OK = 0, S_FALSE = 0x00000001, NOERROR = 0, E_NOTIMPL = 0x80004001, E_NOINTERFACE = 0x80004002, E_POINTER = 0x80004003, E_ABORT = 0x80004004, E_FAIL = 0x80004005, E_HANDLE = 0x80070006, CLASS_E_NOAGGREGATION = 0x80040110, E_OUTOFMEMORY = 0x8007000E, E_INVALIDARG = 0x80070057, E_UNEXPECTED = 0x8000FFFF, } Does D allow you to specify the underlying type of an enum, then?Yes!
Apr 09 2002
"Walter" <walter digitalmars.com> wrote in message news:a8vbhm$okj$1 digitaldaemon.com..."Russ Lewis" <spamhole-2001-07-16 deming-os.org> wrote in message news:3CB329ED.C26B55E7 deming-os.org...I saw this too. Is the omission of an enum name a hack, or was it meant to be that way? How do you define a parameter to a function that takes such an enum, just as the same type? So int in this case? Could you explain this a bit more, I am quite intrigued by it! -- Stijn OddesE_XYZ hotmail.com http://OddesE.cjb.net _________________________________________________ Remove _XYZ from my address when replying by mailIn com.d (in the newest D alpha source), there is this declaration: enum : int { S_OK = 0, S_FALSE = 0x00000001, NOERROR = 0, E_NOTIMPL = 0x80004001, E_NOINTERFACE = 0x80004002, E_POINTER = 0x80004003, E_ABORT = 0x80004004, E_FAIL = 0x80004005, E_HANDLE = 0x80070006, CLASS_E_NOAGGREGATION = 0x80040110, E_OUTOFMEMORY = 0x8007000E, E_INVALIDARG = 0x80070057, E_UNEXPECTED = 0x8000FFFF, } Does D allow you to specify the underlying type of an enum, then?Yes!
Apr 09 2002
OddesE wrote:I saw this too. Is the omission of an enum name a hack, or was it meant to be that way? How do you define a parameter to a function that takes such an enum, just as the same type? So int in this case? Could you explain this a bit more, I am quite intrigued by it!I've used unnamed enums before as a shorthand to declare a set of constants. It can be a lot easier to read, and gives the programmer a visual clue that all of the constants are related. In this case, it would be a set of int constants. -- The Villagers are Online! villagersonline.com .[ (the fox.(quick,brown)) jumped.over(the dog.lazy) ] .[ (a version.of(English).(precise.more)) is(possible) ] ?[ you want.to(help(develop(it))) ]
Apr 09 2002
"Russ Lewis" <spamhole-2001-07-16 deming-os.org> wrote in message news:3CB33CD5.ACF32C8A deming-os.org...OddesE wrote:You're right. Specifying no name for the enum creates an "anonymous" enum, which is just a convenient way to create a bunch of integer constants in the enclosing scope. They'll be typed as an "int" (or whatever the enum base type is), not an enum.I saw this too. Is the omission of an enum name a hack, or was it meant to be that way? How do you define a parameter to a function that takes such an enum, just as the same type? So int in this case? Could you explain this a bit more, I am quite intrigued by it!I've used unnamed enums before as a shorthand to declare a set of constants. It can be a lot easier to read, and gives the programmer a visual clue that all of the constants are related. In this case, it would be a set of int constants.
Apr 09 2002