Works: --- import std.stdio;
void main() { func!true(false); func!false(false); func!false(true); } void func(bool A)(bool b) { static if (A) { writeln("a"); } else if (b) { writeln("b"); } else { writeln("c"); } } --- This works because that static if + if + else actually is: --- static if (A) { ... } else { if (B) { ... } else { ... } } --- This works as intended.