title: std::shared_ptr initialization: make_shared<Foo>() vs shared_ptr<T>(new Foo)
body: <p>What's the difference between:</p>
  
  <pre><code>std::shared_ptr&lt;int&gt; p = std::shared_ptr&lt;int&gt;( new int );
  </code></pre>
  
  <p>and </p>
  
  <pre><code>std::shared_ptr&lt;int&gt; p = std::make_shared&lt; int &gt;();
  </code></pre>
  
  <p>?</p>
  
  <p>Which one should I prefer and why?</p>
  
  <p>P. S. Pretty sure this must have been answered already, but I can't find a similar question.</p>