title: Best practice for std::auto_ptr
body: <p>I'm just getting used to smart pointers using std::auto_ptr.</p>
  
  <p>Assume that I want to call a function with both auto_ptr and normal Pointers.</p>
  
  <pre><code>auto_ptr&lt;uint32&gt; data_smart(new uint32[123])]);
  uint32 data_fix[123];
  uint32* data_dumb = new uint32[123];
  
  processData(data_smart);
  processData(data_fix);
  processData(data_dumb);
  </code></pre>
  
  <p>What is the best practice for this without overloading? Having the processData function with a uint32* argument? Can I cast the smart pointer to uint32* for this case with .get()? Or what is the way I should do it?
  Thanks in advance!</p>