template dimensionality (S) {
template count_dim (uint i = 0) {
static if (is (typeof(S.init.opSlice!i (0,0))))
enum count_dim = count_dim!(i+1);
else static if (i == 0 && (isInputRange!S || is
(typeof(S.init[0])))
enum count_dim = 1;
else enum count_dim = i;
}alias dimensionality = count_dim!(); }Should work for any case I can think of (assuming integral indices).
