https://issues.dlang.org/show_bug.cgi?id=19495

          Issue ID: 19495
           Summary: Lack of version conjunctions
           Product: D
           Version: D2
          Hardware: x86
                OS: Mac OS X
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: dmd
          Assignee: [email protected]
          Reporter: [email protected]

version() blocks often require combinations of version identifiers, including
union, intersection, negation, else if, and else structures. However, D
currently does not allow version expressions to be combined this way. When a
programmer wants to write

version(A) {
    ...
} version(B) {
    ...
} version(C || D) {
    ...
} else {
    ...
}

D instead generates a compiler error, or unintended runtime behavior, or even
different behavior based on the current host environment. I think it is
reasonable to assume that programmers want to combine version identifiers much
like if/else if/else structures, and we should offer this capability to our
users.

--

Reply via email to