title: Could someone explain what this MS text is trying to convey?
body: <p>This <a href="http://msdn.microsoft.com/en-us/library/kewsb8ba%28v=VS.90%29.aspx" rel="nofollow">document</a> contains the following text and code :</p>
  
  <p>If you use the placement new form of the new operator, the form with arguments in addition to the size of the allocation, the compiler does not support a placement form of the delete operator if the constructor throws an exception. For example:</p>
  
  <pre><code>// expre_new_Operator2.cpp
  // C2660 expected
  class A {
  public:
     A(int) { throw "Fail!"; }
  };
  void F(void) {
     try {
        // heap memory pointed to by pa1 will be deallocated
        // by calling ::operator delete(void*).
        A* pa1 = new A(10);
     } catch (...) {
     }
     try {
        // This will call ::operator new(size_t, char*, int).
        // When A::A(int) does a throw, we should call
        // ::operator delete(void*, char*, int) to deallocate
        // the memory pointed to by pa2.  Since
        // ::operator delete(void*, char*, int) has not been implemented,
        // memory will be leaked when the deallocation cannot occur.
  
        A* pa2 = new(__FILE__, __LINE__) A(20);
     } catch (...) {
     }
  }
  
  int main() {
     A a;
  }
  </code></pre>
  
  <p>As expressed in the second comment line above, the code emits<br>
  C2660:'operator new':no overloaded function takes 3 arguments</p>