Unions can contain most types in their member lists, except for the following:
Class types that have constructors or destructors
Class types that have user-defined assignment operators
Static data members