]> git.tdb.fi Git - ext/sigc++-2.0.git/blob - untracked/docs/reference/html/group__sigcfunctors.html
Import libsigc++ 2.10.8 sources
[ext/sigc++-2.0.git] / untracked / docs / reference / html / group__sigcfunctors.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <meta name="generator" content="Doxygen 1.9.1"/>
7 <meta name="viewport" content="width=device-width, initial-scale=1"/>
8 <title>libsigc++: Functors</title>
9 <link href="tabs.css" rel="stylesheet" type="text/css"/>
10 <script type="text/javascript" src="jquery.js"></script>
11 <script type="text/javascript" src="dynsections.js"></script>
12 <link href="doxygen.css" rel="stylesheet" type="text/css" />
13 <link href="doxygen-extra.css" rel="stylesheet" type="text/css"/>
14 </head>
15 <body>
16 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
17 <div id="titlearea">
18 <table cellspacing="0" cellpadding="0">
19  <tbody>
20  <tr style="height: 56px;">
21   <td id="projectalign" style="padding-left: 0.5em;">
22    <div id="projectname">libsigc++
23    &#160;<span id="projectnumber">2.10.8</span>
24    </div>
25   </td>
26  </tr>
27  </tbody>
28 </table>
29 </div>
30 <!-- end header part -->
31 <!-- Generated by Doxygen 1.9.1 -->
32 <script type="text/javascript" src="menudata.js"></script>
33 <script type="text/javascript" src="menu.js"></script>
34 <script type="text/javascript">
35 /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
36 $(function() {
37   initMenu('',false,false,'search.php','Search');
38 });
39 /* @license-end */</script>
40 <div id="main-nav"></div>
41 </div><!-- top -->
42 <div class="header">
43   <div class="summary">
44 <a href="#groups">Modules</a> &#124;
45 <a href="#nested-classes">Classes</a> &#124;
46 <a href="#define-members">Macros</a> &#124;
47 <a href="#func-members">Functions</a>  </div>
48   <div class="headertitle">
49 <div class="title">Functors</div>  </div>
50 </div><!--header-->
51 <div class="contents">
52
53 <p>Functors are copyable types that define operator()().  
54 <a href="#details">More...</a></p>
55 <table class="memberdecls">
56 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
57 Modules</h2></td></tr>
58 <tr class="memitem:group__slot"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__slot.html">Slots</a></td></tr>
59 <tr class="memdesc:group__slot"><td class="mdescLeft">&#160;</td><td class="mdescRight">Slots are type-safe representations of callback methods and functions. <br /></td></tr>
60 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
61 <tr class="memitem:group__mem__fun"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mem__fun.html">mem_fun()</a></td></tr>
62 <tr class="memdesc:group__mem__fun"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__mem__fun.html#gadf6b6d22c503b439019f0a2e77352419" title="Creates a functor of type sigc::mem_functor0 which wraps a method.">mem_fun()</a> Creates a functor from a pointer to a method. <br /></td></tr>
63 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
64 <tr class="memitem:group__ptr__fun"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__ptr__fun.html">ptr_fun()</a></td></tr>
65 <tr class="memdesc:group__ptr__fun"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="group__ptr__fun.html#ga9c80de72f656fb05e81fda622dddc863" title="Creates a functor of type sigc::pointer_functor0 which wraps an existing non-member function.">ptr_fun()</a> is used to convert a pointer to a function to a functor. <br /></td></tr>
66 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
67 </table><table class="memberdecls">
68 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
69 Classes</h2></td></tr>
70 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classsigc_1_1can__deduce__result__type__with__decltype.html">sigc::can_deduce_result_type_with_decltype&lt; T_functor &gt;</a></td></tr>
71 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper class, to determine if decltype() can deduce the result type of a functor.  <a href="classsigc_1_1can__deduce__result__type__with__decltype.html#details">More...</a><br /></td></tr>
72 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
73 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1functor__base.html">sigc::functor_base</a></td></tr>
74 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A hint to the compiler.  <a href="structsigc_1_1functor__base.html#details">More...</a><br /></td></tr>
75 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
76 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1functor__trait.html">sigc::functor_trait&lt; T_functor, I_derives_functor_base, I_can_use_decltype &gt;</a></td></tr>
77 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Trait that specifies the return type of any type.  <a href="structsigc_1_1functor__trait.html#details">More...</a><br /></td></tr>
78 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
79 <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1visitor.html">sigc::visitor&lt; T_functor &gt;</a></td></tr>
80 <tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structsigc_1_1visitor.html#a9fe5d6be845e622a99a0db5d3621d4b3">sigc::visitor&lt;T_functor&gt;::do_visit_each()</a> performs a functor on each of the targets of a functor.  <a href="structsigc_1_1visitor.html#details">More...</a><br /></td></tr>
81 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
82 </table><table class="memberdecls">
83 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
84 Macros</h2></td></tr>
85 <tr class="memitem:ga7a6f5575dc0b0ea896889c782721f6be"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sigcfunctors.html#ga7a6f5575dc0b0ea896889c782721f6be">SIGC_FUNCTOR_TRAIT</a>(T_functor,  T_return)</td></tr>
86 <tr class="memdesc:ga7a6f5575dc0b0ea896889c782721f6be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper macro, if you want to mix user-defined and third party functors with libsigc++.  <a href="group__sigcfunctors.html#ga7a6f5575dc0b0ea896889c782721f6be">More...</a><br /></td></tr>
87 <tr class="separator:ga7a6f5575dc0b0ea896889c782721f6be"><td class="memSeparator" colspan="2">&#160;</td></tr>
88 <tr class="memitem:gadf1ba3cacb09cc5c3c3e399836ec6e50"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a></td></tr>
89 <tr class="memdesc:gadf1ba3cacb09cc5c3c3e399836ec6e50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper macro, if you want to mix user-defined and third party functors with libsigc++.  <a href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50">More...</a><br /></td></tr>
90 <tr class="separator:gadf1ba3cacb09cc5c3c3e399836ec6e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
91 <tr class="memitem:ga93b6ee8815d90adccfdceed72bcda577"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sigcfunctors.html#ga93b6ee8815d90adccfdceed72bcda577">SIGC_FUNCTORS_HAVE_RESULT_TYPE</a></td></tr>
92 <tr class="memdesc:ga93b6ee8815d90adccfdceed72bcda577"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper macro, if you want to mix user-defined and third party functors with libsigc++.  <a href="group__sigcfunctors.html#ga93b6ee8815d90adccfdceed72bcda577">More...</a><br /></td></tr>
93 <tr class="separator:ga93b6ee8815d90adccfdceed72bcda577"><td class="memSeparator" colspan="2">&#160;</td></tr>
94 </table><table class="memberdecls">
95 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
96 Functions</h2></td></tr>
97 <tr class="memitem:ga64cb7832acc1e58efb5ffe0b4f5e9404"><td class="memTemplParams" colspan="2">template&lt;class T_action , class T_functor &gt; </td></tr>
98 <tr class="memitem:ga64cb7832acc1e58efb5ffe0b4f5e9404"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404">sigc::visit_each</a> (const T_action &amp; _A_action, const T_functor &amp; _A_functor)</td></tr>
99 <tr class="memdesc:ga64cb7832acc1e58efb5ffe0b4f5e9404"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a functor on each of the targets of a functor.  <a href="group__sigcfunctors.html#ga64cb7832acc1e58efb5ffe0b4f5e9404">More...</a><br /></td></tr>
100 <tr class="separator:ga64cb7832acc1e58efb5ffe0b4f5e9404"><td class="memSeparator" colspan="2">&#160;</td></tr>
101 <tr class="memitem:gada222d975b87d64cfa7a7f29244ae587"><td class="memTemplParams" colspan="2">template&lt;class T_type , class T_action , class T_functor &gt; </td></tr>
102 <tr class="memitem:gada222d975b87d64cfa7a7f29244ae587"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="group__sigcfunctors.html#gada222d975b87d64cfa7a7f29244ae587">sigc::visit_each_type</a> (const T_action &amp; _A_action, const T_functor &amp; _A_functor)</td></tr>
103 <tr class="memdesc:gada222d975b87d64cfa7a7f29244ae587"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function performs a functor on each of the targets of a functor limited to a restricted type.  <a href="group__sigcfunctors.html#gada222d975b87d64cfa7a7f29244ae587">More...</a><br /></td></tr>
104 <tr class="separator:gada222d975b87d64cfa7a7f29244ae587"><td class="memSeparator" colspan="2">&#160;</td></tr>
105 </table>
106 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
107 <p>Functors are copyable types that define operator()(). </p>
108 <p>Types that define operator()() overloads with different return types are referred to as multi-type functors. Multi-type functors are only partially supported in libsigc++.</p>
109 <p>Closures are functors that store all information needed to invoke a callback from operator()().</p>
110 <p>Adaptors are functors that alter the signature of a functor's operator()().</p>
111 <p>libsigc++ defines numerous functors, closures and adaptors. Since libsigc++ is a callback library, most functors are also closures. The documentation doesn't distinguish between functors and closures.</p>
112 <p>The basic functor types libsigc++ provides are created with <a class="el" href="group__ptr__fun.html#ga9c80de72f656fb05e81fda622dddc863" title="Creates a functor of type sigc::pointer_functor0 which wraps an existing non-member function.">ptr_fun()</a> and <a class="el" href="group__mem__fun.html#gadf6b6d22c503b439019f0a2e77352419" title="Creates a functor of type sigc::mem_functor0 which wraps a method.">mem_fun()</a> and can be converted into slots implicitly. The set of adaptors that ships with libsigc++ is documented in the <a class="el" href="group__adaptors.html">Adaptors</a> module.</p>
113 <p>If you want to mix user-defined and third party functors with libsigc++, and you want them to be implicitly convertible into slots, libsigc++ must know the result type of your functors. There are different ways to achieve that.</p>
114 <ul>
115 <li>Derive your functors from <a class="el" href="structsigc_1_1functor__base.html" title="A hint to the compiler.">sigc::functor_base</a> and place <code>typedef T_return result_type;</code> in the class definition.</li>
116 <li>Use the macro <a class="el" href="group__sigcfunctors.html#ga7a6f5575dc0b0ea896889c782721f6be" title="Helper macro, if you want to mix user-defined and third party functors with libsigc++.">SIGC_FUNCTOR_TRAIT(T_functor,T_return)</a> in namespace sigc. Multi-type functors are only partly supported.</li>
117 <li>For functors not derived from <a class="el" href="structsigc_1_1functor__base.html" title="A hint to the compiler.">sigc::functor_base</a>, and not specified with <a class="el" href="group__sigcfunctors.html#ga7a6f5575dc0b0ea896889c782721f6be" title="Helper macro, if you want to mix user-defined and third party functors with libsigc++.">SIGC_FUNCTOR_TRAIT()</a>, libsigc++ tries to deduce the result type with the C++11 decltype() specifier. That attempt usually succeeds if the functor has a single operator()(), but it fails if operator()() is overloaded.</li>
118 <li>Use the macro <a class="el" href="group__sigcfunctors.html#ga93b6ee8815d90adccfdceed72bcda577" title="Helper macro, if you want to mix user-defined and third party functors with libsigc++.">SIGC_FUNCTORS_HAVE_RESULT_TYPE</a>, if you want libsigc++ to assume that result_type is defined in all user-defined or third party functors, whose result type can't be deduced in any other way.</li>
119 </ul>
120 <p>If all these ways to deduce the result type fail, void is assumed.</p>
121 <p>With libsigc++ versions before 2.6, the macro <a class="el" href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50" title="Helper macro, if you want to mix user-defined and third party functors with libsigc++.">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a> activated the test with decltype(). That macro is now unneccesary and deprecated. </p>
122 <h2 class="groupheader">Macro Definition Documentation</h2>
123 <a id="ga7a6f5575dc0b0ea896889c782721f6be"></a>
124 <h2 class="memtitle"><span class="permalink"><a href="#ga7a6f5575dc0b0ea896889c782721f6be">&#9670;&#160;</a></span>SIGC_FUNCTOR_TRAIT</h2>
125
126 <div class="memitem">
127 <div class="memproto">
128       <table class="memname">
129         <tr>
130           <td class="memname">#define SIGC_FUNCTOR_TRAIT</td>
131           <td>(</td>
132           <td class="paramtype">&#160;</td>
133           <td class="paramname">T_functor, </td>
134         </tr>
135         <tr>
136           <td class="paramkey"></td>
137           <td></td>
138           <td class="paramtype">&#160;</td>
139           <td class="paramname">T_return&#160;</td>
140         </tr>
141         <tr>
142           <td></td>
143           <td>)</td>
144           <td></td><td></td>
145         </tr>
146       </table>
147 </div><div class="memdoc">
148
149 <p>Helper macro, if you want to mix user-defined and third party functors with libsigc++. </p>
150 <p>If you want to mix functors not derived from <a class="el" href="structsigc_1_1functor__base.html" title="A hint to the compiler.">sigc::functor_base</a> with libsigc++, and these functors don't define <code>result_type</code>, use this macro inside namespace sigc to expose the return type of the functors like so: </p><div class="fragment"><div class="line"><span class="keyword">namespace </span><a class="code" href="namespacesigc.html">sigc</a> {</div>
151 <div class="line">  <a class="code" href="group__sigcfunctors.html#ga7a6f5575dc0b0ea896889c782721f6be">SIGC_FUNCTOR_TRAIT</a>(first_functor_type, return_type_of_first_functor_type)</div>
152 <div class="line">  <a class="code" href="group__sigcfunctors.html#ga7a6f5575dc0b0ea896889c782721f6be">SIGC_FUNCTOR_TRAIT</a>(second_functor_type, return_type_of_second_functor_type)</div>
153 <div class="line">  ...</div>
154 <div class="line">}</div>
155 <div class="ttc" id="agroup__sigcfunctors_html_ga7a6f5575dc0b0ea896889c782721f6be"><div class="ttname"><a href="group__sigcfunctors.html#ga7a6f5575dc0b0ea896889c782721f6be">SIGC_FUNCTOR_TRAIT</a></div><div class="ttdeci">#define SIGC_FUNCTOR_TRAIT(T_functor, T_return)</div><div class="ttdoc">Helper macro, if you want to mix user-defined and third party functors with libsigc++.</div><div class="ttdef"><b>Definition:</b> functor_trait.h:188</div></div>
156 <div class="ttc" id="anamespacesigc_html"><div class="ttname"><a href="namespacesigc.html">sigc</a></div><div class="ttdoc">The libsigc++ namespace.</div><div class="ttdef"><b>Definition:</b> limit_reference.h:12</div></div>
157 </div><!-- fragment --> 
158 </div>
159 </div>
160 <a id="gadf1ba3cacb09cc5c3c3e399836ec6e50"></a>
161 <h2 class="memtitle"><span class="permalink"><a href="#gadf1ba3cacb09cc5c3c3e399836ec6e50">&#9670;&#160;</a></span>SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</h2>
162
163 <div class="memitem">
164 <div class="memproto">
165       <table class="memname">
166         <tr>
167           <td class="memname">#define SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</td>
168         </tr>
169       </table>
170 </div><div class="memdoc">
171
172 <p>Helper macro, if you want to mix user-defined and third party functors with libsigc++. </p>
173 <p>If you want to mix functors not derived from <a class="el" href="structsigc_1_1functor__base.html" title="A hint to the compiler.">sigc::functor_base</a> with libsigc++, and your compiler can deduce the result type of the functor with the C++11 keyword <code>decltype</code>, use this macro inside namespace sigc like so: </p><div class="fragment"><div class="line"><span class="keyword">namespace </span><a class="code" href="namespacesigc.html">sigc</a> {</div>
174 <div class="line">  <a class="code" href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a></div>
175 <div class="line">}</div>
176 <div class="ttc" id="agroup__sigcfunctors_html_gadf1ba3cacb09cc5c3c3e399836ec6e50"><div class="ttname"><a href="group__sigcfunctors.html#gadf1ba3cacb09cc5c3c3e399836ec6e50">SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</a></div><div class="ttdeci">#define SIGC_FUNCTORS_DEDUCE_RESULT_TYPE_WITH_DECLTYPE</div><div class="ttdoc">Helper macro, if you want to mix user-defined and third party functors with libsigc++.</div><div class="ttdef"><b>Definition:</b> functor_trait.h:223</div></div>
177 </div><!-- fragment --><p>Functors with overloaded operator()() are not supported.</p>
178 <dl class="since_2_2_11"><dt><b><a class="el" href="since_2_2_11.html#_since_2_2_11000001">Since libsigc++ 2.2.11:</a></b></dt><dd></dd></dl>
179 <dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000065">Deprecated:</a></b></dt><dd>This macro does nothing. The test it activated in libsigc++ versions before 2.6, is now unconditionally activated.</dd></dl>
180
181 </div>
182 </div>
183 <a id="ga93b6ee8815d90adccfdceed72bcda577"></a>
184 <h2 class="memtitle"><span class="permalink"><a href="#ga93b6ee8815d90adccfdceed72bcda577">&#9670;&#160;</a></span>SIGC_FUNCTORS_HAVE_RESULT_TYPE</h2>
185
186 <div class="memitem">
187 <div class="memproto">
188       <table class="memname">
189         <tr>
190           <td class="memname">#define SIGC_FUNCTORS_HAVE_RESULT_TYPE</td>
191         </tr>
192       </table>
193 </div><div class="memdoc">
194
195 <p>Helper macro, if you want to mix user-defined and third party functors with libsigc++. </p>
196 <p>If you want to mix functors not derived from <a class="el" href="structsigc_1_1functor__base.html" title="A hint to the compiler.">sigc::functor_base</a> with libsigc++, and these functors define <code>result_type</code>, use this macro inside namespace sigc like so: </p><div class="fragment"><div class="line"><span class="keyword">namespace </span><a class="code" href="namespacesigc.html">sigc</a> { <a class="code" href="group__sigcfunctors.html#ga93b6ee8815d90adccfdceed72bcda577">SIGC_FUNCTORS_HAVE_RESULT_TYPE</a> }</div>
197 <div class="ttc" id="agroup__sigcfunctors_html_ga93b6ee8815d90adccfdceed72bcda577"><div class="ttname"><a href="group__sigcfunctors.html#ga93b6ee8815d90adccfdceed72bcda577">SIGC_FUNCTORS_HAVE_RESULT_TYPE</a></div><div class="ttdeci">#define SIGC_FUNCTORS_HAVE_RESULT_TYPE</div><div class="ttdoc">Helper macro, if you want to mix user-defined and third party functors with libsigc++.</div><div class="ttdef"><b>Definition:</b> functor_trait.h:165</div></div>
198 </div><!-- fragment --> 
199 </div>
200 </div>
201 <h2 class="groupheader">Function Documentation</h2>
202 <a id="ga64cb7832acc1e58efb5ffe0b4f5e9404"></a>
203 <h2 class="memtitle"><span class="permalink"><a href="#ga64cb7832acc1e58efb5ffe0b4f5e9404">&#9670;&#160;</a></span>visit_each()</h2>
204
205 <div class="memitem">
206 <div class="memproto">
207 <div class="memtemplate">
208 template &lt;class T_action , class T_functor &gt; </div>
209       <table class="memname">
210         <tr>
211           <td class="memname">void sigc::visit_each </td>
212           <td>(</td>
213           <td class="paramtype">const T_action &amp;&#160;</td>
214           <td class="paramname"><em>_A_action</em>, </td>
215         </tr>
216         <tr>
217           <td class="paramkey"></td>
218           <td></td>
219           <td class="paramtype">const T_functor &amp;&#160;</td>
220           <td class="paramname"><em>_A_functor</em>&#160;</td>
221         </tr>
222         <tr>
223           <td></td>
224           <td>)</td>
225           <td></td><td></td>
226         </tr>
227       </table>
228 </div><div class="memdoc">
229
230 <p>This function performs a functor on each of the targets of a functor. </p>
231
232 </div>
233 </div>
234 <a id="gada222d975b87d64cfa7a7f29244ae587"></a>
235 <h2 class="memtitle"><span class="permalink"><a href="#gada222d975b87d64cfa7a7f29244ae587">&#9670;&#160;</a></span>visit_each_type()</h2>
236
237 <div class="memitem">
238 <div class="memproto">
239 <div class="memtemplate">
240 template &lt;class T_type , class T_action , class T_functor &gt; </div>
241       <table class="memname">
242         <tr>
243           <td class="memname">void sigc::visit_each_type </td>
244           <td>(</td>
245           <td class="paramtype">const T_action &amp;&#160;</td>
246           <td class="paramname"><em>_A_action</em>, </td>
247         </tr>
248         <tr>
249           <td class="paramkey"></td>
250           <td></td>
251           <td class="paramtype">const T_functor &amp;&#160;</td>
252           <td class="paramname"><em>_A_functor</em>&#160;</td>
253         </tr>
254         <tr>
255           <td></td>
256           <td>)</td>
257           <td></td><td></td>
258         </tr>
259       </table>
260 </div><div class="memdoc">
261
262 <p>This function performs a functor on each of the targets of a functor limited to a restricted type. </p>
263
264 </div>
265 </div>
266 </div><!-- contents -->
267 <!-- start footer part -->
268 <hr class="footer"/><address class="footer"><small>
269 Generated on Fri Feb 11 2022 15:40:57 for libsigc++ by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
270 </small></address>
271 </body>
272 </html>