digitalmars.D.learn - version() used in multiple special cases?
On http://www.dsource.org/tutorials/index.php?show_example=117 I found this interesting example of version() use <code> // By Joey Peters // pass -version=free to dmd version(Free) { version = FeatureA; } else { version = FeatureA; version = FeatureB; } void main() { // every version has this. version(FeatureA) { printf("Hello world!"); } // only the non free has this version(FeatureB) { printf("Deluxe!"); } } </code> I but from reading die above I get the feeling you also ways need to place version + else. What I would be looking for is to be able to do this... ...code... version(debug) { writefln... } ...code... version(debugging2) { writefln... } ...code... and be able to selectively turn those blocks on and off. Would -version=debug compile my code, plus turn on the debug version section, but not the debugging2 section. Dito for -version=debugging2? Could I then group them version(AllDebug) { version = debug; version = debugging2; } else { } I.e. that with -version=AllDebug I could turn on all debugging, and by not defining a -version, no debug code would be in the compile? AEon
Mar 31 2005
AEon wrote:I but from reading the above I get the feeling you always need to place version + else. What I would be looking for is to be able to do this... ....code... version(debug) { writefln... } ....code... version(debugging2) { writefln... } ....code... and be able to selectively turn those blocks on and off. Would -version=debug compile my code, plus turn on the debug version section, but not the debugging2 section. Dito for -version=debugging2?Just tested this, the above already works as expected (hoped for), i.e. you do not need to define the "default" code in an else{} of version. So far so good.Could I then group them version(AllDebug) { version = debug; version = debugging2; } else { } I.e. that with -version=AllDebug I could turn on all debugging, and by not defining a -version, no debug code would be in the compile?This does not work though. Is there any way to group all the versions in one new version tag? AEon
Mar 31 2005