Conversion_factor is useful but could be extended to other bases than base10, particularly base 2, when it would be to represent an information type. Exponent then should take base as an arg, would look like exponent<10,ratio<N,D> > exponent10 could then be typedef