title: How could I sensibly overload placement operator new?
body: <p>C++ allows overloading <code>operator new</code> - both global and per-class - usual <code>operator new</code>, <code>operator new[]</code> used with <code>new[]</code> statement and placement <code>operator new</code> separately.</p>
  
  <p>The former two of those three are usually overloaded for using customized allocators and adding tracing. But placement <code>operator new</code> seems pretty straightforward - it actually does nothing inside. For example, in Visual C++ the default implementation just returns the address passed into the call:</p>
  
  <pre><code>//from new.h
  inline void* operator new( size_t, void* where )
  {
     return where;
  }
  </code></pre>
  
  <p>What else could it do?  Why and how could I sensibly overload placement <code>operator new</code>?</p>