title: implicit conversion changes signedness 'int" to 'unsigned int"
body: <p>I was using clang++ to compile the program and I need to compile it with no error in clang++. I got no error with other compilers.</p>
  
  <p>The error line in the code is </p>
  
  <pre><code>memset(grid_, 0, sizeof(int) * x_quadrants * y_quadrants);
  </code></pre>
  
  <p>The whole function is like this:</p>
  
  <pre><code>Ocean::Ocean(int num_boats, int x_quadrants, int y_quadrants)
  {
    grid_ = new int[x_quadrants * y_quadrants];
    memset(grid_, 0, sizeof(int) * x_quadrants * y_quadrants);
    x_quadrants_ = x_quadrants;
    y_quadrants_ = y_quadrants;
    boats_ = new Boat[num_boats];
    num_boats_ = num_boats;
  
    stats_.hits = 0;
    stats_.misses = 0;
    stats_.duplicates = 0;
    stats_.sunk = 0;
  }
  </code></pre>
  
  <p>I am using memset so I won't get garbage value output when test with different driver. There's no need to provide command line for clang because I'm not allowed to change it.</p>