title: shared_ptr with templates
body: <p>If I want to create a smart pointer to struct I do that:</p>
  
  <pre><code>    struct A
      {
          int value;
      };
      typedef boost::shared_ptr&lt;A&gt; A_Ptr;
  </code></pre>
  
  <p>So, I can write the following:</p>
  
  <pre><code>    A_Ptr pA0(new A);
      pA0-&gt;value = 123;
  </code></pre>
  
  <p>But, If I have a template struct like that:</p>
  
  <pre><code>    template&lt;typename T&gt;
      struct B
      {
          T value;
      };
  </code></pre>
  
  <p>And I want to write the following:</p>
  
  <pre><code>    B_Ptr&lt;char&gt; pB0(new B&lt;char&gt;);
      pB0-&gt;value = 'w';
  </code></pre>
  
  <p>So, How should I declare the B_Ptr ?</p>