I think this has to be a template constraint instead of a `static assert` so that it doesn't conflict with for example `std.math.log`.