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