Dnia 18-10-2010 o 22:39:32 Lars T. Kyllingstad <pub...@kyllingen.nospamnet> napisał(a):

version(VERSION1 || VERSION3)
{
 // ...
}

You can have it now:

template isVersion(string ver) {
     enum bool isVersion = !is(typeof({
           mixin("version(" ~ ver ~") static assert(0);");
     }));
}

static if (isVersion"VERSION1" || isVersion!"VERSION3") {
     ...
}

If you're rushing to reply "That's hideous!", don't bother. I know.
Actually, I think it's pretty cool.

Heh, thanks. Maybe with more templates it won't poke the eye:

static if (anySatisfy!(isVersion, "VERSION1", "VERSION2", "VERSION3", ...))

Still, it is a hack around a language's restriction. But what would be programming without one! :)

--
Tomek

Reply via email to