title: unique_ptr constructor with rvalue deleter returns null?
body: <p>Here's a code snippet I'm using to understand the behavior of <code>std::unique_ptr</code>:</p>
  
  <pre><code>std::default_delete&lt;int&gt; d;
  std::unique_ptr&lt;int&gt; u1;
  std::unique_ptr&lt;int&gt; u2 (nullptr);
  std::unique_ptr&lt;int&gt; u3 (new int);
  std::unique_ptr&lt;int&gt; u4 (new int, d);
  std::unique_ptr&lt;int&gt; u5 (new int, std::default_delete&lt;int&gt;());
  std::unique_ptr&lt;int&gt; u6 (std::move(u5));
  std::unique_ptr&lt;int&gt; u7 (std::move(u6));
  std::unique_ptr&lt;int&gt; u8 (std::auto_ptr&lt;int&gt;(new int));
  
  std::cout &lt;&lt; "u1: " &lt;&lt; (u1?"not null":"null") &lt;&lt; '\n';
  std::cout &lt;&lt; "u2: " &lt;&lt; (u2?"not null":"null") &lt;&lt; '\n';
  std::cout &lt;&lt; "u3: " &lt;&lt; (u3?"not null":"null") &lt;&lt; '\n';
  std::cout &lt;&lt; "u4: " &lt;&lt; (u4?"not null":"null") &lt;&lt; '\n';
  std::cout &lt;&lt; "u5: " &lt;&lt; (u5?"not null":"null") &lt;&lt; '\n';
  std::cout &lt;&lt; "u6: " &lt;&lt; (u6?"not null":"null") &lt;&lt; '\n';
  std::cout &lt;&lt; "u7: " &lt;&lt; (u7?"not null":"null") &lt;&lt; '\n';
  std::cout &lt;&lt; "u8: " &lt;&lt; (u8?"not null":"null") &lt;&lt; '\n';
  </code></pre>
  
  <p>Can somebody explain why <code>null</code> is printed for <code>u5</code> and <code>u6</code>, but not for <code>u7</code>? Thanks in advance!</p>