Version block "conditions" with logical operators
Tomer Filiba via Digitalmars-d
digitalmars-d at puremagic.com
Tue May 10 05:27:59 PDT 2016
On Tuesday, 10 May 2016 at 11:48:12 UTC, Joakim wrote:
> This has been discussed multiple times in the forum, Walter is
> against it and I agree with him:
Thanks for the pointers
> Another alternative is to put all such OS versioning logic in a
> build script somewhere and then version on features in your D
> code, which is probably cleanest, ie have a build script check
...
> The idea is to avoid having a bunch of such repeated
> conditional logic for versioning spread throughout the
> codebase, because it will be very error-prone and brittle.
It's compiler-version-dependent, or version(unittest) or
version(assert) or version(do_extra_checks). Which means my
checks are inherently spread around the code. I counted 53
instances of "version.*else" in our code, which all look like
version (XXX) {} else {...}
I'm going to use my isVersion hack to avoid code duplication in
"or", but for the rest of the code, I really think a
version(!unittest) {...} is cleaner.
-tomer
More information about the Digitalmars-d
mailing list