1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>libsigc++ 2.0: hide(), hide_return()</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head>
<body bgcolor="#ffffff">
<table border="0" width="100%">
<tr>
<td width="10%" height="40"><img src="../../images/libsigc_logo.gif" alt="logo" border="0" width="100%" height="100%"/></td>
<td width="90%" height="40"><img src="../../images/top.gif" alt="top" width="100%" height="40"/></td>
</tr>
</table>
<center>
<a class="qindex" href="../../index.html">Main Page</a>
<a class="qindex" href="modules.html">Groups</a>
<a class="qindex" href="namespaces.html"> Namespaces</a>
</center>
<hr width="100%"/>
<!-- Generated by Doxygen 1.3.9.1 -->
<h1>hide(), hide_return()<br>
<small>
[<a class="el" href="group__adaptors.html">Adaptors</a>]</small>
</h1><a class="el" href="group__hide.html#ga1">sigc::hide()</a> alters an arbitrary functor in that it adds a parameter whose value is ignored on invocation of the returned functor.
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Classes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1hide__functor_3-1_00_01T__functor_01_4.html">sigc::hide_functor<-1, T_functor ></a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor that adds a dummy parameter to the wrapped functor. <a href="structsigc_1_1hide__functor_3-1_00_01T__functor_01_4.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1hide__functor_3_010_00_01T__functor_01_4.html">sigc::hide_functor<0, T_functor></a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor that adds a dummy parameter to the wrapped functor. <a href="structsigc_1_1hide__functor_3_010_00_01T__functor_01_4.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1hide__functor_3_011_00_01T__functor_01_4.html">sigc::hide_functor<1, T_functor></a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor that adds a dummy parameter to the wrapped functor. <a href="structsigc_1_1hide__functor_3_011_00_01T__functor_01_4.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1hide__functor_3_012_00_01T__functor_01_4.html">sigc::hide_functor<2, T_functor></a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor that adds a dummy parameter to the wrapped functor. <a href="structsigc_1_1hide__functor_3_012_00_01T__functor_01_4.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1hide__functor_3_013_00_01T__functor_01_4.html">sigc::hide_functor<3, T_functor></a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor that adds a dummy parameter to the wrapped functor. <a href="structsigc_1_1hide__functor_3_013_00_01T__functor_01_4.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1hide__functor_3_014_00_01T__functor_01_4.html">sigc::hide_functor<4, T_functor></a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor that adds a dummy parameter to the wrapped functor. <a href="structsigc_1_1hide__functor_3_014_00_01T__functor_01_4.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1hide__functor_3_015_00_01T__functor_01_4.html">sigc::hide_functor<5, T_functor></a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor that adds a dummy parameter to the wrapped functor. <a href="structsigc_1_1hide__functor_3_015_00_01T__functor_01_4.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1hide__functor_3_016_00_01T__functor_01_4.html">sigc::hide_functor<6, T_functor></a></td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor that adds a dummy parameter to the wrapped functor. <a href="structsigc_1_1hide__functor_3_016_00_01T__functor_01_4.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template<class T_action, int I_location, class T_functor> </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__hide.html#ga0">sigc::visit_each</a> (const T_action& _A_action, const hide_functor<I_location, T_functor>& _A_target)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs a functor on each of the targets of a functor. <a href="#ga0"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template<int I_location, class T_functor> </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">hide_functor< I_location,<br>
T_functor > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__hide.html#ga1">sigc::hide</a> (const T_functor& _A_func)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor. <a href="#ga1"></a><br></td></tr>
<tr><td class="memTemplParams" nowrap colspan="2">template<class T_functor> </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">retype_return_functor< void,<br>
T_functor > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__hide.html#ga2">sigc::hide_return</a> (const T_functor& _A_functor)</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Creates an adaptor of type <a class="el" href="structsigc_1_1retype__return__functor.html">sigc::retype_return_functor</a> which drops the return value of the passed functor. <a href="#ga2"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="group__hide.html#ga1">sigc::hide()</a> alters an arbitrary functor in that it adds a parameter whose value is ignored on invocation of the returned functor.
<p>
Thus you can discard one or more of the arguments of a signal.<p>
You may optionally specify the zero-based position of the parameter to ignore as a template argument. The default is to ignore the last parameter. (A value of <code>-1</code> adds a parameter at the end so <a class="el" href="group__hide.html#ga1">sigc::hide</a><-1>() gives the same result as <a class="el" href="group__hide.html#ga1">sigc::hide()</a>.)<p>
The type of the parameter can optionally be specified if not deduced.<p>
<dl compact><dt><b>Examples:</b></dt><dd><div class="fragment"><pre class="fragment"> <span class="keywordtype">void</span> foo(<span class="keywordtype">int</span>, <span class="keywordtype">int</span>);
<span class="comment">// single argument hiding ...</span>
<a class="code" href="group__hide.html#ga1">sigc::hide</a>(&foo)(1,2,3); <span class="comment">// adds a dummy parameter at the back and calls foo(1,2)</span>
sigc::hide<-1>(&foo)(1,2,3); <span class="comment">// same as sigc::hide(&foo)(1,2,3) (calls foo(1,2))</span>
sigc::hide<0>(&foo)(1,2,3); <span class="comment">// adds a dummy parameter at the beginning and calls foo(2,3)</span>
sigc::hide<1>(&foo)(1,2,3); <span class="comment">// adds a dummy parameter in the middle and calls foo(1,3)</span>
sigc::hide<2>(&foo)(1,2,3); <span class="comment">// adds a dummy parameter at the back and calls foo(1,2)</span>
<span class="comment">// multiple argument hiding ...</span>
<a class="code" href="group__hide.html#ga1">sigc::hide</a>(sigc::hide(&foo))(1,2,3,4); <span class="comment">// adds two dummy parameters at the back and calls foo(1,2)</span>
</pre></div></dd></dl>
The functor <a class="el" href="group__hide.html#ga1">sigc::hide()</a> returns can be passed into <a class="el" href="classsigc_1_1signal7.html#a0">sigc::signal::connect()</a> directly.<p>
<dl compact><dt><b>Example:</b></dt><dd><div class="fragment"><pre class="fragment"> <a class="code" href="classsigc_1_1signal.html">sigc::signal<void,int></a> some_signal;
<span class="keywordtype">void</span> foo();
some_signal.<a class="code" href="classsigc_1_1signal7.html#a0">connect</a>(sigc::hide(&foo));
</pre></div></dd></dl>
<a class="el" href="group__hide.html#ga2">sigc::hide_return()</a> alters an arbitrary functor by dropping its return value, thus converting it to a void functor.<p>
For a more powerful version of this functionality see the lambda library adaptor <a class="el" href="namespacesigc.html#a44">sigc::group()</a> which can bind, hide and reorder arguments arbitrarily. Although <a class="el" href="namespacesigc.html#a44">sigc::group()</a> is more flexible, <a class="el" href="group__hide.html#ga1">sigc::hide()</a> provides a means of hiding parameters when then total number of parameters called is variable. <hr><h2>Function Documentation</h2>
<a class="anchor" name="ga1" doxytag="sigc::hide"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" colspan="4">
template <int I_location, class T_functor> </td>
</tr>
<tr>
<td class="md" nowrap valign="top">hide_functor<-1, T_functor > sigc::hide </td>
<td class="md" valign="top">(</td>
<td class="md" nowrap valign="top">const T_functor& </td>
<td class="mdname1" valign="top" nowrap> <em>_A_func</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Creates an adaptor of type sigc::hide_functor which adds a dummy parameter to the passed functor.
<p>
The optional template argument <em>I_location</em> specifies the zero-based position of the dummy parameter in the returned functor (<code>-1</code> stands for the last parameter).<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>_A_func</em> </td><td>Functor that should be wrapped. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Adaptor that executes <em>_A_func</em> ignoring the value of the dummy parameter. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="ga2" doxytag="sigc::hide_return"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" colspan="4">
template <class T_functor> </td>
</tr>
<tr>
<td class="md" nowrap valign="top">retype_return_functor<void, T_functor> hide_return </td>
<td class="md" valign="top">(</td>
<td class="md" nowrap valign="top">const T_functor& </td>
<td class="mdname1" valign="top" nowrap> <em>_A_functor</em> </td>
<td class="md" valign="top"> ) </td>
<td class="md" nowrap><code> [inline]</code></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Creates an adaptor of type <a class="el" href="structsigc_1_1retype__return__functor.html">sigc::retype_return_functor</a> which drops the return value of the passed functor.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>_A_functor</em> </td><td>Functor that should be wrapped. </td></tr>
</table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>Adaptor that executes <em>_A_functor</em> dropping its return value. </dd></dl>
</td>
</tr>
</table>
<a class="anchor" name="ga0" doxytag="sigc::visit_each"></a><p>
<table class="mdTable" width="100%" cellpadding="2" cellspacing="0">
<tr>
<td class="mdRow">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="md" colspan="4">
template <class T_action, int I_location, class T_functor> </td>
</tr>
<tr>
<td class="md" nowrap valign="top">void visit_each </td>
<td class="md" valign="top">(</td>
<td class="md" nowrap valign="top">const T_action& </td>
<td class="mdname" nowrap> <em>_A_action</em>, </td>
</tr>
<tr>
<td class="md" nowrap align="right"></td>
<td class="md"></td>
<td class="md" nowrap>const hide_functor<I_location, T_functor>& </td>
<td class="mdname" nowrap> <em>_A_target</em></td>
</tr>
<tr>
<td class="md"></td>
<td class="md">) </td>
<td class="md" colspan="2"></td>
</tr>
</table>
</td>
</tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
<tr>
<td>
</td>
<td>
<p>
Performs a functor on each of the targets of a functor.
<p>
The function overload for sigc::hide_functor performs a functor on the functor stored in the sigc::hide_functor object. </td>
</tr>
</table>
<hr><address><small>
Generated for libsigc++ 2.0 by <a href="http://www.doxygen.org/index.html">
Doxygen</a> 1.3.9.1 © 1997-2001</small></address>
</body>
</html>
|