Can I do an or in a version block?

James Miller james at aatch.net
Wed Mar 7 22:07:08 PST 2012


On 8 March 2012 18:38, Tyler Jameson Little <beatgammit at gmail.com> wrote:
> I would like to do something like this:
>
> version (linux || BSD) {
>    // do something...
> } else {
>    version (Windows) {
>        // do something else
>    } else {
>        // do something else
>        assert(false, "Unsupported operating system");
>    }
> }
>
> The only way I've been able to do this, is by splitting up the two versions
> and repeat code.
>
> Is there a better way to do this? A static if can do this, so is there a way
> that I can use a static if somehow?

I don't think there is an 'elseif' for versions, probably because you
are normally checking mutually exclusive version descriptions.
Otherwise, its probably a good idea to keep the syntax as is, since it
stops people from abusing the mechanic.

--
James Miller


More information about the Digitalmars-d-learn mailing list