File: group__hide.html

package info (click to toggle)
libsigc%2B%2B-2.0 2.0.10-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 20,220 kB
  • ctags: 6,376
  • sloc: sh: 8,402; cpp: 1,717; xml: 368; makefile: 364; perl: 51; ansic: 45
file content (219 lines) | stat: -rw-r--r-- 14,849 bytes parent folder | download
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> &nbsp;
  <a class="qindex" href="modules.html">Groups</a> &nbsp;
  <a class="qindex" href="namespaces.html"> Namespaces</a> &nbsp;
</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 &nbsp;</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&lt;-1, T_functor &gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</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&lt;0, T_functor&gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</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&lt;1, T_functor&gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</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&lt;2, T_functor&gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</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&lt;3, T_functor&gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</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&lt;4, T_functor&gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</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&lt;5, T_functor&gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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 &nbsp;</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&lt;6, T_functor&gt;</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</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&lt;class T_action, int I_location, class T_functor&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__hide.html#ga0">sigc::visit_each</a> (const T_action&amp; _A_action, const hide_functor&lt;I_location, T_functor&gt;&amp; _A_target)</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&lt;int I_location, class T_functor&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">hide_functor&lt; I_location,<br>
 T_functor &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__hide.html#ga1">sigc::hide</a> (const T_functor&amp; _A_func)</td></tr>

<tr><td class="mdescLeft">&nbsp;</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&lt;class T_functor&gt; </td></tr>
<tr><td class="memTemplItemLeft" nowrap align="right" valign="top">retype_return_functor&lt; void,<br>
 T_functor &gt;&nbsp;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__hide.html#ga2">sigc::hide_return</a> (const T_functor&amp; _A_functor)</td></tr>

<tr><td class="mdescLeft">&nbsp;</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>&lt;-1&gt;() 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>(&amp;foo)(1,2,3);     <span class="comment">// adds a dummy parameter at the back and calls foo(1,2)</span>
   sigc::hide&lt;-1&gt;(&amp;foo)(1,2,3); <span class="comment">// same as sigc::hide(&amp;foo)(1,2,3) (calls foo(1,2))</span>
   sigc::hide&lt;0&gt;(&amp;foo)(1,2,3);  <span class="comment">// adds a dummy parameter at the beginning and calls foo(2,3)</span>
   sigc::hide&lt;1&gt;(&amp;foo)(1,2,3);  <span class="comment">// adds a dummy parameter in the middle and calls foo(1,3)</span>
   sigc::hide&lt;2&gt;(&amp;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(&amp;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&lt;void,int&gt;</a> some_signal;
   <span class="keywordtype">void</span> foo();
   some_signal.<a class="code" href="classsigc_1_1signal7.html#a0">connect</a>(sigc::hide(&amp;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 &lt;int I_location, class T_functor&gt; </td>
        </tr>
        <tr>
          <td class="md" nowrap valign="top">hide_functor&lt;-1, T_functor &gt; sigc::hide           </td>
          <td class="md" valign="top">(</td>
          <td class="md" nowrap valign="top">const T_functor&amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>_A_func</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </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>&nbsp;</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 &lt;class T_functor&gt; </td>
        </tr>
        <tr>
          <td class="md" nowrap valign="top">retype_return_functor&lt;void, T_functor&gt; hide_return           </td>
          <td class="md" valign="top">(</td>
          <td class="md" nowrap valign="top">const T_functor&amp;&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>_A_functor</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap><code> [inline]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </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>&nbsp;</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 &lt;class T_action, int I_location, class T_functor&gt; </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&amp;&nbsp;</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&lt;I_location, T_functor&gt;&amp;&nbsp;</td>
          <td class="mdname" nowrap> <em>_A_target</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </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 &copy;&nbsp;1997-2001</small></address>
</body>
</html>