title: std::fill_n of rvalues, does it only support filling by copy?
body: <p>given an <code>std::vector</code> of <code>std::futures</code></p>
  
  <pre><code>std::vector&lt;std::future&lt;void&gt;&gt; futures;
  </code></pre>
  
  <p>how come <code>std::fill_n</code> complains about me calling the copy constructor when I'm passing an rvalue:</p>
  
  <pre><code>std::fill_n(std::back_inserter(futures), 10, std::async([]{ std::cout &lt;&lt; "yo\n"; }));
  
  error: use of deleted function future(const future&amp;)
  </code></pre>
  
  <p>I mean, doesn't <code>fill_n</code> receive an xvalue? If it doesn't, why not?</p>