On Sunday, 28 June 2015 at 13:43:39 UTC, Artur Skawina wrote:
On 06/28/15 05:06, Joakim via Digitalmars-d wrote:
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.
And wrong. Spot the bug.
Eh, that idiom is not commonly used so I wasn't exactly clear on
the syntax, but you're presumably referring to the need for
braces?
version(linux)
{ version(D_LP32) version = valistIsCharPointer; }
else version(Windows)
version = valistIsCharPointer;
I actually find this even more clear, the best of the bunch. :)
That's the real reason why 'version' needs to be banned from
the codebase. You should *never* use D's 'version'.
If you think it needs to be banned because of some non-obvious
bracing syntax, you don't have much to stand on.