
You can see [http://www.open-std.org/jtc1/sc22/wg21 [*N2661 - A Foundation to Sleep On]] which is very informative and provides motivation for key design decisions for `common_type`, ratio and chrono.
I really think they are very useful and the standard group also, as both are in N3000.
Here there are some extracts
"In a nutshell, `common_type` is a trait that takes 1 or more types, and returns a type which all of the types will convert to. The default definition demands this conversion be implicit. However the trait can be specialized for user-defined types which want to limit their inter-type conversions to explicit, and yet still want to interoperate with the `common_type` facility.
Example:
template <class T, class U> typename common_type<complex<T>, complex<U> >::type operator+(complex<T>, complex<U>);
In the above example, "mixed-mode" complex arithmetic is allowed. The return type is described by `common_type`. For example the resulting type of adding a `complex<int>` and `complex<double>` might be a `complex<double>`."
OK, looking into that a bit more, I think that would be a reasonably uncontrovercial addition to type_traits - but do you have a test suite and docs?
"`ratio` is a general purpose utility inspired by Walter Brown allowing one to easily and safely compute rational values at compile time. The `ratio` class catches all errors (such as divide by zero and overflow) at compile time. It is used in the `duration` and `time_point` classes to efficiently create units of time. It can also be used in other "quantity" libraries (both std-defined and user-defined), or anywhere there is a rational constant which is known at compile time. The use of this utility can greatly reduce the chances of run time overflow because the `ratio` (and any ratios resulting from `ratio` arithmetic) are always reduced to lowest terms.
This one's quite a bit of an addition - almost a little mini-library in it's own right. I think you're correct that it should be locatable as a utility in it's own right, and yes under boost/integer I guess. My suggestion is that you ask for a review for ratio separately from chrono. BTW the utilities here http://www.boost.org/doc/libs/1_41_0/libs/math/doc/gcd/html/index.html might be useful for the implementation of this one, rather than re-inventing your own. HTH, John.