Unconditional compilation?

John C johnch_atms at hotmail.com
Sun Mar 9 04:22:29 PDT 2008


Code in version blocks must be syntactically correct even if the 
condition is not met and the code isn't compiled - ie, the compiler 
still parses the code. But this makes writing libraries that compile 
with both D1 and D2 difficult - I want to add features for D2 users 
without having to distribute a separate version of the library.

version(D_Version2) {
   struct SomeStruct {

     // D2 copy ctor
     this(this) {}

   }
}

D1 chokes on that, which is expected behaviour according to the spec. 
But how do I get the same behaviour as #if and #else - ie, tell the 
compiler to completely ignore anything if some condition is not met?


More information about the Digitalmars-d-learn mailing list