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.

Reply via email to