switch case for constants-only?

Nick Sabalausky a at a.a
Sat Dec 5 14:23:51 PST 2009


"Sean Kelly" <sean at invisibleduck.org> wrote in message 
news:hfelka$rhf$1 at digitalmars.com...
> Nick Sabalausky Wrote:
>
>> I just noticed in D1 that the values for the cases in a switch must be 
>> known
>> at compile-time (btw, the docs don't seem somewhat vague on that). Is 
>> this
>> also true in D2? If so, I don't suppose we could get that changed before 
>> the
>> book? It's a real PITA for dynamic code.
>
> int x = 1, y = 1;
>
> switch( z )
> {
> case x:
>    ...
> case y:
>    ...
> }
>
> What should this do?  Throw an exception perhaps?

As I mentioned earlier, that should be semantically equivilent to:

int x = 1, y = 1;

if(z == x)
{ ... }
else if(z == y)
{ ... }

In fact, it's already semantically equivilent to that, except that x and y 
are currently required to be known at compile-time.





More information about the Digitalmars-d mailing list