<div dir="ltr">Lambda is built as a class with function call operator, not a function. Have a look at Sema::startLambdaDefinition, I think it does what you're interested in. In the example you gave 'auto f' is bound to the lambda expression itself, not its return type. You'll have to call it to get the return type 'int x = f()'.<div><pre style="margin-top:0px;margin-bottom:0px"></pre></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 18, 2014 at 2:35 PM, Amila Jayasekara <span dir="ltr"><<a href="mailto:thejaka.amila@gmail.com" target="_blank">thejaka.amila@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi All,<div><br></div><div>In an input program I have following code;</div><div><br></div><div><span>auto</span><span> f = [&z](</span><span>int</span><span> y)-></span><span>int</span><span> { </span></div>








<p><span>      </span><span>return</span><span> </span><span>5</span><span> * y + z; </span> </p><p>}</p><p>I am trying to figure out where we build the type of the lambda expression (i.e. lambda is a function that has type, int->int)<br></p><p>So far I checked in "<span>Sema</span><span>::</span>ActOnStartOfLambdaDefinition" (in SemaLambda.cpp). But still I am unable to figure out the exact location where we build the type of the lambda expression.</p><p>Can someone please help me to figure out where clang build the return type for lambda functions ?</p><p>Also where do we bind "f" to the return type of lambda function ?</p><p style="text-align:left">Thank you</p><p style="text-align:left">Regards</p><p style="text-align:left">-Thejaka Amila</p>







</div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div>