When user define an UNION like below:
unionADDRESS
{
char* road;
string street;
};
The compiler will report an error(visual studio) : member 'ADDRESS::street' of union 'ADDRESS' has copy constructor.
gcc will report a different error like "use of deleted function...".
It means an UNION can't contain an object who has a copy constructor.