It's perfectly fine and legal to throw an `Error` in nothrow code. Heck, since all these functions are actually templates, you could just mark the non-template function `checkDivByZero()` as `nothrow`, and the rest of these functions would implicitly become nothrow right there and then.

*Marking* them as nothrow is just the icing on the cake.

All this splitting up business seems useless to me. The *only* functions in the entire module that have any business throwing exceptions are the ones that parse numbers as strings. You could instead just move those functions to the top of the module, then simply insert a `nothrow:` (and probably `pure` too...)