version: multiple conditions
Joakim via Digitalmars-d
digitalmars-d at puremagic.com
Sat Jun 27 20:06:18 PDT 2015
On Friday, 26 June 2015 at 06:06:09 UTC, Daniel Murphy wrote:
> Walter, how about a compromise?
>
> If we allow setting versions to boolean expression then it
> becomes much easier to use it the way you suggest, while still
> requiring a (hopefully) sensible name and discouraging making a
> mess.
>
> eg
>
> version(A)
> {
> version(B)
> {
> }
> else
> {
> version=NeedsSomeCode;
> }
> }
>
> becomes
>
> version NeedsSomeCode = A && !B
>
> An example from real code would be
>
> version valistIsCharPointer = (Linux && LP32) || Windows;
>
> This pattern does appear frequently in your compiler code, are
> you for or against seeing it in D?
So you're trying to avoid writing this?
version(linux) version(D_LP32)
version = valistIsCharPointer;
else version(Windows)
version = valistIsCharPointer;
While your version is more concise, I actually think the current
form is more clear.
More information about the Digitalmars-d
mailing list