static if (T.sizeof == 4) { /*A*/ }
else static if (T.sizeof == 8) { /*B*/ }
else static if (T.sizeof == 12) { /*C*/ }
version (Windows) {}
else version (linux) {}
else version (OSX) {}
static if (something) {}
else version (foo) {}
else static if (somethingelse) {}
----
When such a construct is detected and none of the conditional blocks is matched the compiler should warn/error about an unhandled case.
We could also try to make the declaration of such a ladder without an else-clause a warning/error. This would require an explicit "else {}" to achieve the current behavior and avoids inadvertently missing else clauses similar to how non-final switch statements require a default label.
Comment #1 by andrej.mitrovich — 2013-10-30T08:29:58Z