Create a wrapper class around unrestricted union supporting usual 
class functions (constructors and destructors), accessors to union's fields 
and indicator about which union field is used.
