switch case for constants-only?
Sean Kelly
sean at invisibleduck.org
Sat Dec 5 15:28:48 PST 2009
Nick Sabalausky Wrote:
> "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.
D allows duplicate case values? I thought this was a compile error.
More information about the Digitalmars-d
mailing list