<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>libsigc++: Lambdas</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.2 --> <div class="navigation" id="top"> <div class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#nested-classes">Classes</a> | <a href="#groups">Modules</a> </div> <div class="headertitle"> <h1>Lambdas</h1> </div> </div> <div class="contents"> <p>libsigc++ ships with basic lambda functionality and the sigc::group adaptor, which uses lambdas to transform a functor's parameter list. <a href="#_details">More...</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="nested-classes"></a> Classes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1lambda__base.html">sigc::lambda_base</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">A hint to the compiler. <a href="structsigc_1_1lambda__base.html#_details">More...</a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1lambda.html">sigc::lambda< T_type ></a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Lambda type. <a href="structsigc_1_1lambda.html#_details">More...</a><br/></td></tr> <tr><td colspan="2"><h2><a name="groups"></a> Modules</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__group__.html">group()</a></td></tr> <p><tr><td class="mdescLeft"> </td><td class="mdescRight"><p>sigc::group() alters an arbitrary functor by rebuilding its arguments from one or more lambda expressions. </p> <br/></td></tr> </p> </table> <hr/><a name="_details"></a><h2>Detailed Description</h2> <p>libsigc++ ships with basic lambda functionality and the sigc::group adaptor, which uses lambdas to transform a functor's parameter list. </p> <p>The lambda selectors sigc::_1, sigc::_2, ..., sigc::_9 are used to select the first, second, ..., nineth argument from a list.</p> <dl class="user"><dt><b>Examples:</b></dt><dd><div class="fragment"><pre class="fragment"> <a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01134.html#aaf93fdf0812752e0e02c501dea1b38f0">std::cout</a> << sigc::_1(10,20,30); <span class="comment">// returns 10</span> <a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01134.html#aaf93fdf0812752e0e02c501dea1b38f0">std::cout</a> << sigc::_2(10,20,30); <span class="comment">// returns 20</span> ... </pre></div></dd></dl> <p>Operators are defined so that, for example, lambda selectors can be used as placeholders in arithmetic expressions.</p> <dl class="user"><dt><b>Examples:</b></dt><dd><div class="fragment"><pre class="fragment"> <a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01134.html#aaf93fdf0812752e0e02c501dea1b38f0">std::cout</a> << (sigc::_1 + 5)(3); <span class="comment">// returns (3 + 5)</span> <a class="codeRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01134.html#aaf93fdf0812752e0e02c501dea1b38f0">std::cout</a> << (sigc::_1 * sigc::_2)(7,10); <span class="comment">// returns (7 * 10)</span> </pre></div> </dd></dl> </div> <hr class="footer"/><address class="footer"><small>Generated on Tue Mar 8 2011 11:44:40 for libsigc++ by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.2 </small></address> </body> </html>