<div class="gmail_quote">On 16 January 2012 09:28, Jacob Carlborg <span dir="ltr"><<a href="mailto:doob@me.com">doob@me.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On 2012-01-16 00:44, Manu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Why can't I do this:<br>
<br>
version( linux || OSX )<br>
{<br>
   something common to each<br>
}<br>
<br>
???<br>
<br>
<br>
This is not acceptable:<br>
<br>
version( MinGW )<br>
{<br>
version = linuxOrMinGW;<br>
}<br>
else version( linux )<br>
{<br>
version = linuxOrMinGW;<br>
}<br>
<br>
version( linuxOrMinGW )<br>
{<br>
   seriously...?<br>
}<br>
<br>
<br>
Surely basic logical expressions within a version seem not only logical,<br>
but also very necessary?<br>
There must be a reason this is impossible, or else I can't believe it's<br>
not already like that...<br>
</blockquote>
<br></div>
A workaround is to declare variables and use static ifs:<br>
<br>
<a href="https://github.com/jacob-carlborg/orbit/blob/master/orbit/util/Version.d" target="_blank">https://github.com/jacob-<u></u>carlborg/orbit/blob/master/<u></u>orbit/util/Version.d</a></blockquote><div><br></div><div>
... these aren't acceptable work arounds, in this case, you're written a whole module to subvert the insanity! :)</div><div>At bare minimum, the version list/map/table/whatever it is should be exposed to static-if, without having to create a module like the one you just described.</div>
</div>