On 16 January 2012 09:28, Jacob Carlborg <[email protected]> wrote: > On 2012-01-16 00:44, Manu wrote: > >> Why can't I do this: >> >> version( linux || OSX ) >> { >> something common to each >> } >> >> ??? >> >> >> This is not acceptable: >> >> version( MinGW ) >> { >> version = linuxOrMinGW; >> } >> else version( linux ) >> { >> version = linuxOrMinGW; >> } >> >> version( linuxOrMinGW ) >> { >> seriously...? >> } >> >> >> Surely basic logical expressions within a version seem not only logical, >> but also very necessary? >> There must be a reason this is impossible, or else I can't believe it's >> not already like that... >> > > A workaround is to declare variables and use static ifs: > > https://github.com/jacob-**carlborg/orbit/blob/master/** > orbit/util/Version.d<https://github.com/jacob-carlborg/orbit/blob/master/orbit/util/Version.d>
... these aren't acceptable work arounds, in this case, you're written a whole module to subvert the insanity! :) 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.
