Trait class that identifies whether T is an empty class.
An empty class is a class that stores no data, either cv-qualified or not. is_empty identifies as such all classes (declared with class or struct, but no union) that fulfill all of the following:
has no non-static members other than bit-fields of length 0,
has no virtual functions and no virtual base class, and
has no base class for which is_empty is false_type.