added union on c++