You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

784 lines
48 KiB

1 year ago
  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.5"/>
  7. <title>Face Engine SDK: fsdk::Ref&lt; T &gt; Struct Template Reference</title>
  8. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  9. <script type="text/javascript" src="jquery.js"></script>
  10. <script type="text/javascript" src="dynsections.js"></script>
  11. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  12. <script type="text/javascript" src="resize.js"></script>
  13. <script type="text/javascript" src="navtree.js"></script>
  14. <script type="text/javascript">
  15. $(document).ready(initResizable);
  16. $(window).load(resizeHeight);
  17. </script>
  18. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  19. <script type="text/javascript" src="search/search.js"></script>
  20. <script type="text/javascript">
  21. $(document).ready(function() { searchBox.OnSelectItem(0); });
  22. </script>
  23. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  24. </head>
  25. <body>
  26. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  27. <div id="titlearea">
  28. <table cellspacing="0" cellpadding="0">
  29. <tbody>
  30. <tr style="height: 56px;">
  31. <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  32. <td style="padding-left: 0.5em;">
  33. <div id="projectname">Face Engine SDK
  34. &#160;<span id="projectnumber">5.8.0</span>
  35. </div>
  36. <div id="projectbrief">A face detection, recognition and tracking engine.</div>
  37. </td>
  38. </tr>
  39. </tbody>
  40. </table>
  41. </div>
  42. <!-- end header part -->
  43. <!-- Generated by Doxygen 1.8.5 -->
  44. <script type="text/javascript">
  45. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  46. </script>
  47. <div id="navrow1" class="tabs">
  48. <ul class="tablist">
  49. <li><a href="index.html"><span>Main&#160;Page</span></a></li>
  50. <li><a href="modules.html"><span>Modules</span></a></li>
  51. <li><a href="namespaces.html"><span>Namespaces</span></a></li>
  52. <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
  53. <li><a href="files.html"><span>Files</span></a></li>
  54. <li>
  55. <div id="MSearchBox" class="MSearchBoxInactive">
  56. <span class="left">
  57. <img id="MSearchSelect" src="search/mag_sel.png"
  58. onmouseover="return searchBox.OnSearchSelectShow()"
  59. onmouseout="return searchBox.OnSearchSelectHide()"
  60. alt=""/>
  61. <input type="text" id="MSearchField" value="Search" accesskey="S"
  62. onfocus="searchBox.OnSearchFieldFocus(true)"
  63. onblur="searchBox.OnSearchFieldFocus(false)"
  64. onkeyup="searchBox.OnSearchFieldChange(event)"/>
  65. </span><span class="right">
  66. <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
  67. </span>
  68. </div>
  69. </li>
  70. </ul>
  71. </div>
  72. <div id="navrow2" class="tabs2">
  73. <ul class="tablist">
  74. <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
  75. <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
  76. <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
  77. <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
  78. </ul>
  79. </div>
  80. </div><!-- top -->
  81. <div id="side-nav" class="ui-resizable side-nav-resizable">
  82. <div id="nav-tree">
  83. <div id="nav-tree-contents">
  84. <div id="nav-sync" class="sync"></div>
  85. </div>
  86. </div>
  87. <div id="splitbar" style="-moz-user-select:none;"
  88. class="ui-resizable-handle">
  89. </div>
  90. </div>
  91. <script type="text/javascript">
  92. $(document).ready(function(){initNavTree('structfsdk_1_1_ref.html','');});
  93. </script>
  94. <div id="doc-content">
  95. <!-- window showing the filter options -->
  96. <div id="MSearchSelectWindow"
  97. onmouseover="return searchBox.OnSearchSelectShow()"
  98. onmouseout="return searchBox.OnSearchSelectHide()"
  99. onkeydown="return searchBox.OnSearchSelectKey(event)">
  100. <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark">&#160;</span>Pages</a></div>
  101. <!-- iframe showing the search results (closed by default) -->
  102. <div id="MSearchResultsWindow">
  103. <iframe src="javascript:void(0)" frameborder="0"
  104. name="MSearchResults" id="MSearchResults">
  105. </iframe>
  106. </div>
  107. <div class="header">
  108. <div class="summary">
  109. <a href="#pub-methods">Public Member Functions</a> &#124;
  110. <a href="structfsdk_1_1_ref-members.html">List of all members</a> </div>
  111. <div class="headertitle">
  112. <div class="title">fsdk::Ref&lt; T &gt; Struct Template Reference</div> </div>
  113. </div><!--header-->
  114. <div class="contents">
  115. <p>Smart pointer for reference counted objects.
  116. <a href="structfsdk_1_1_ref.html#details">More...</a></p>
  117. <p><code>#include &lt;<a class="el" href="_ref_8h_source.html">Ref.h</a>&gt;</code></p>
  118. <div class="dynheader">
  119. Inheritance diagram for fsdk::Ref&lt; T &gt;:</div>
  120. <div class="dyncontent">
  121. <div class="center">
  122. <img src="structfsdk_1_1_ref.png" usemap="#fsdk::Ref&lt; T &gt;_map" alt=""/>
  123. <map id="fsdk::Ref&lt; T &gt;_map" name="fsdk::Ref&lt; T &gt;_map">
  124. <area href="structfsdk_1_1_ref_base.html" title="Generic base class of a pointer for reference counted objects. " alt="fsdk::RefBase&lt; T &gt;" shape="rect" coords="0,0,119,24"/>
  125. </map>
  126. </div></div>
  127. <table class="memberdecls">
  128. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
  129. Public Member Functions</h2></td></tr>
  130. <tr class="memitem:a58e4acb99a8a874754a23e6e4f7b2251"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a58e4acb99a8a874754a23e6e4f7b2251"></a>
  131. &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a58e4acb99a8a874754a23e6e4f7b2251">Ref</a> () noexcept=default</td></tr>
  132. <tr class="memdesc:a58e4acb99a8a874754a23e6e4f7b2251"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor. Initializes object pointer to nullptr. <br/></td></tr>
  133. <tr class="separator:a58e4acb99a8a874754a23e6e4f7b2251"><td class="memSeparator" colspan="2">&#160;</td></tr>
  134. <tr class="memitem:a2b302d028bf41a3299ad1a75d3078b08"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b302d028bf41a3299ad1a75d3078b08"></a>
  135. &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a2b302d028bf41a3299ad1a75d3078b08">Ref</a> (std::nullptr_t) noexcept</td></tr>
  136. <tr class="memdesc:a2b302d028bf41a3299ad1a75d3078b08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes object pointer to nullptr. <br/></td></tr>
  137. <tr class="separator:a2b302d028bf41a3299ad1a75d3078b08"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:aa7673c14c03a88a443a5497497af5146"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#aa7673c14c03a88a443a5497497af5146">Ref</a> (T *ptr) noexcept</td></tr>
  139. <tr class="memdesc:aa7673c14c03a88a443a5497497af5146"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes object pointer with ptr and retains a reference. <a href="#aa7673c14c03a88a443a5497497af5146">More...</a><br/></td></tr>
  140. <tr class="separator:aa7673c14c03a88a443a5497497af5146"><td class="memSeparator" colspan="2">&#160;</td></tr>
  141. <tr class="memitem:a3fdf807e4c01d6f07e8d67f920537022"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a3fdf807e4c01d6f07e8d67f920537022">Ref</a> (const <a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;other)</td></tr>
  142. <tr class="memdesc:a3fdf807e4c01d6f07e8d67f920537022"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes object pointer with other and retains a reference. <a href="#a3fdf807e4c01d6f07e8d67f920537022">More...</a><br/></td></tr>
  143. <tr class="separator:a3fdf807e4c01d6f07e8d67f920537022"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. <tr class="memitem:a04c673df1f8297ed0330b56be72218f2"><td class="memTemplParams" colspan="2">template&lt;class D , typename = typename std::enable_if&lt;std::is_convertible&lt;D*, T*&gt;::value&gt;::type&gt; </td></tr>
  145. <tr class="memitem:a04c673df1f8297ed0330b56be72218f2"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a04c673df1f8297ed0330b56be72218f2">Ref</a> (const <a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; D &gt; &amp;other)</td></tr>
  146. <tr class="memdesc:a04c673df1f8297ed0330b56be72218f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes object pointer with other and retains a reference. <a href="#a04c673df1f8297ed0330b56be72218f2">More...</a><br/></td></tr>
  147. <tr class="separator:a04c673df1f8297ed0330b56be72218f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  148. <tr class="memitem:aa1d9bbc7d476649947142015f22fa7c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa1d9bbc7d476649947142015f22fa7c7"></a>
  149. &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#aa1d9bbc7d476649947142015f22fa7c7">~Ref</a> () noexcept</td></tr>
  150. <tr class="memdesc:aa1d9bbc7d476649947142015f22fa7c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases reference being held (if any). <br/></td></tr>
  151. <tr class="separator:aa1d9bbc7d476649947142015f22fa7c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  152. <tr class="memitem:a672bfe4b1b07aa8200e0c179323ffc81"><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a672bfe4b1b07aa8200e0c179323ffc81">operator-&gt;</a> () const noexcept</td></tr>
  153. <tr class="memdesc:a672bfe4b1b07aa8200e0c179323ffc81"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access pointer. <a href="#a672bfe4b1b07aa8200e0c179323ffc81">More...</a><br/></td></tr>
  154. <tr class="separator:a672bfe4b1b07aa8200e0c179323ffc81"><td class="memSeparator" colspan="2">&#160;</td></tr>
  155. <tr class="memitem:a4481cd13013a52fe8ff42cf8cbd25075"><td class="memItemLeft" align="right" valign="top">T **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a4481cd13013a52fe8ff42cf8cbd25075">getInitReference</a> () noexcept</td></tr>
  156. <tr class="memdesc:a4481cd13013a52fe8ff42cf8cbd25075"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access pointer for initialization. <a href="#a4481cd13013a52fe8ff42cf8cbd25075">More...</a><br/></td></tr>
  157. <tr class="separator:a4481cd13013a52fe8ff42cf8cbd25075"><td class="memSeparator" colspan="2">&#160;</td></tr>
  158. <tr class="memitem:a70f2e2f6d93a448c088311e65c17e29f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a70f2e2f6d93a448c088311e65c17e29f">operator==</a> (const <a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;other) const noexcept</td></tr>
  159. <tr class="memdesc:a70f2e2f6d93a448c088311e65c17e29f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if two refs are the same. <a href="#a70f2e2f6d93a448c088311e65c17e29f">More...</a><br/></td></tr>
  160. <tr class="separator:a70f2e2f6d93a448c088311e65c17e29f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  161. <tr class="memitem:a9c64ce15d1f45608206576a704208a26"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a9c64ce15d1f45608206576a704208a26">operator!=</a> (const <a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;other) const noexcept</td></tr>
  162. <tr class="memdesc:a9c64ce15d1f45608206576a704208a26"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if two refs are not the same. <a href="#a9c64ce15d1f45608206576a704208a26">More...</a><br/></td></tr>
  163. <tr class="separator:a9c64ce15d1f45608206576a704208a26"><td class="memSeparator" colspan="2">&#160;</td></tr>
  164. <tr class="memitem:a4828c89609b91ef396295d9338a3966a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a4828c89609b91ef396295d9338a3966a">operator=</a> (const <a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;other) noexcept</td></tr>
  165. <tr class="memdesc:a4828c89609b91ef396295d9338a3966a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign a strong reference. <a href="#a4828c89609b91ef396295d9338a3966a">More...</a><br/></td></tr>
  166. <tr class="separator:a4828c89609b91ef396295d9338a3966a"><td class="memSeparator" colspan="2">&#160;</td></tr>
  167. <tr class="memitem:a845904eb499a34c81fad27567bd284f2"><td class="memTemplParams" colspan="2">template&lt;class D , typename = typename std::enable_if&lt;std::is_convertible&lt;D*, T*&gt;::value&gt;::type&gt; </td></tr>
  168. <tr class="memitem:a845904eb499a34c81fad27567bd284f2"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a845904eb499a34c81fad27567bd284f2">operator=</a> (const <a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; D &gt; &amp;other) noexcept</td></tr>
  169. <tr class="memdesc:a845904eb499a34c81fad27567bd284f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign a strong reference. <a href="#a845904eb499a34c81fad27567bd284f2">More...</a><br/></td></tr>
  170. <tr class="separator:a845904eb499a34c81fad27567bd284f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
  171. <tr class="memitem:aacf7b3a1eb1afe796743ef8c9390a41c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#aacf7b3a1eb1afe796743ef8c9390a41c">operator=</a> (T *ptr) noexcept</td></tr>
  172. <tr class="memdesc:aacf7b3a1eb1afe796743ef8c9390a41c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign a raw pointer. <a href="#aacf7b3a1eb1afe796743ef8c9390a41c">More...</a><br/></td></tr>
  173. <tr class="separator:aacf7b3a1eb1afe796743ef8c9390a41c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  174. <tr class="memitem:ac7b437683b2898eb84a2eb12f900b641"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#ac7b437683b2898eb84a2eb12f900b641">operator=</a> (std::nullptr_t) noexcept</td></tr>
  175. <tr class="memdesc:ac7b437683b2898eb84a2eb12f900b641"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign a nullptr_t. <a href="#ac7b437683b2898eb84a2eb12f900b641">More...</a><br/></td></tr>
  176. <tr class="separator:ac7b437683b2898eb84a2eb12f900b641"><td class="memSeparator" colspan="2">&#160;</td></tr>
  177. <tr class="memitem:aed37366a7149bed9a7d7c322bd7bef91"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#aed37366a7149bed9a7d7c322bd7bef91">assign</a> (T *ptr) noexcept</td></tr>
  178. <tr class="memdesc:aed37366a7149bed9a7d7c322bd7bef91"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assign an object. Presumes shared ownership, increases reference count. <a href="#aed37366a7149bed9a7d7c322bd7bef91">More...</a><br/></td></tr>
  179. <tr class="separator:aed37366a7149bed9a7d7c322bd7bef91"><td class="memSeparator" colspan="2">&#160;</td></tr>
  180. <tr class="memitem:a5d1295bb45a634e8907e6f3ce891e93b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a5d1295bb45a634e8907e6f3ce891e93b">acquire</a> (T *ptr) noexcept</td></tr>
  181. <tr class="memdesc:a5d1295bb45a634e8907e6f3ce891e93b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acquire ownership of the object. <a href="#a5d1295bb45a634e8907e6f3ce891e93b">More...</a><br/></td></tr>
  182. <tr class="separator:a5d1295bb45a634e8907e6f3ce891e93b"><td class="memSeparator" colspan="2">&#160;</td></tr>
  183. <tr class="memitem:a46bde60641331c01f9804db22cad3ed9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="structfsdk_1_1_ref.html">Ref</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a46bde60641331c01f9804db22cad3ed9">make_ref</a> (T *ptr) noexcept</td></tr>
  184. <tr class="memdesc:a46bde60641331c01f9804db22cad3ed9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create ref without acquiring ownership. <a href="#a46bde60641331c01f9804db22cad3ed9">More...</a><br/></td></tr>
  185. <tr class="separator:a46bde60641331c01f9804db22cad3ed9"><td class="memSeparator" colspan="2">&#160;</td></tr>
  186. <tr class="memitem:a24015b4f52310246a88e40ffd1e81030"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a24015b4f52310246a88e40ffd1e81030"></a>
  187. T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a24015b4f52310246a88e40ffd1e81030">reset</a> () noexcept</td></tr>
  188. <tr class="memdesc:a24015b4f52310246a88e40ffd1e81030"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset reference counted object and assign nullptr to the pointer. <br/></td></tr>
  189. <tr class="separator:a24015b4f52310246a88e40ffd1e81030"><td class="memSeparator" colspan="2">&#160;</td></tr>
  190. <tr class="memitem:a74485eedefcd2c2f032a61bce36a2492"><td class="memTemplParams" colspan="2">template&lt;typename S &gt; </td></tr>
  191. <tr class="memitem:a74485eedefcd2c2f032a61bce36a2492"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; S &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref.html#a74485eedefcd2c2f032a61bce36a2492">as</a> () const noexcept</td></tr>
  192. <tr class="memdesc:a74485eedefcd2c2f032a61bce36a2492"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make smart reference with relative type. <a href="#a74485eedefcd2c2f032a61bce36a2492">More...</a><br/></td></tr>
  193. <tr class="separator:a74485eedefcd2c2f032a61bce36a2492"><td class="memSeparator" colspan="2">&#160;</td></tr>
  194. <tr class="inherit_header pub_methods_structfsdk_1_1_ref_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_structfsdk_1_1_ref_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="structfsdk_1_1_ref_base.html">fsdk::RefBase&lt; T &gt;</a></td></tr>
  195. <tr class="memitem:a53e524dddc5f820708d0db6c99069d64 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a53e524dddc5f820708d0db6c99069d64"></a>
  196. &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a53e524dddc5f820708d0db6c99069d64">RefBase</a> () noexcept=default</td></tr>
  197. <tr class="memdesc:a53e524dddc5f820708d0db6c99069d64 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes object pointer to nullptr. <br/></td></tr>
  198. <tr class="separator:a53e524dddc5f820708d0db6c99069d64 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  199. <tr class="memitem:aac9bb6fcbf9b720a6b5e7a4907cc80c1 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#aac9bb6fcbf9b720a6b5e7a4907cc80c1">RefBase</a> (T *ptr) noexcept</td></tr>
  200. <tr class="memdesc:aac9bb6fcbf9b720a6b5e7a4907cc80c1 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes object pointer with ptr. <a href="#aac9bb6fcbf9b720a6b5e7a4907cc80c1">More...</a><br/></td></tr>
  201. <tr class="separator:aac9bb6fcbf9b720a6b5e7a4907cc80c1 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  202. <tr class="memitem:a87fa2d42cdd5da50ad56c9fcc056099b inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a87fa2d42cdd5da50ad56c9fcc056099b">operator T *</a> () const noexcept</td></tr>
  203. <tr class="memdesc:a87fa2d42cdd5da50ad56c9fcc056099b inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get raw object pointer. <a href="#a87fa2d42cdd5da50ad56c9fcc056099b">More...</a><br/></td></tr>
  204. <tr class="separator:a87fa2d42cdd5da50ad56c9fcc056099b inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  205. <tr class="memitem:a3c132b113b08dc44bc8a9150fd007d19 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a3c132b113b08dc44bc8a9150fd007d19">operator*</a> () const noexcept</td></tr>
  206. <tr class="memdesc:a3c132b113b08dc44bc8a9150fd007d19 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dereference operator. <a href="#a3c132b113b08dc44bc8a9150fd007d19">More...</a><br/></td></tr>
  207. <tr class="separator:a3c132b113b08dc44bc8a9150fd007d19 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  208. <tr class="memitem:a7e3a0a80186484fe19eec757ab9546d9 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a7e3a0a80186484fe19eec757ab9546d9">operator bool</a> () const noexcept</td></tr>
  209. <tr class="memdesc:a7e3a0a80186484fe19eec757ab9546d9 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Implicit cast to bool. <a href="#a7e3a0a80186484fe19eec757ab9546d9">More...</a><br/></td></tr>
  210. <tr class="separator:a7e3a0a80186484fe19eec757ab9546d9 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  211. <tr class="memitem:a8a7d5f145b0709c08a5faf1741fafbe4 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a8a7d5f145b0709c08a5faf1741fafbe4">operator==</a> (const <a class="el" href="structfsdk_1_1_ref_base.html">RefBase</a> &amp;other) const noexcept</td></tr>
  212. <tr class="memdesc:a8a7d5f145b0709c08a5faf1741fafbe4 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if two refs are the same. <a href="#a8a7d5f145b0709c08a5faf1741fafbe4">More...</a><br/></td></tr>
  213. <tr class="separator:a8a7d5f145b0709c08a5faf1741fafbe4 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  214. <tr class="memitem:a5f5a390a37bc52d7483049069ecc89a0 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a5f5a390a37bc52d7483049069ecc89a0">operator!=</a> (const <a class="el" href="structfsdk_1_1_ref_base.html">RefBase</a> &amp;other) const noexcept</td></tr>
  215. <tr class="memdesc:a5f5a390a37bc52d7483049069ecc89a0 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if two refs are not the same. <a href="#a5f5a390a37bc52d7483049069ecc89a0">More...</a><br/></td></tr>
  216. <tr class="separator:a5f5a390a37bc52d7483049069ecc89a0 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  217. <tr class="memitem:a65eb00c69769063de70515387aaf7d71 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a65eb00c69769063de70515387aaf7d71">isNull</a> () const noexcept</td></tr>
  218. <tr class="memdesc:a65eb00c69769063de70515387aaf7d71 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check for nullptr. <a href="#a65eb00c69769063de70515387aaf7d71">More...</a><br/></td></tr>
  219. <tr class="separator:a65eb00c69769063de70515387aaf7d71 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  220. <tr class="memitem:a7b102e6ffd4ea5e393f283169f826f6f inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a7b102e6ffd4ea5e393f283169f826f6f">isExpired</a> () const noexcept</td></tr>
  221. <tr class="memdesc:a7b102e6ffd4ea5e393f283169f826f6f inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check is object is dead. <a href="#a7b102e6ffd4ea5e393f283169f826f6f">More...</a><br/></td></tr>
  222. <tr class="separator:a7b102e6ffd4ea5e393f283169f826f6f inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  223. <tr class="memitem:a1f4e70a1252dce29ced35e396c0a1d87 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a1f4e70a1252dce29ced35e396c0a1d87">isUnique</a> () const noexcept</td></tr>
  224. <tr class="memdesc:a1f4e70a1252dce29ced35e396c0a1d87 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if object has only one strong reference. <a href="#a1f4e70a1252dce29ced35e396c0a1d87">More...</a><br/></td></tr>
  225. <tr class="separator:a1f4e70a1252dce29ced35e396c0a1d87 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  226. <tr class="memitem:a7ea44dfe520bbe2ced2fe2c023809288 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a7ea44dfe520bbe2ced2fe2c023809288">get</a> () const noexcept</td></tr>
  227. <tr class="memdesc:a7ea44dfe520bbe2ced2fe2c023809288 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current raw object pointer. <a href="#a7ea44dfe520bbe2ced2fe2c023809288">More...</a><br/></td></tr>
  228. <tr class="separator:a7ea44dfe520bbe2ced2fe2c023809288 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  229. <tr class="memitem:a9baae9b19a0723e049bce5d641889662 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#a9baae9b19a0723e049bce5d641889662">set</a> (T *ptr) noexcept</td></tr>
  230. <tr class="memdesc:a9baae9b19a0723e049bce5d641889662 inherit pub_methods_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replace object pointer without any checks or reference management. <a href="#a9baae9b19a0723e049bce5d641889662">More...</a><br/></td></tr>
  231. <tr class="separator:a9baae9b19a0723e049bce5d641889662 inherit pub_methods_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  232. </table><table class="memberdecls">
  233. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
  234. Additional Inherited Members</h2></td></tr>
  235. <tr class="inherit_header pro_attribs_structfsdk_1_1_ref_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_structfsdk_1_1_ref_base')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="structfsdk_1_1_ref_base.html">fsdk::RefBase&lt; T &gt;</a></td></tr>
  236. <tr class="memitem:ab57bc3fc17e734e742c0b47ec60573ba inherit pro_attribs_structfsdk_1_1_ref_base"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab57bc3fc17e734e742c0b47ec60573ba"></a>
  237. T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structfsdk_1_1_ref_base.html#ab57bc3fc17e734e742c0b47ec60573ba">m_ptr</a> {nullptr}</td></tr>
  238. <tr class="memdesc:ab57bc3fc17e734e742c0b47ec60573ba inherit pro_attribs_structfsdk_1_1_ref_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Raw pointer. <br/></td></tr>
  239. <tr class="separator:ab57bc3fc17e734e742c0b47ec60573ba inherit pro_attribs_structfsdk_1_1_ref_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
  240. </table>
  241. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  242. <div class="textblock"><h3>template&lt;typename T&gt;<br/>
  243. struct fsdk::Ref&lt; T &gt;</h3>
  244. <p>Smart pointer for reference counted objects. </p>
  245. <p>Automatically calls retain/release and provides safety assertions.</p>
  246. <dl class="tparams"><dt>Template Parameters</dt><dd>
  247. <table class="tparams">
  248. <tr><td class="paramname">T</td><td>object interface (must be derived from <a class="el" href="structfsdk_1_1_i_ref_counted.html" title="Base strong reference counted object interface. ">IRefCounted</a>) </td></tr>
  249. </table>
  250. </dd>
  251. </dl>
  252. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  253. <a class="anchor" id="aa7673c14c03a88a443a5497497af5146"></a>
  254. <div class="memitem">
  255. <div class="memproto">
  256. <div class="memtemplate">
  257. template&lt;typename T&gt; </div>
  258. <table class="mlabels">
  259. <tr>
  260. <td class="mlabels-left">
  261. <table class="memname">
  262. <tr>
  263. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::<a class="el" href="structfsdk_1_1_ref.html">Ref</a> </td>
  264. <td>(</td>
  265. <td class="paramtype">T *&#160;</td>
  266. <td class="paramname"><em>ptr</em></td><td>)</td>
  267. <td></td>
  268. </tr>
  269. </table>
  270. </td>
  271. <td class="mlabels-right">
  272. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span> </td>
  273. </tr>
  274. </table>
  275. </div><div class="memdoc">
  276. <p>Initializes object pointer with ptr and retains a reference. </p>
  277. <dl class="section note"><dt>Note</dt><dd>this shares ownership. </dd></dl>
  278. <dl class="params"><dt>Parameters</dt><dd>
  279. <table class="params">
  280. <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>raw pointer to initialize with. </td></tr>
  281. </table>
  282. </dd>
  283. </dl>
  284. </div>
  285. </div>
  286. <a class="anchor" id="a3fdf807e4c01d6f07e8d67f920537022"></a>
  287. <div class="memitem">
  288. <div class="memproto">
  289. <div class="memtemplate">
  290. template&lt;typename T&gt; </div>
  291. <table class="mlabels">
  292. <tr>
  293. <td class="mlabels-left">
  294. <table class="memname">
  295. <tr>
  296. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::<a class="el" href="structfsdk_1_1_ref.html">Ref</a> </td>
  297. <td>(</td>
  298. <td class="paramtype">const <a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; T &gt; &amp;&#160;</td>
  299. <td class="paramname"><em>other</em></td><td>)</td>
  300. <td></td>
  301. </tr>
  302. </table>
  303. </td>
  304. <td class="mlabels-right">
  305. <span class="mlabels"><span class="mlabel">inline</span></span> </td>
  306. </tr>
  307. </table>
  308. </div><div class="memdoc">
  309. <p>Initializes object pointer with other and retains a reference. </p>
  310. <dl class="section note"><dt>Note</dt><dd>this shares ownership. </dd></dl>
  311. <dl class="params"><dt>Parameters</dt><dd>
  312. <table class="params">
  313. <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>pointer to initialize with. </td></tr>
  314. </table>
  315. </dd>
  316. </dl>
  317. </div>
  318. </div>
  319. <a class="anchor" id="a04c673df1f8297ed0330b56be72218f2"></a>
  320. <div class="memitem">
  321. <div class="memproto">
  322. <div class="memtemplate">
  323. template&lt;typename T&gt; </div>
  324. <div class="memtemplate">
  325. template&lt;class D , typename = typename std::enable_if&lt;std::is_convertible&lt;D*, T*&gt;::value&gt;::type&gt; </div>
  326. <table class="mlabels">
  327. <tr>
  328. <td class="mlabels-left">
  329. <table class="memname">
  330. <tr>
  331. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::<a class="el" href="structfsdk_1_1_ref.html">Ref</a> </td>
  332. <td>(</td>
  333. <td class="paramtype">const <a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; D &gt; &amp;&#160;</td>
  334. <td class="paramname"><em>other</em></td><td>)</td>
  335. <td></td>
  336. </tr>
  337. </table>
  338. </td>
  339. <td class="mlabels-right">
  340. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
  341. </tr>
  342. </table>
  343. </div><div class="memdoc">
  344. <p>Initializes object pointer with other and retains a reference. </p>
  345. <dl class="section note"><dt>Note</dt><dd>this shares ownership. </dd></dl>
  346. <dl class="params"><dt>Parameters</dt><dd>
  347. <table class="params">
  348. <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>pointer of derived template class to initialize with. </td></tr>
  349. </table>
  350. </dd>
  351. </dl>
  352. </div>
  353. </div>
  354. <h2 class="groupheader">Member Function Documentation</h2>
  355. <a class="anchor" id="a5d1295bb45a634e8907e6f3ce891e93b"></a>
  356. <div class="memitem">
  357. <div class="memproto">
  358. <div class="memtemplate">
  359. template&lt;typename T&gt; </div>
  360. <table class="mlabels">
  361. <tr>
  362. <td class="mlabels-left">
  363. <table class="memname">
  364. <tr>
  365. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&amp; <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::acquire </td>
  366. <td>(</td>
  367. <td class="paramtype">T *&#160;</td>
  368. <td class="paramname"><em>ptr</em></td><td>)</td>
  369. <td></td>
  370. </tr>
  371. </table>
  372. </td>
  373. <td class="mlabels-right">
  374. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  375. </tr>
  376. </table>
  377. </div><div class="memdoc">
  378. <p>Acquire ownership of the object. </p>
  379. <dl class="params"><dt>Parameters</dt><dd>
  380. <table class="params">
  381. <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>raw object pointer to acquire. </td></tr>
  382. </table>
  383. </dd>
  384. </dl>
  385. </div>
  386. </div>
  387. <a class="anchor" id="a74485eedefcd2c2f032a61bce36a2492"></a>
  388. <div class="memitem">
  389. <div class="memproto">
  390. <div class="memtemplate">
  391. template&lt;typename T&gt; </div>
  392. <div class="memtemplate">
  393. template&lt;typename S &gt; </div>
  394. <table class="mlabels">
  395. <tr>
  396. <td class="mlabels-left">
  397. <table class="memname">
  398. <tr>
  399. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt;S&gt; <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::as </td>
  400. <td>(</td>
  401. <td class="paramname"></td><td>)</td>
  402. <td> const</td>
  403. </tr>
  404. </table>
  405. </td>
  406. <td class="mlabels-right">
  407. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  408. </tr>
  409. </table>
  410. </div><div class="memdoc">
  411. <p>Make smart reference with relative type. </p>
  412. <dl class="tparams"><dt>Template Parameters</dt><dd>
  413. <table class="tparams">
  414. <tr><td class="paramname">S</td><td>target interface (must be relative to T) </td></tr>
  415. </table>
  416. </dd>
  417. </dl>
  418. </div>
  419. </div>
  420. <a class="anchor" id="aed37366a7149bed9a7d7c322bd7bef91"></a>
  421. <div class="memitem">
  422. <div class="memproto">
  423. <div class="memtemplate">
  424. template&lt;typename T&gt; </div>
  425. <table class="mlabels">
  426. <tr>
  427. <td class="mlabels-left">
  428. <table class="memname">
  429. <tr>
  430. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&amp; <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::assign </td>
  431. <td>(</td>
  432. <td class="paramtype">T *&#160;</td>
  433. <td class="paramname"><em>ptr</em></td><td>)</td>
  434. <td></td>
  435. </tr>
  436. </table>
  437. </td>
  438. <td class="mlabels-right">
  439. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  440. </tr>
  441. </table>
  442. </div><div class="memdoc">
  443. <p>Assign an object. Presumes shared ownership, increases reference count. </p>
  444. <dl class="params"><dt>Parameters</dt><dd>
  445. <table class="params">
  446. <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>raw object pointer to assign. </td></tr>
  447. </table>
  448. </dd>
  449. </dl>
  450. </div>
  451. </div>
  452. <a class="anchor" id="a4481cd13013a52fe8ff42cf8cbd25075"></a>
  453. <div class="memitem">
  454. <div class="memproto">
  455. <div class="memtemplate">
  456. template&lt;typename T&gt; </div>
  457. <table class="mlabels">
  458. <tr>
  459. <td class="mlabels-left">
  460. <table class="memname">
  461. <tr>
  462. <td class="memname">T** <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::getInitReference </td>
  463. <td>(</td>
  464. <td class="paramname"></td><td>)</td>
  465. <td></td>
  466. </tr>
  467. </table>
  468. </td>
  469. <td class="mlabels-right">
  470. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  471. </tr>
  472. </table>
  473. </div><div class="memdoc">
  474. <p>Access pointer for initialization. </p>
  475. <dl class="section note"><dt>Note</dt><dd>previously held pointer is released. </dd></dl>
  476. <dl class="section return"><dt>Returns</dt><dd>pointer to pointer to object. </dd></dl>
  477. </div>
  478. </div>
  479. <a class="anchor" id="a46bde60641331c01f9804db22cad3ed9"></a>
  480. <div class="memitem">
  481. <div class="memproto">
  482. <div class="memtemplate">
  483. template&lt;typename T&gt; </div>
  484. <table class="mlabels">
  485. <tr>
  486. <td class="mlabels-left">
  487. <table class="memname">
  488. <tr>
  489. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&amp; <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::make_ref </td>
  490. <td>(</td>
  491. <td class="paramtype">T *&#160;</td>
  492. <td class="paramname"><em>ptr</em></td><td>)</td>
  493. <td></td>
  494. </tr>
  495. </table>
  496. </td>
  497. <td class="mlabels-right">
  498. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  499. </tr>
  500. </table>
  501. </div><div class="memdoc">
  502. <p>Create ref without acquiring ownership. </p>
  503. <dl class="params"><dt>Parameters</dt><dd>
  504. <table class="params">
  505. <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>raw object pointer. </td></tr>
  506. </table>
  507. </dd>
  508. </dl>
  509. </div>
  510. </div>
  511. <a class="anchor" id="a9c64ce15d1f45608206576a704208a26"></a>
  512. <div class="memitem">
  513. <div class="memproto">
  514. <div class="memtemplate">
  515. template&lt;typename T&gt; </div>
  516. <table class="mlabels">
  517. <tr>
  518. <td class="mlabels-left">
  519. <table class="memname">
  520. <tr>
  521. <td class="memname">bool <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::operator!= </td>
  522. <td>(</td>
  523. <td class="paramtype">const <a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; T &gt; &amp;&#160;</td>
  524. <td class="paramname"><em>other</em></td><td>)</td>
  525. <td> const</td>
  526. </tr>
  527. </table>
  528. </td>
  529. <td class="mlabels-right">
  530. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  531. </tr>
  532. </table>
  533. </div><div class="memdoc">
  534. <p>Check if two refs are not the same. </p>
  535. <dl class="section return"><dt>Returns</dt><dd>true if two refs are not the same. </dd></dl>
  536. <dl class="params"><dt>Parameters</dt><dd>
  537. <table class="params">
  538. <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>ref to check against. </td></tr>
  539. </table>
  540. </dd>
  541. </dl>
  542. </div>
  543. </div>
  544. <a class="anchor" id="a672bfe4b1b07aa8200e0c179323ffc81"></a>
  545. <div class="memitem">
  546. <div class="memproto">
  547. <div class="memtemplate">
  548. template&lt;typename T&gt; </div>
  549. <table class="mlabels">
  550. <tr>
  551. <td class="mlabels-left">
  552. <table class="memname">
  553. <tr>
  554. <td class="memname">T* <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::operator-&gt; </td>
  555. <td>(</td>
  556. <td class="paramname"></td><td>)</td>
  557. <td> const</td>
  558. </tr>
  559. </table>
  560. </td>
  561. <td class="mlabels-right">
  562. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  563. </tr>
  564. </table>
  565. </div><div class="memdoc">
  566. <p>Access pointer. </p>
  567. <dl class="section note"><dt>Note</dt><dd>pointer is checked for null in runtime. </dd></dl>
  568. <dl class="section return"><dt>Returns</dt><dd>pointer to object. </dd></dl>
  569. </div>
  570. </div>
  571. <a class="anchor" id="a4828c89609b91ef396295d9338a3966a"></a>
  572. <div class="memitem">
  573. <div class="memproto">
  574. <div class="memtemplate">
  575. template&lt;typename T&gt; </div>
  576. <table class="mlabels">
  577. <tr>
  578. <td class="mlabels-left">
  579. <table class="memname">
  580. <tr>
  581. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&amp; <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::operator= </td>
  582. <td>(</td>
  583. <td class="paramtype">const <a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; T &gt; &amp;&#160;</td>
  584. <td class="paramname"><em>other</em></td><td>)</td>
  585. <td></td>
  586. </tr>
  587. </table>
  588. </td>
  589. <td class="mlabels-right">
  590. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  591. </tr>
  592. </table>
  593. </div><div class="memdoc">
  594. <p>Assign a strong reference. </p>
  595. <dl class="params"><dt>Parameters</dt><dd>
  596. <table class="params">
  597. <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>strong reference. </td></tr>
  598. </table>
  599. </dd>
  600. </dl>
  601. <dl class="section return"><dt>Returns</dt><dd>reference. </dd></dl>
  602. </div>
  603. </div>
  604. <a class="anchor" id="a845904eb499a34c81fad27567bd284f2"></a>
  605. <div class="memitem">
  606. <div class="memproto">
  607. <div class="memtemplate">
  608. template&lt;typename T&gt; </div>
  609. <div class="memtemplate">
  610. template&lt;class D , typename = typename std::enable_if&lt;std::is_convertible&lt;D*, T*&gt;::value&gt;::type&gt; </div>
  611. <table class="mlabels">
  612. <tr>
  613. <td class="mlabels-left">
  614. <table class="memname">
  615. <tr>
  616. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&amp; <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::operator= </td>
  617. <td>(</td>
  618. <td class="paramtype">const <a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; D &gt; &amp;&#160;</td>
  619. <td class="paramname"><em>other</em></td><td>)</td>
  620. <td></td>
  621. </tr>
  622. </table>
  623. </td>
  624. <td class="mlabels-right">
  625. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  626. </tr>
  627. </table>
  628. </div><div class="memdoc">
  629. <p>Assign a strong reference. </p>
  630. <dl class="params"><dt>Parameters</dt><dd>
  631. <table class="params">
  632. <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>strong reference of derived template class. </td></tr>
  633. </table>
  634. </dd>
  635. </dl>
  636. <dl class="section return"><dt>Returns</dt><dd>reference. </dd></dl>
  637. </div>
  638. </div>
  639. <a class="anchor" id="aacf7b3a1eb1afe796743ef8c9390a41c"></a>
  640. <div class="memitem">
  641. <div class="memproto">
  642. <div class="memtemplate">
  643. template&lt;typename T&gt; </div>
  644. <table class="mlabels">
  645. <tr>
  646. <td class="mlabels-left">
  647. <table class="memname">
  648. <tr>
  649. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&amp; <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::operator= </td>
  650. <td>(</td>
  651. <td class="paramtype">T *&#160;</td>
  652. <td class="paramname"><em>ptr</em></td><td>)</td>
  653. <td></td>
  654. </tr>
  655. </table>
  656. </td>
  657. <td class="mlabels-right">
  658. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  659. </tr>
  660. </table>
  661. </div><div class="memdoc">
  662. <p>Assign a raw pointer. </p>
  663. <dl class="section note"><dt>Note</dt><dd>this shares ownership. </dd></dl>
  664. <dl class="params"><dt>Parameters</dt><dd>
  665. <table class="params">
  666. <tr><td class="paramdir">[in]</td><td class="paramname">ptr</td><td>raw pointer. </td></tr>
  667. </table>
  668. </dd>
  669. </dl>
  670. <dl class="section return"><dt>Returns</dt><dd>reference. </dd></dl>
  671. </div>
  672. </div>
  673. <a class="anchor" id="ac7b437683b2898eb84a2eb12f900b641"></a>
  674. <div class="memitem">
  675. <div class="memproto">
  676. <div class="memtemplate">
  677. template&lt;typename T&gt; </div>
  678. <table class="mlabels">
  679. <tr>
  680. <td class="mlabels-left">
  681. <table class="memname">
  682. <tr>
  683. <td class="memname"><a class="el" href="structfsdk_1_1_ref.html">Ref</a>&amp; <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::operator= </td>
  684. <td>(</td>
  685. <td class="paramtype">std::nullptr_t&#160;</td>
  686. <td class="paramname"></td><td>)</td>
  687. <td></td>
  688. </tr>
  689. </table>
  690. </td>
  691. <td class="mlabels-right">
  692. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  693. </tr>
  694. </table>
  695. </div><div class="memdoc">
  696. <p>Assign a nullptr_t. </p>
  697. <dl class="section note"><dt>Note</dt><dd>this releases previously held reference (if any). </dd></dl>
  698. <dl class="section return"><dt>Returns</dt><dd>reference. </dd></dl>
  699. </div>
  700. </div>
  701. <a class="anchor" id="a70f2e2f6d93a448c088311e65c17e29f"></a>
  702. <div class="memitem">
  703. <div class="memproto">
  704. <div class="memtemplate">
  705. template&lt;typename T&gt; </div>
  706. <table class="mlabels">
  707. <tr>
  708. <td class="mlabels-left">
  709. <table class="memname">
  710. <tr>
  711. <td class="memname">bool <a class="el" href="structfsdk_1_1_ref.html">fsdk::Ref</a>&lt; T &gt;::operator== </td>
  712. <td>(</td>
  713. <td class="paramtype">const <a class="el" href="structfsdk_1_1_ref.html">Ref</a>&lt; T &gt; &amp;&#160;</td>
  714. <td class="paramname"><em>other</em></td><td>)</td>
  715. <td> const</td>
  716. </tr>
  717. </table>
  718. </td>
  719. <td class="mlabels-right">
  720. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
  721. </tr>
  722. </table>
  723. </div><div class="memdoc">
  724. <p>Check if two refs are the same. </p>
  725. <dl class="section return"><dt>Returns</dt><dd>true if two refs are the same. </dd></dl>
  726. <dl class="params"><dt>Parameters</dt><dd>
  727. <table class="params">
  728. <tr><td class="paramdir">[in]</td><td class="paramname">other</td><td>ref to check against. </td></tr>
  729. </table>
  730. </dd>
  731. </dl>
  732. </div>
  733. </div>
  734. <hr/>The documentation for this struct was generated from the following file:<ul>
  735. <li>include/fsdk/Types/<a class="el" href="_ref_8h_source.html">Ref.h</a></li>
  736. </ul>
  737. </div><!-- contents -->
  738. </div><!-- doc-content -->
  739. <!-- start footer part -->
  740. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  741. <ul>
  742. <li class="navelem"><a class="el" href="namespacefsdk.html">fsdk</a></li><li class="navelem"><a class="el" href="structfsdk_1_1_ref.html">Ref</a></li>
  743. <li class="footer">Generated on Fri Jun 17 2022 12:19:44 for Face Engine SDK by
  744. <a href="http://www.doxygen.org/index.html">
  745. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
  746. </ul>
  747. </div>
  748. </body>
  749. </html>