title: What is the need of template lambda introduced in C++20 when C++14 already has generic lambda?
body: <p><a href="/questions/tagged/c%2b%2b14" class="post-tag" title="show questions tagged &#39;c++14&#39;" rel="tag">c++14</a> introduced generic lambdas that made it possible to write following:</p>
  
  <pre><code>auto func = [](auto a, auto b){
      return a + b;
  };
  auto Foo = func(2, 5);
  auto Bar = func("hello", "world");
  </code></pre>
  
  <p>It is very clear that this generic lambda <code>func</code> works just like a templated function <code>func</code> would work.</p>
  
  <p>Why did the C++ committee decide to add template syntax for generic lamda?</p>