On Mon, 18 Oct 2010 21:42:20 +0200, Tomek Sowiński wrote: > Dnia 18-10-2010 o 18:15:47 F. Almeida <francisco.m.alme...@gmail.com> > napisał(a): > >> The version() { ... } blocks would greatly improve from support of >> boolean operators, which would make code much more readable. >> >> Let us assume, for example, that I have several version identifiers >> (VERSION1, VERSION2, VERSION3, VERSION4, etc.) and that a block of code >> may be compiled in the cases of VERSION1 or VERSION3. It would prove >> the simplest if one could simply use boolean operators to express >> combinations of valid versions and thus be able to do >> >> >> version(VERSION1 || VERSION3) >> { >> // ... >> } > > You can have it now: > > template isVersion(string ver) { > enum bool isVersion = !is(typeof({ > mixin("version(" ~ ver ~") static assert(0);"); > })); > } > > static if (isVersion"VERSION1" || isVersion!"VERSION3") { > ... > } > > If you're rushing to reply "That's hideous!", don't bother. I know.
Actually, I think it's pretty cool. :) -Lars