title: Function returning a lambda expression
body: <p>I wonder if it's possible to write a function that returns a lambda function in C++11. Of course one problem is how to declare such function. Each lambda has a type, but that type is not expressible in C++. I don't think this would work:</p>
  
  <pre><code>auto retFun() -&gt; decltype ([](int x) -&gt; int)
  {
      return [](int x) { return x; }
  }
  </code></pre>
  
  <p>Nor this:</p>
  
  <pre><code>int(int) retFun();
  </code></pre>
  
  <p>I'm not aware of any automatic conversions from lambdas to, say, pointers to functions, or some such. Is the only solution handcrafting a function object and returning it? </p>