title: Allow objects to be allocated only using dynamic allocation
body: <p>I am working on a small library, where I have following requirements for any <code>class X</code>:</p>
  
  <ol>
  <li><code>class X</code> must be allocatable only using <code>operator new</code></li>
  <li>All the children of <code>class X</code> should implicitly become allocatable
  only by <code>operator new</code></li>
  <li>The syntax for heap allocation should be elegant</li>
  <li>Not much of the existing code should be changed to incorporate this</li>
  <li>After some point of time, if I want to allow <code>class X</code> to be allocatable
  as automatic; again not much code should be changed</li>
  </ol>
  
  <p>I also welcome C++0x solutions (for future use only).</p>
  
  <p>[Note: I have done my part of research and will be posting it as an answer (tested for basic scenarios)]</p>