title: operator new with negative size
body: <p>In C++11 if we try to allocate array with negative size using global operator new, it will throw std::bad_array_new_length, but what about C++98 / C++03? Is it UB or will throw std::bad_alloc?</p>
  
  <pre><code>int main()
  {
     int* ptr = new int[-1];
  }
  </code></pre>