title: What is the type of lambda when deduced with "auto" in C++11?
body: <p>I had a perception that, type of a lambda is a function pointer. When I performed following test, I found it to be wrong (<a href="http://ideone.com/5ZRRsA">demo</a>).</p>
  
  <pre><code>#define LAMBDA [] (int i) -&gt; long { return 0; }
  int main ()
  {
    long (*pFptr)(int) = LAMBDA;  // ok
    auto pAuto = LAMBDA;  // ok
    assert(typeid(pFptr) == typeid(pAuto));  // assertion fails !
  }
  </code></pre>
  
  <p>Is above code missing any point ? If not then, what is the <code>typeof</code> a lambda expression when deduced with <code>auto</code> keyword ?</p>