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