title: typedef boost::shared_ptr<MyJob> Ptr; or #define Ptr boost::shared_ptr
body: <p>I've just started working on a new codebase where each class contains a shared_ptr typedef (<a href="https://stackoverflow.com/questions/2717436/whats-your-convention-for-typedefing-shared-ptr/2717451#2717451">similar to this</a>) like:</p>
  
  <pre><code>typedef boost::shared_ptr&lt;MyClass&gt; Ptr;
  </code></pre>
  
  <p>Is the only purpose to save typing boost::shared_ptr? </p>
  
  <p>If that is the case, is the only reason not to do </p>
  
  <pre><code>#define Ptr boost::shared_ptr 
  </code></pre>
  
  <p>in one common header the general problems with #define? Then you can do:</p>
  
  <pre><code>Ptr&lt;MyClass&gt; myClass(new MyClass);
  </code></pre>
  
  <p>which is no more typing than</p>
  
  <pre><code>MyClass::Ptr myClass(new MyClass);
  </code></pre>
  
  <p>and saves the Ptr definition in each class.</p>