title: std::function with unique_ptr argument
body: <p>Given a function like </p>
  
  <pre><code>void MyFunction(std::unique_ptr&lt;int&gt; arg);
  </code></pre>
  
  <p>it is not possible (MSVC 2012) to create a functor like</p>
  
  <pre><code>std::function&lt;void(std::unique_ptr&lt;int&gt;)&gt; f = std::bind(&amp;MyFunction, std::placeholders::_1);
  </code></pre>
  
  <p>The problem is not the bind - using <code>auto f = std::bind(...)</code> works. Also, using a <code>shared_ptr</code> also works</p>
  
  <ul>
  <li>Why is unique_ptr disallowed?</li>
  <li>Is this a MSVC problem or general C++11 restriction?</li>
  <li>Is there a work-around without changing the function definition?</li>
  </ul>