Dnia 18-10-2010 o 18:15:47 F. Almeida <francisco.m.alme...@gmail.com> napisał(a):

The version() { ... } blocks would greatly improve from support of
boolean operators, which would make code much more readable.

Let us assume, for example, that I have several version identifiers
(VERSION1, VERSION2, VERSION3, VERSION4, etc.) and that a block of
code may be compiled in the cases of VERSION1 or VERSION3. It would
prove the simplest if one could simply use boolean operators to
express combinations of valid versions and thus be able to do


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.

--
Tomek

Reply via email to