Hello Simen,

On Mon, 07 Dec 2009 16:55:43 +0100, downs <default_357-l...@yahoo.de>
wrote:

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.
I wish they'd get over it.

import tools.base;

...

mixin(
ReplaceConcat!(2, "if (x == #) { ! } else",
"#", "!",
"A", "handleTheACase; ",
"B", "handleTheBCase; ",
"C", "handleTheCCase; "
)
~ " assert(false); "
);
Now if only D templates handled variadic alias parameters,

I want this (for other reasons).

and my idea
of  mixin templates, we could instead have this syntax:

int n;
SwitchCase!( n,
A, handleA(),
B, handleB(),
C, handleC(),
assert( false )
);

I think you ca get this to work right now:

SwitchCase!(n).
Case!(A, handleA).
Case!(B, handleB).
Case!(C, handleC).
DefaultFail!();


Reply via email to