classfv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://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.8.13"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>TTTT Analysis: fv::Function&lt; R(ArgTypes...)&gt; Class 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="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. </head>
  17. <body>
  18. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  19. <div id="titlearea">
  20. <table cellspacing="0" cellpadding="0">
  21. <tbody>
  22. <tr style="height: 56px;">
  23. <td id="projectalign" style="padding-left: 0.5em;">
  24. <div id="projectname">TTTT Analysis
  25. &#160;<span id="projectnumber">0.1</span>
  26. </div>
  27. </td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </div>
  32. <!-- end header part -->
  33. <!-- Generated by Doxygen 1.8.13 -->
  34. <script type="text/javascript">
  35. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  36. </script>
  37. <script type="text/javascript" src="menudata.js"></script>
  38. <script type="text/javascript" src="menu.js"></script>
  39. <script type="text/javascript">
  40. $(function() {
  41. initMenu('',true,false,'search.php','Search');
  42. $(document).ready(function() { init_search(); });
  43. });
  44. </script>
  45. <div id="main-nav"></div>
  46. <!-- window showing the filter options -->
  47. <div id="MSearchSelectWindow"
  48. onmouseover="return searchBox.OnSearchSelectShow()"
  49. onmouseout="return searchBox.OnSearchSelectHide()"
  50. onkeydown="return searchBox.OnSearchSelectKey(event)">
  51. </div>
  52. <!-- iframe showing the search results (closed by default) -->
  53. <div id="MSearchResultsWindow">
  54. <iframe src="javascript:void(0)" frameborder="0"
  55. name="MSearchResults" id="MSearchResults">
  56. </iframe>
  57. </div>
  58. <div id="nav-path" class="navpath">
  59. <ul>
  60. <li class="navelem"><a class="el" href="namespacefv.html">fv</a></li><li class="navelem"><a class="el" href="classfv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4.html">Function&lt; R(ArgTypes...)&gt;</a></li> </ul>
  61. </div>
  62. </div><!-- top -->
  63. <div class="header">
  64. <div class="summary">
  65. <a href="#pub-methods">Public Member Functions</a> &#124;
  66. <a href="#pri-attribs">Private Attributes</a> &#124;
  67. <a href="classfv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4-members.html">List of all members</a> </div>
  68. <div class="headertitle">
  69. <div class="title">fv::Function&lt; R(ArgTypes...)&gt; Class Template Reference</div> </div>
  70. </div><!--header-->
  71. <div class="contents">
  72. <p>In order to enable proper provenance tracking, and at the same time keep the ability to embed functions into values, the Function class should be used.
  73. <a href="classfv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4.html#details">More...</a></p>
  74. <p><code>#include &lt;<a class="el" href="value_8hpp_source.html">value.hpp</a>&gt;</code></p>
  75. <div class="dynheader">
  76. Inheritance diagram for fv::Function&lt; R(ArgTypes...)&gt;:</div>
  77. <div class="dyncontent">
  78. <div class="center"><img src="classfv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4__inherit__graph.png" border="0" usemap="#fv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4_inherit__map" alt="Inheritance graph"/></div>
  79. <map name="fv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4_inherit__map" id="fv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4_inherit__map">
  80. <area shape="rect" id="node2" href="classfv_1_1GenFunction.html" title="Parent class to all Function classes. " alt="" coords="50,5,173,32"/>
  81. </map>
  82. <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
  83. <div class="dynheader">
  84. Collaboration diagram for fv::Function&lt; R(ArgTypes...)&gt;:</div>
  85. <div class="dyncontent">
  86. <div class="center"><img src="classfv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4__coll__graph.png" border="0" usemap="#fv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4_coll__map" alt="Collaboration graph"/></div>
  87. <map name="fv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4_coll__map" id="fv_1_1Function_3_01R_07ArgTypes_8_8_8_08_4_coll__map">
  88. <area shape="rect" id="node2" href="classfv_1_1GenFunction.html" title="Parent class to all Function classes. " alt="" coords="50,5,173,32"/>
  89. </map>
  90. <center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
  91. <table class="memberdecls">
  92. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  93. Public Member Functions</h2></td></tr>
  94. <tr class="memitem:ad817eb370743cd056b4551d9a2c43b84"><td class="memItemLeft" align="right" valign="top"><a id="ad817eb370743cd056b4551d9a2c43b84"></a>
  95. &#160;</td><td class="memItemRight" valign="bottom"><b>Function</b> (const std::string &amp;name, const std::string &amp;impl, std::function&lt; R(ArgTypes...)&gt; f)</td></tr>
  96. <tr class="separator:ad817eb370743cd056b4551d9a2c43b84"><td class="memSeparator" colspan="2">&#160;</td></tr>
  97. <tr class="memitem:aa399197dc7e4aabd0f58da4b0d7af159"><td class="memItemLeft" align="right" valign="top"><a id="aa399197dc7e4aabd0f58da4b0d7af159"></a>
  98. &#160;</td><td class="memItemRight" valign="bottom"><b>Function</b> (const std::string &amp;name, std::function&lt; R(ArgTypes...)&gt; f)</td></tr>
  99. <tr class="separator:aa399197dc7e4aabd0f58da4b0d7af159"><td class="memSeparator" colspan="2">&#160;</td></tr>
  100. <tr class="memitem:a469f0f13b73bd497489272117e0a7968"><td class="memItemLeft" align="right" valign="top"><a id="a469f0f13b73bd497489272117e0a7968"></a>
  101. R&#160;</td><td class="memItemRight" valign="bottom"><b>operator()</b> (ArgTypes ...args)</td></tr>
  102. <tr class="separator:a469f0f13b73bd497489272117e0a7968"><td class="memSeparator" colspan="2">&#160;</td></tr>
  103. <tr class="inherit_header pub_methods_classfv_1_1GenFunction"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classfv_1_1GenFunction')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classfv_1_1GenFunction.html">fv::GenFunction</a></td></tr>
  104. <tr class="memitem:a1a4622c277f0a4645cc597ac7e8ffad3 inherit pub_methods_classfv_1_1GenFunction"><td class="memItemLeft" align="right" valign="top"><a id="a1a4622c277f0a4645cc597ac7e8ffad3"></a>
  105. &#160;</td><td class="memItemRight" valign="bottom"><b>GenFunction</b> (const std::string &amp;name, const std::string &amp;impl)</td></tr>
  106. <tr class="separator:a1a4622c277f0a4645cc597ac7e8ffad3 inherit pub_methods_classfv_1_1GenFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
  107. <tr class="memitem:ac821bad86421d773af1ba36f67174eb1 inherit pub_methods_classfv_1_1GenFunction"><td class="memItemLeft" align="right" valign="top"><a id="ac821bad86421d773af1ba36f67174eb1"></a>
  108. std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>get_name</b> ()</td></tr>
  109. <tr class="separator:ac821bad86421d773af1ba36f67174eb1 inherit pub_methods_classfv_1_1GenFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
  110. </table><table class="memberdecls">
  111. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
  112. Private Attributes</h2></td></tr>
  113. <tr class="memitem:a7c512b1f9098f11b878ed0cf7f3d0c70"><td class="memItemLeft" align="right" valign="top"><a id="a7c512b1f9098f11b878ed0cf7f3d0c70"></a>
  114. std::function&lt; R(ArgTypes...)&gt;&#160;</td><td class="memItemRight" valign="bottom"><b>f</b></td></tr>
  115. <tr class="separator:a7c512b1f9098f11b878ed0cf7f3d0c70"><td class="memSeparator" colspan="2">&#160;</td></tr>
  116. </table><table class="memberdecls">
  117. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
  118. Additional Inherited Members</h2></td></tr>
  119. <tr class="inherit_header pub_static_methods_classfv_1_1GenFunction"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classfv_1_1GenFunction')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="classfv_1_1GenFunction.html">fv::GenFunction</a></td></tr>
  120. <tr class="memitem:aecc1187b5bb9c551c104eb8478bdb567 inherit pub_static_methods_classfv_1_1GenFunction"><td class="memItemLeft" align="right" valign="top">static std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1GenFunction.html#aecc1187b5bb9c551c104eb8478bdb567">format_code</a> (const std::string &amp;code)</td></tr>
  121. <tr class="memdesc:aecc1187b5bb9c551c104eb8478bdb567 inherit pub_static_methods_classfv_1_1GenFunction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempt to invoke clang-format for the purpose of printing out nicely formatted functions to the log file. <a href="classfv_1_1GenFunction.html#aecc1187b5bb9c551c104eb8478bdb567">More...</a><br /></td></tr>
  122. <tr class="separator:aecc1187b5bb9c551c104eb8478bdb567 inherit pub_static_methods_classfv_1_1GenFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
  123. <tr class="memitem:a1882aa29a5de803a366ed1e87770a4e2 inherit pub_static_methods_classfv_1_1GenFunction"><td class="memItemLeft" align="right" valign="top"><a id="a1882aa29a5de803a366ed1e87770a4e2"></a>
  124. static std::string&#160;</td><td class="memItemRight" valign="bottom"><b>summary</b> ()</td></tr>
  125. <tr class="separator:a1882aa29a5de803a366ed1e87770a4e2 inherit pub_static_methods_classfv_1_1GenFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
  126. <tr class="memitem:a2635f33d1ef39f00c07bde754c98cc6f inherit pub_static_methods_classfv_1_1GenFunction"><td class="memTemplParams" colspan="2"><a id="a2635f33d1ef39f00c07bde754c98cc6f"></a>
  127. template&lt;typename T &gt; </td></tr>
  128. <tr class="memitem:a2635f33d1ef39f00c07bde754c98cc6f inherit pub_static_methods_classfv_1_1GenFunction"><td class="memTemplItemLeft" align="right" valign="top">static Function&lt; T &gt; &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>register_function</b> (const std::string &amp;name, std::function&lt; T &gt; f, const std::string &amp;impl)</td></tr>
  129. <tr class="separator:a2635f33d1ef39f00c07bde754c98cc6f inherit pub_static_methods_classfv_1_1GenFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
  130. <tr class="memitem:ad2ff572dc8ba3059f2679cb450b719d3 inherit pub_static_methods_classfv_1_1GenFunction"><td class="memTemplParams" colspan="2"><a id="ad2ff572dc8ba3059f2679cb450b719d3"></a>
  131. template&lt;typename T &gt; </td></tr>
  132. <tr class="memitem:ad2ff572dc8ba3059f2679cb450b719d3 inherit pub_static_methods_classfv_1_1GenFunction"><td class="memTemplItemLeft" align="right" valign="top">static Function&lt; T &gt; &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><b>lookup_function</b> (const std::string &amp;name)</td></tr>
  133. <tr class="separator:ad2ff572dc8ba3059f2679cb450b719d3 inherit pub_static_methods_classfv_1_1GenFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="inherit_header pub_static_attribs_classfv_1_1GenFunction"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classfv_1_1GenFunction')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classfv_1_1GenFunction.html">fv::GenFunction</a></td></tr>
  135. <tr class="memitem:a62f52779bd4aa60fefbd842f557b1f7d inherit pub_static_attribs_classfv_1_1GenFunction"><td class="memItemLeft" align="right" valign="top"><a id="a62f52779bd4aa60fefbd842f557b1f7d"></a>
  136. static std::map&lt; const std::string, <a class="el" href="classfv_1_1GenFunction.html">GenFunction</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classfv_1_1GenFunction.html#a62f52779bd4aa60fefbd842f557b1f7d">function_registry</a></td></tr>
  137. <tr class="memdesc:a62f52779bd4aa60fefbd842f557b1f7d inherit pub_static_attribs_classfv_1_1GenFunction"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static mapping of functions from their name to the object wrapper of the function. <br /></td></tr>
  138. <tr class="separator:a62f52779bd4aa60fefbd842f557b1f7d inherit pub_static_attribs_classfv_1_1GenFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
  139. <tr class="inherit_header pro_static_attribs_classfv_1_1GenFunction"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_classfv_1_1GenFunction')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="classfv_1_1GenFunction.html">fv::GenFunction</a></td></tr>
  140. <tr class="memitem:a8d8c682bb591126b6396eaf78dbf3157 inherit pro_static_attribs_classfv_1_1GenFunction"><td class="memItemLeft" align="right" valign="top"><a id="a8d8c682bb591126b6396eaf78dbf3157"></a>
  141. static bool&#160;</td><td class="memItemRight" valign="bottom"><b>in_register_function</b> =false</td></tr>
  142. <tr class="separator:a8d8c682bb591126b6396eaf78dbf3157 inherit pro_static_attribs_classfv_1_1GenFunction"><td class="memSeparator" colspan="2">&#160;</td></tr>
  143. </table>
  144. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  145. <div class="textblock"><h3>template&lt;typename R, typename... ArgTypes&gt;<br />
  146. class fv::Function&lt; R(ArgTypes...)&gt;</h3>
  147. <p>In order to enable proper provenance tracking, and at the same time keep the ability to embed functions into values, the Function class should be used. </p>
  148. <p>It is simply a wrapper around a std::function that also has a name. This name is used when generating the name of values that use the function. A function name is automatically prepended with "func::" to explicitly state that the value is the result of a computation encoded within the function object, and not from some other <a class="el" href="classfv_1_1Value.html" title="A generic value. ">Value</a> object. Unfortunately, it is up to the user to find where that function is defined in the source code to inspect what it is doing. But hopefully this isn't too onerous by just using grep. </p>
  149. </div><hr/>The documentation for this class was generated from the following file:<ul>
  150. <li>/home/caleb/Sources/TTTT/filval/<a class="el" href="value_8hpp_source.html">value.hpp</a></li>
  151. </ul>
  152. </div><!-- contents -->
  153. <!-- start footer part -->
  154. <hr class="footer"/><address class="footer"><small>
  155. Generated by &#160;<a href="http://www.doxygen.org/index.html">
  156. <img class="footer" src="doxygen.png" alt="doxygen"/>
  157. </a> 1.8.13
  158. </small></address>
  159. </body>
  160. </html>