switch case for constants-only?
BCS
none at anon.com
Sat Dec 5 16:02:19 PST 2009
Hello Nick,
> "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.
>
Just jumping a ways down this rabbit hole...
struct S { int i; int opCmp(S s) { return i-- == s.i++; }
{
S a,b,c,d,e;
...
switch(a)
{
case b: break;
case c: break;
case d: break;
case e: break;
}
}
Oh, boy. What the hack does the above do?
More information about the Digitalmars-d
mailing list