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