struct point { point() {} point(int x, int y) : x_(x) , y_(y) { } int x_, y_; }; union u { point p_; int i_; char const* s_; };