]> git.tdb.fi Git - ext/sigc++-2.0.git/blob - untracked/docs/reference/html/structsigc_1_1deduce__result__type.html
Import libsigc++ 2.10.8 sources
[ext/sigc++-2.0.git] / untracked / docs / reference / html / structsigc_1_1deduce__result__type.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++: sigc::deduce_result_type&lt; T_functor, T_args &gt; Struct Template Reference</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 id="nav-path" class="navpath">
42   <ul>
43 <li class="navelem"><a class="el" href="namespacesigc.html">sigc</a></li><li class="navelem"><a class="el" href="structsigc_1_1deduce__result__type.html">deduce_result_type</a></li>  </ul>
44 </div>
45 </div><!-- top -->
46 <div class="header">
47   <div class="summary">
48 <a href="#pub-types">Public Types</a> &#124;
49 <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
50 <a href="structsigc_1_1deduce__result__type-members.html">List of all members</a>  </div>
51   <div class="headertitle">
52 <div class="title">sigc::deduce_result_type&lt; T_functor, T_args &gt; Struct Template Reference<div class="ingroups"><a class="el" href="group__adaptors.html">Adaptors</a></div></div>  </div>
53 </div><!--header-->
54 <div class="contents">
55
56 <p>Deduce the return type of a functor.  
57  <a href="structsigc_1_1deduce__result__type.html#details">More...</a></p>
58
59 <p><code>#include &lt;sigc++/adaptors/deduce_result_type.h&gt;</code></p>
60 <table class="memberdecls">
61 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
62 Public Types</h2></td></tr>
63 <tr class="memitem:a529a6b7809ea3ad1a2d4392b9ffcec42"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structsigc_1_1deduce__result__type.html#a529a6b7809ea3ad1a2d4392b9ffcec42">type</a> = decltype(<a class="el" href="structsigc_1_1deduce__result__type.html#a46816d343f0924170208d220b7e599f4">test</a>&lt; T_functor &gt;())</td></tr>
64 <tr class="separator:a529a6b7809ea3ad1a2d4392b9ffcec42"><td class="memSeparator" colspan="2">&#160;</td></tr>
65 </table><table class="memberdecls">
66 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
67 Static Public Member Functions</h2></td></tr>
68 <tr class="memitem:a46816d343f0924170208d220b7e599f4"><td class="memTemplParams" colspan="2">template&lt;class U_functor , typename  = typename std::is_base_of&lt;adaptor_base, T_functor&gt;::type&gt; </td></tr>
69 <tr class="memitem:a46816d343f0924170208d220b7e599f4"><td class="memTemplItemLeft" align="right" valign="top">static U_functor::template <a class="el" href="structsigc_1_1deduce__result__type.html">deduce_result_type</a>&lt; T_args... &gt;::<a class="el" href="structsigc_1_1deduce__result__type.html#a529a6b7809ea3ad1a2d4392b9ffcec42">type</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structsigc_1_1deduce__result__type.html#a46816d343f0924170208d220b7e599f4">test</a> ()</td></tr>
70 <tr class="separator:a46816d343f0924170208d220b7e599f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
71 <tr class="memitem:ab9356fdb52cf08ca8eded48bae5e5bdb"><td class="memTemplParams" colspan="2">template&lt;class U_functor &gt; </td></tr>
72 <tr class="memitem:ab9356fdb52cf08ca8eded48bae5e5bdb"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="structsigc_1_1functor__trait.html">functor_trait</a>&lt; T_functor &gt;::result_type&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structsigc_1_1deduce__result__type.html#ab9356fdb52cf08ca8eded48bae5e5bdb">test</a> ()</td></tr>
73 <tr class="separator:ab9356fdb52cf08ca8eded48bae5e5bdb"><td class="memSeparator" colspan="2">&#160;</td></tr>
74 </table>
75 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
76 <div class="textblock"><h3>template&lt;class T_functor, class... T_args&gt;<br />
77 struct sigc::deduce_result_type&lt; T_functor, T_args &gt;</h3>
78
79 <p>Deduce the return type of a functor. </p>
80 <p><code>typename <a class="el" href="structsigc_1_1deduce__result__type.html#a529a6b7809ea3ad1a2d4392b9ffcec42">deduce_result_type&lt;functor_type, list of arg_types&gt;::type</a></code> deduces a functor's result type if <code>functor_type</code> inherits from <a class="el" href="structsigc_1_1functor__base.html" title="A hint to the compiler.">sigc::functor_base</a> and defines <code>result_type</code> or if <code>functor_type</code> is actually a (member) function type. Multi-type functors are not supported.</p>
81 <p>sigc++ adaptors use <code>typename <a class="el" href="structsigc_1_1deduce__result__type.html#a529a6b7809ea3ad1a2d4392b9ffcec42">deduce_result_type&lt;functor_type, list of arg_types&gt;::type</a></code> to determine the return type of their <code>templated operator()</code> overloads.</p>
82 <p>Adaptors in turn define a nested template class <code><a class="el" href="structsigc_1_1deduce__result__type.html" title="Deduce the return type of a functor.">deduce_result_type</a></code> that is used by template specializations of the global <a class="el" href="structsigc_1_1deduce__result__type.html" title="Deduce the return type of a functor.">deduce_result_type</a> template to correctly deduce the return types of the adaptor's suitable <code>template operator()</code> overload. </p>
83 </div><h2 class="groupheader">Member Typedef Documentation</h2>
84 <a id="a529a6b7809ea3ad1a2d4392b9ffcec42"></a>
85 <h2 class="memtitle"><span class="permalink"><a href="#a529a6b7809ea3ad1a2d4392b9ffcec42">&#9670;&#160;</a></span>type</h2>
86
87 <div class="memitem">
88 <div class="memproto">
89 <div class="memtemplate">
90 template &lt;class T_functor , class... T_args&gt; </div>
91       <table class="memname">
92         <tr>
93           <td class="memname">using <a class="el" href="structsigc_1_1deduce__result__type.html">sigc::deduce_result_type</a>&lt; T_functor, T_args &gt;::<a class="el" href="structsigc_1_1deduce__result__type.html#a529a6b7809ea3ad1a2d4392b9ffcec42">type</a> =  decltype (<a class="el" href="structsigc_1_1deduce__result__type.html#a46816d343f0924170208d220b7e599f4">test</a>&lt;T_functor&gt; ())</td>
94         </tr>
95       </table>
96 </div><div class="memdoc">
97
98 </div>
99 </div>
100 <h2 class="groupheader">Member Function Documentation</h2>
101 <a id="a46816d343f0924170208d220b7e599f4"></a>
102 <h2 class="memtitle"><span class="permalink"><a href="#a46816d343f0924170208d220b7e599f4">&#9670;&#160;</a></span>test() <span class="overload">[1/2]</span></h2>
103
104 <div class="memitem">
105 <div class="memproto">
106 <div class="memtemplate">
107 template &lt;class T_functor , class... T_args&gt; </div>
108 <div class="memtemplate">
109 template &lt;class U_functor , typename  = typename std::is_base_of&lt;adaptor_base, T_functor&gt;::type&gt; </div>
110 <table class="mlabels">
111   <tr>
112   <td class="mlabels-left">
113       <table class="memname">
114         <tr>
115           <td class="memname">static U_functor::template <a class="el" href="structsigc_1_1deduce__result__type.html">deduce_result_type</a>&lt;T_args...&gt;::<a class="el" href="structsigc_1_1deduce__result__type.html#a529a6b7809ea3ad1a2d4392b9ffcec42">type</a> <a class="el" href="structsigc_1_1deduce__result__type.html">sigc::deduce_result_type</a>&lt; T_functor, T_args &gt;::test </td>
116           <td>(</td>
117           <td class="paramname"></td><td>)</td>
118           <td></td>
119         </tr>
120       </table>
121   </td>
122   <td class="mlabels-right">
123 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
124   </tr>
125 </table>
126 </div><div class="memdoc">
127
128 </div>
129 </div>
130 <a id="ab9356fdb52cf08ca8eded48bae5e5bdb"></a>
131 <h2 class="memtitle"><span class="permalink"><a href="#ab9356fdb52cf08ca8eded48bae5e5bdb">&#9670;&#160;</a></span>test() <span class="overload">[2/2]</span></h2>
132
133 <div class="memitem">
134 <div class="memproto">
135 <div class="memtemplate">
136 template &lt;class T_functor , class... T_args&gt; </div>
137 <div class="memtemplate">
138 template &lt;class U_functor &gt; </div>
139 <table class="mlabels">
140   <tr>
141   <td class="mlabels-left">
142       <table class="memname">
143         <tr>
144           <td class="memname">static <a class="el" href="structsigc_1_1functor__trait.html">functor_trait</a>&lt;T_functor&gt;::result_type <a class="el" href="structsigc_1_1deduce__result__type.html">sigc::deduce_result_type</a>&lt; T_functor, T_args &gt;::test </td>
145           <td>(</td>
146           <td class="paramname"></td><td>)</td>
147           <td></td>
148         </tr>
149       </table>
150   </td>
151   <td class="mlabels-right">
152 <span class="mlabels"><span class="mlabel">static</span></span>  </td>
153   </tr>
154 </table>
155 </div><div class="memdoc">
156
157 </div>
158 </div>
159 </div><!-- contents -->
160 <!-- start footer part -->
161 <hr class="footer"/><address class="footer"><small>
162 Generated on Fri Feb 11 2022 15:40:58 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
163 </small></address>
164 </body>
165 </html>