<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <title>edelib: Functional handling for edelib::List and similar constructs</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">edelib  <span id="projectnumber">2.0.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- Generated by Doxygen 1.7.6.1 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</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> <li><a href="files.html"><span>Files</span></a></li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">Functional handling for edelib::List and similar constructs</div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="func-members"></a> Functions</h2></td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T , typename F > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">unsigned int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__functional.html#ga006151087fcd26f851ae85705a235602">filter</a> (const F &func, const T &container, T &ret)</td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T , typename F > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__functional.html#ga232b6e2a00cdaa04e963c23142148f6d">map</a> (F &func, const T &container, T &ret)</td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T , typename R , typename F > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__functional.html#ga6b67fe1362db79b11f8fb9b89ef5301f">reduce</a> (F &func, const T &container, R &ret)</td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T , typename F > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__functional.html#ga61c6fbe775766e5c6c30f680b3e08a27">for_each</a> (const F &func, const T &container)</td></tr> <tr><td class="memTemplParams" colspan="2">template<typename T , typename F > </td></tr> <tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__functional.html#ga132a909437faa169ec7587a324d4ba29">for_each</a> (const F &func, const T &container, void *p)</td></tr> </table> <hr/><h2>Function Documentation</h2> <a class="anchor" id="ga006151087fcd26f851ae85705a235602"></a><!-- doxytag: member="edelib::filter" ref="ga006151087fcd26f851ae85705a235602" args="(const F &func, const T &container, T &ret)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">unsigned int <a class="el" href="group__functional.html#ga006151087fcd26f851ae85705a235602">edelib::filter</a> </td> <td>(</td> <td class="paramtype">const F & </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"><em>container</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">T & </td> <td class="paramname"><em>ret</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Filter given container by calling <em>func</em> on each element. If <em>func</em> returns true for given element, it will be copied to other list. </p> </div> </div> <a class="anchor" id="ga61c6fbe775766e5c6c30f680b3e08a27"></a><!-- doxytag: member="edelib::for_each" ref="ga61c6fbe775766e5c6c30f680b3e08a27" args="(const F &func, const T &container)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="group__functional.html#ga61c6fbe775766e5c6c30f680b3e08a27">edelib::for_each</a> </td> <td>(</td> <td class="paramtype">const F & </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"><em>container</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Traverse container calling <em>func</em> on each element. Returns nothing. </p> </div> </div> <a class="anchor" id="ga132a909437faa169ec7587a324d4ba29"></a><!-- doxytag: member="edelib::for_each" ref="ga132a909437faa169ec7587a324d4ba29" args="(const F &func, const T &container, void *p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="group__functional.html#ga61c6fbe775766e5c6c30f680b3e08a27">edelib::for_each</a> </td> <td>(</td> <td class="paramtype">const F & </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"><em>container</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">void * </td> <td class="paramname"><em>p</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Same as above <em>for_each</em>, but with additional <em>void*</em> parameter that is given to function as second parameter (function is called as <em>func(val, void*)</em> </p> </div> </div> <a class="anchor" id="ga232b6e2a00cdaa04e963c23142148f6d"></a><!-- doxytag: member="edelib::map" ref="ga232b6e2a00cdaa04e963c23142148f6d" args="(F &func, const T &container, T &ret)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="group__functional.html#ga232b6e2a00cdaa04e963c23142148f6d">edelib::map</a> </td> <td>(</td> <td class="paramtype">F & </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"><em>container</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">T & </td> <td class="paramname"><em>ret</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Apply <em>func</em> on each element of given container and add it to <em>ret</em> container. </p> </div> </div> <a class="anchor" id="ga6b67fe1362db79b11f8fb9b89ef5301f"></a><!-- doxytag: member="edelib::reduce" ref="ga6b67fe1362db79b11f8fb9b89ef5301f" args="(F &func, const T &container, R &ret)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void <a class="el" href="group__functional.html#ga6b67fe1362db79b11f8fb9b89ef5301f">edelib::reduce</a> </td> <td>(</td> <td class="paramtype">F & </td> <td class="paramname"><em>func</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const T & </td> <td class="paramname"><em>container</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">R & </td> <td class="paramname"><em>ret</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Reduce all elements from container using <em>func</em> as function. The best example of this is to sum all elements, like: </p> <div class="fragment"><pre class="fragment"> <span class="keywordtype">int</span> sum(<span class="keywordtype">int</span> a, <span class="keywordtype">int</span> b) { <span class="keywordflow">return</span> a + b; } <span class="keywordtype">int</span> ret; list <int> lst; <span class="comment">// [1,2,3,4,5]</span> <a class="code" href="group__functional.html#ga6b67fe1362db79b11f8fb9b89ef5301f">reduce</a>(sum, lst, ret); <span class="comment">// result will be in form 1 + 2 + 3 + 4 + 5</span> </pre></div> </div> </div> </div><!-- contents --> <hr class="footer"/><address class="footer"><small> Generated on Tue Jun 5 2012 17:49:02 for edelib by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.7.6.1 </small></address> </body> </html>