title: How to forward declare boost smart ptr?
body: <p>This code fails to compile:</p>
  
  <pre><code>namespace boost
  {
    template&lt;class T&gt; class scoped_ptr;
  }
  
  namespace FooNamespace
  {
  
  class FooClass
  {
    boost::scoped_ptr&lt;FooType&gt; foo;
  };
  
  }
  </code></pre>
  
  <p>g++ says: <code>error: field ‘foo’ has incomplete type</code></p>
  
  <p>I thought it would be ok since I copied the scoped_ptr declaration over from the actual boost header file... What did I screw?</p>
  
  <p>Note: The problem is not in <code>FooType</code>. I tried substituting it by <code>int</code> to no avail...</p>
  
  <p>Thanks!</p>