It's not intuitive or obvious that this returns 0 when given a non-static-array type, so it either needs to be disallowed with a template constraint or included in the documentation. I think disallowing it is probably the right choice.