title: Why is auto not allowed in lambda parameter?
body: <p>When I write a lambda definition with the following signature:</p>
  
  <pre><code>auto lambda = [&amp;] (auto i){
  
  
  };
  </code></pre>
  
  <p>I get the following compiler error:</p>
  
  <pre><code>error: 'auto' not allowed in lambda parameter
  </code></pre>
  
  <p>When I change the type from <code>auto</code> to <code>int</code>, the error disappears.</p>
  
  <p>I am not sure why the compiler can deduce the type of a lambda, but not its parameter type, which should be known to it at the time of the invocation of the lambda?</p>
  
  <p>I am trying to understand the reasoning behind this restriction.</p>