switch case expressions
Martin Krejcirik via Digitalmars-d
digitalmars-d at puremagic.com
Thu Apr 23 13:22:25 PDT 2015
void main(string[] args)
{
int a = 1;
int b = to!int(args[1]);
uint c = 2;
switch (a)
{
case b: break; // OK
case c: break; // Error: variable c cannot be read at
compile time
default: break;
}
}
Switch spec says:
The case expressions must all evaluate to a constant value or
array, or a runtime initialized const or immutable variable of
integral type. They must be implicitly convertible to the type of
the switch Expression.
So, should the case b compile or not ? Is the spec too
restrictive here, or is it a bug ?
I was initially working to fix the case c (to allow casts), but
this should be clarified.
More information about the Digitalmars-d
mailing list