title: Passing unique_ptr rvalue reference result compile error
body: <p>Here is the sample code:</p>
  
  <pre><code>using namespace std;
  struct A {
      A(unique_ptr&lt;int&gt; s)
      : _s(move(s)){}
  
      unique_ptr&lt;int&gt; _s;
  };
  
  int main(int argc, const char * argv[]) {
  
      auto&amp;&amp; ptr = make_unique&lt;int&gt;(5);
      A a{ptr}; // Error
      A b{move(ptr)}; // OK 
      return 0;
  }
  </code></pre>
  
  <p>My first guess was it should work without using 'move', but I get 'Call to implicitly deleted copy constructor' on clang. Perhaps the type of 'ptr' is not rvalue (strangely?)? Could someone clarify on this? </p>