On Fri, 22 May 2009 20:29:03 +1200, Robert Clipsham <rob...@octarineparrot.com> wrote:

Tim Matthews wrote:
 I think this would be less ugly:
 template vers(char[] V)
{
     mixin("version(" ~ V ~ ")
     {
           const bool vers = true;
     }
     else
     {
           const bool vers = false;
     }");
}
 static if(vers!("BackendFoo") || vers!("Windows"))
{
      //
}
else static if(vers!("BackendBar"))
{
     //
}
else static if (vers!("BackendCar"))
{
    //
}
else
{
    //
}
I would prefer the normal version statement to work like that directly though.

This still doesn't solve my problem though, all it does is remove the usage of the version statement, which seems... pointless :S



From what can I see you have a few different posssible versions but when no version is defined you can select a default version based on other stuff like windows operating system. Rather than modify the versions or add aditional to match the system you can create complex 'static if' statements which also are a compile time feature but can have other static ifs and logical comparisons like '&&' and '||'. When you have put the right checks in you can match your select target systems all within a single static if.

Reply via email to