title: C++11 When clearing shared_ptr, should I use reset or set to nullptr?
body: <p>I have a question about C++11 best practices.  When clearing a shared_ptr, should I use the <code>reset()</code> function with no parameter, or should I set the <code>shared_ptr</code> to <code>nullptr</code>?  For example:</p>
  
  <pre><code>std::shared_ptr&lt;std::string&gt; foo(new std::string("foo"));
  foo.reset();
  foo = nullptr;
  </code></pre>
  
  <p><strong>Is there any real difference, or are there advantages/disadvantages to either approach?</strong></p>