title: Nested Lambda capture issue
body: <p>I have compiled this using Visual Studio 2010 compiler and it has compiler error issues on nested lambda capturing the variables captured already by the first lambda:</p>
  
  <pre><code>    Functor&amp; fn, const WorkData&amp; workData
  
      group.run([&amp;fn, workData](){
      async_future&lt;ProcessorResult&gt; future([&amp;fn, workData]() -&gt; ProcessorResult{
      ProcessorResult result = fn.Process(workData);
  
      return result;
      });
  });
  </code></pre>
  
  <p>I get:</p>
  
  <pre><code>**error C3480**: '`anonymous-namespace'::&lt;lambda3&gt;::fn': a lambda capture variable must be from an enclosing function scope
  </code></pre>
  
  <p>It seems that the compiler does not like that I try to capture inside the future instance the variables captured already by the group.run() method.</p>
  
  <p>If I create local copies it works:</p>
  
  <pre><code>    group.run([&amp;fn, workData](){
      Functor&amp; fnlocal = fn;
      WorkData workDatalocal = workData;
  
      async_future&lt;ProcessorResult&gt; future([&amp;fnlocal, workDatalocal]() -&gt; ProcessorResult{
      ProcessorResult result = fnlocal.Process(workDatalocal);
  
      return result;
      });
  });
  </code></pre>
  
  <p>Is this behavior conformant ? I always need to make copies of captured variables in order to capture the same variables on a nested lambda ?</p>