On 27.02.2011 17:27, Lars T. Kyllingstad wrote:
On Sun, 27 Feb 2011 15:52:01 +0100, simendsjo wrote:I'm having some problems grokking version. How would I translate this simple C macro? #if !defined(IDENT) || !defined(IDENT2) I've tried the following: version(!IDENT) > identifier or integer expected, not ! !version(IDENT) > Declaration expected, not '!' version(IDENT || IDENT2) > found '||' when expecting ')' version(IDENT) || version(IDENT2) > Declaration expected, not '||' This is just plain ugly: version(IDENT) { } else { version = NOT_IDENT_OR_IDENT2; } version(IDENT2) { } else { version = NOT_IDENT_OR_IDENT2; } version(NOT_IDENT_OR_IDENT2) { // Finally }Here's one nice solution to your problem: http://www.digitalmars.com/d/archives/digitalmars/D/ Improving_version_..._119799.html#N119846 Basically, he defines an isVersion() template which is true if the current version is enabled, and false if not. -Lars
Pretty nice, but I don't like magic strings. I'd rather use my more clunky version.
