On 1/16/2012 8:44 AM, Manu wrote:
Why can't I do this:

version( linux || OSX )
{
   something common to each
}

???


This is not acceptable:

version( MinGW )
{
version = linuxOrMinGW;
}
else version( linux )
{
version = linuxOrMinGW;
}

version( linuxOrMinGW )
{
   seriously...?
}


Surely basic logical expressions within a version seem not only logical,
but also very necessary?
There must be a reason this is impossible, or else I can't believe it's
not already like that...

This is something I've wanted ever since I first started using D. Really annoying when you need to do the same sort of version checks across multiple modules. One workaround:

----------------
module myconfig;

version(MingW)
{
    enum bool linuxOrMingW = true;
}
else version(linux)
{
    enum bool linuxOrMingW = true;
}
else
{
    enum bool linuxOrMingW = false;
}

-----------------
module foo;

import myconfig;

static if(linuxOrMingW)
{
    ...
}

-----------------

Reply via email to