cpp/utility/compare/common comparison category

The class template provides an alias (as the member typedef ) for the strongest comparison category to which all of the template arguments  can be converted.

In detail, the common comparison type of a list of n types $0$...$n-1$ is defined as follows:
 * If any $i$ is not a comparison category type, is.
 * Otherwise, if at least one $i$ is, is.
 * Otherwise, if at least one $i$ is, is.
 * Otherwise (if every $i$ is, or if the list is empty), is.