title: std::async with std::unique doesn't compile
body: <pre><code>#include &lt;iostream&gt;
  #include &lt;memory&gt;
  #include &lt;future&gt;
  
  using namespace std;
  
  unique_ptr&lt;int&gt; uq(new int);
  
  void foo(unique_ptr&lt;int&gt; q)
  {}
  
  int main()
  {
      foo(move(uq));
      // ^ OK
  
      async(foo, move(uq));
      // ^ Error: error C2248: 'std::unique_ptr&lt;_Ty&gt;::unique_ptr' :
      //    cannot access private member declared in class 'std::unique_ptr&lt;_Ty&gt;'
  }
  </code></pre>
  
  <p>Why 'async' doesn't compile? I use Microsoft Visual Studio 2012 (v4.5.50709). </p>