I'm having some problems understanding the (complex) is expression.
// Example from the documentation
static if (is(int[10] X : X[Y], int Y : 5))
{
assert(0); // should not match, Y should be 10
}
// but this doesn't match either.. Shouldn't it?
static if (is(int[10] X : X[Y], int Y : 10))
{
assert(0);
}