Feature request: enum init shouldn't create a new enumeration
Tommi
tommitissari at hotmail.com
Sat Oct 13 08:39:23 PDT 2012
I'd like to be able to specify a default value for a named enum,
E.init, without creating a new enumeration. There are three
reasons:
1) Default initializing enum variables to an "invalid" value
2) Being able to use 'final switch' without the 'init' case
3) "Invalid" init value wouldn't affect E.min or E.max
Here's what currently happens:
enum MyEnum
{
init = -123,
first = 0,
second = 1
}
void main()
{
static assert(MyEnum.min == -123);
MyEnum me;
final switch (me)
{
case MyEnum.first: break;
case MyEnum.second: break;
case MyEnum.init: // I'm forced to specify init case too
}
}
This is what I'd like to happen:
enum MyEnum
{
init = -123,
first = 0,
second = 1
}
void main()
{
static assert(MyEnum.min == 0); // no effect on min/max
MyEnum me;
final switch (me) // no init case necessary nor allowed
{
case MyEnum.first: break;
case MyEnum.second: break;
}
}
More information about the Digitalmars-d
mailing list