If the underlying type is not explicitly specified for an unscoped enumeration type, it is determined in an implementation-defined manner.
enum E {
RED,
GREEN,
BLUE,
};
using T = std::underlying_type<E>::type; // implementation-defined
However, the standard does require th...