Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.9.1"/>
<title>cairomm: Cairo::RefPtr&lt; T_CppObject &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">cairomm
   &#160;<span id="projectnumber">1.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.9.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceCairo.html">Cairo</a></li><li class="navelem"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classCairo_1_1RefPtr-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Cairo::RefPtr&lt; T_CppObject &gt; Class Template Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>RefPtr&lt;&gt; is a reference-counting shared smartpointer.  
 <a href="classCairo_1_1RefPtr.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for Cairo::RefPtr&lt; T_CppObject &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classCairo_1_1RefPtr__inherit__graph.png" border="0" usemap="#Cairo_1_1RefPtr_3_01T__CppObject_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="Cairo_1_1RefPtr_3_01T__CppObject_01_4_inherit__map" id="Cairo_1_1RefPtr_3_01T__CppObject_01_4_inherit__map">
<area shape="rect" id="node2" href="classCairo_1_1RefPtr.html" title="Cairo::RefPtr\&lt; Cairo\l::Device \&gt;" alt="" coords="37,95,185,136"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ad818ee4774212dbd29112e39e101198e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#ad818ee4774212dbd29112e39e101198e">RefPtr</a> () noexcept</td></tr>
<tr class="memdesc:ad818ee4774212dbd29112e39e101198e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#ad818ee4774212dbd29112e39e101198e">More...</a><br /></td></tr>
<tr class="separator:ad818ee4774212dbd29112e39e101198e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7449c6c42857a06c601a7564a403ad9a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a7449c6c42857a06c601a7564a403ad9a">~RefPtr</a> () noexcept</td></tr>
<tr class="memdesc:a7449c6c42857a06c601a7564a403ad9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor - decrements reference count.  <a href="#a7449c6c42857a06c601a7564a403ad9a">More...</a><br /></td></tr>
<tr class="separator:a7449c6c42857a06c601a7564a403ad9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a61ee3e164f0a7248e5b22fe2cf1e74b4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a61ee3e164f0a7248e5b22fe2cf1e74b4">RefPtr</a> (T_CppObject* pCppObject) noexcept</td></tr>
<tr class="memdesc:a61ee3e164f0a7248e5b22fe2cf1e74b4"><td class="mdescLeft">&#160;</td><td class="mdescRight">For use only in the internal implementation of cairomm, gtkmm, etc.  <a href="#a61ee3e164f0a7248e5b22fe2cf1e74b4">More...</a><br /></td></tr>
<tr class="separator:a61ee3e164f0a7248e5b22fe2cf1e74b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9571e746dcf28b99e2e51ebae0fb35a1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a9571e746dcf28b99e2e51ebae0fb35a1">RefPtr</a> (T_CppObject* pCppObject, int* refcount) noexcept</td></tr>
<tr class="memdesc:a9571e746dcf28b99e2e51ebae0fb35a1"><td class="mdescLeft">&#160;</td><td class="mdescRight">For use only in the internal implementation of sharedptr.  <a href="#a9571e746dcf28b99e2e51ebae0fb35a1">More...</a><br /></td></tr>
<tr class="separator:a9571e746dcf28b99e2e51ebae0fb35a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a33be2213aa14b184a8c2c6477ae6ce3c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a33be2213aa14b184a8c2c6477ae6ce3c">RefPtr</a> (<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&amp;&amp; src) noexcept</td></tr>
<tr class="memdesc:a33be2213aa14b184a8c2c6477ae6ce3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor.  <a href="#a33be2213aa14b184a8c2c6477ae6ce3c">More...</a><br /></td></tr>
<tr class="separator:a33be2213aa14b184a8c2c6477ae6ce3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d2a9e0461793104b51efbef7f73d355"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a8d2a9e0461793104b51efbef7f73d355"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a8d2a9e0461793104b51efbef7f73d355">RefPtr</a> (<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&amp; src) noexcept</td></tr>
<tr class="memdesc:a8d2a9e0461793104b51efbef7f73d355"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor (from different, but castable type).  <a href="#a8d2a9e0461793104b51efbef7f73d355">More...</a><br /></td></tr>
<tr class="separator:a8d2a9e0461793104b51efbef7f73d355"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a41f1ceed87262d3148b1797c526d788a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a41f1ceed87262d3148b1797c526d788a">RefPtr</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a41f1ceed87262d3148b1797c526d788a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#a41f1ceed87262d3148b1797c526d788a">More...</a><br /></td></tr>
<tr class="separator:a41f1ceed87262d3148b1797c526d788a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a942f1d647bfccfda787fd70751ab1832"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a942f1d647bfccfda787fd70751ab1832"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a942f1d647bfccfda787fd70751ab1832">RefPtr</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a942f1d647bfccfda787fd70751ab1832"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor (from different, but castable type).  <a href="#a942f1d647bfccfda787fd70751ab1832">More...</a><br /></td></tr>
<tr class="separator:a942f1d647bfccfda787fd70751ab1832"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae60f24b9b0751786b78d83962f1312a2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#ae60f24b9b0751786b78d83962f1312a2">swap</a> (<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; other) noexcept</td></tr>
<tr class="memdesc:ae60f24b9b0751786b78d83962f1312a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the contents of two RefPtr&lt;&gt;.  <a href="#ae60f24b9b0751786b78d83962f1312a2">More...</a><br /></td></tr>
<tr class="separator:ae60f24b9b0751786b78d83962f1312a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7ce66d31ad318da6bc33e2b254f223e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#ae7ce66d31ad318da6bc33e2b254f223e">operator=</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:ae7ce66d31ad318da6bc33e2b254f223e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy from another <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a>:  <a href="#ae7ce66d31ad318da6bc33e2b254f223e">More...</a><br /></td></tr>
<tr class="separator:ae7ce66d31ad318da6bc33e2b254f223e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10e520853f23ce4f0a72f48055719ed7"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a10e520853f23ce4f0a72f48055719ed7"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a10e520853f23ce4f0a72f48055719ed7">operator=</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a10e520853f23ce4f0a72f48055719ed7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy from different, but castable type).  <a href="#a10e520853f23ce4f0a72f48055719ed7">More...</a><br /></td></tr>
<tr class="separator:a10e520853f23ce4f0a72f48055719ed7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5759ac29a870acd77de7965dc89a430"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#ab5759ac29a870acd77de7965dc89a430">operator=</a> (<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&amp;&amp; src) noexcept</td></tr>
<tr class="memdesc:ab5759ac29a870acd77de7965dc89a430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator:  <a href="#ab5759ac29a870acd77de7965dc89a430">More...</a><br /></td></tr>
<tr class="separator:ab5759ac29a870acd77de7965dc89a430"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ea385c344eaf95f5a912bf08d1fc392"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a3ea385c344eaf95f5a912bf08d1fc392"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a3ea385c344eaf95f5a912bf08d1fc392">operator=</a> (<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&amp; src) noexcept</td></tr>
<tr class="memdesc:a3ea385c344eaf95f5a912bf08d1fc392"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator (from different, but castable type):  <a href="#a3ea385c344eaf95f5a912bf08d1fc392">More...</a><br /></td></tr>
<tr class="separator:a3ea385c344eaf95f5a912bf08d1fc392"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bc4844686505c04065879ede5c325f0"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a6bc4844686505c04065879ede5c325f0">operator==</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; src) const noexcept</td></tr>
<tr class="memdesc:a6bc4844686505c04065879ede5c325f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether the RefPtr&lt;&gt; point to the same underlying instance.  <a href="#a6bc4844686505c04065879ede5c325f0">More...</a><br /></td></tr>
<tr class="separator:a6bc4844686505c04065879ede5c325f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6374fdf5a0c78115afa0567b7b2c1731"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a6374fdf5a0c78115afa0567b7b2c1731">operator!=</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; src) const noexcept</td></tr>
<tr class="memdesc:a6374fdf5a0c78115afa0567b7b2c1731"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classCairo_1_1RefPtr.html#a6bc4844686505c04065879ede5c325f0" title="Tests whether the RefPtr<> point to the same underlying instance. ">operator==()</a>.  <a href="#a6374fdf5a0c78115afa0567b7b2c1731">More...</a><br /></td></tr>
<tr class="separator:a6374fdf5a0c78115afa0567b7b2c1731"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22ed3eb889a613c973b547c64f3acad1"><td class="memItemLeft" align="right" valign="top">T_CppObject*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a22ed3eb889a613c973b547c64f3acad1">operator-&gt;</a> () const noexcept</td></tr>
<tr class="memdesc:a22ed3eb889a613c973b547c64f3acad1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dereferencing.  <a href="#a22ed3eb889a613c973b547c64f3acad1">More...</a><br /></td></tr>
<tr class="separator:a22ed3eb889a613c973b547c64f3acad1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18040dd7243379ed6689c57c093ad19c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a18040dd7243379ed6689c57c093ad19c">operator bool</a> () const noexcept</td></tr>
<tr class="memdesc:a18040dd7243379ed6689c57c093ad19c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether the RefPtr&lt;&gt; points to any underlying instance.  <a href="#a18040dd7243379ed6689c57c093ad19c">More...</a><br /></td></tr>
<tr class="separator:a18040dd7243379ed6689c57c093ad19c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65770debda718f499a5139a5b68ac5a0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a65770debda718f499a5139a5b68ac5a0">clear</a> () noexcept</td></tr>
<tr class="memdesc:a65770debda718f499a5139a5b68ac5a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set underlying instance to 0, decrementing reference count of existing instance appropriately.  <a href="#a65770debda718f499a5139a5b68ac5a0">More...</a><br /></td></tr>
<tr class="separator:a65770debda718f499a5139a5b68ac5a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:acc2da15e27dc2564743e8e3f874747a5"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:acc2da15e27dc2564743e8e3f874747a5"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#acc2da15e27dc2564743e8e3f874747a5">cast_dynamic</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:acc2da15e27dc2564743e8e3f874747a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic cast to derived class.  <a href="#acc2da15e27dc2564743e8e3f874747a5">More...</a><br /></td></tr>
<tr class="separator:acc2da15e27dc2564743e8e3f874747a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f9cbc71098a24c46b4cce772f0311e1"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a9f9cbc71098a24c46b4cce772f0311e1"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a9f9cbc71098a24c46b4cce772f0311e1">cast_static</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a9f9cbc71098a24c46b4cce772f0311e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static cast to derived class.  <a href="#a9f9cbc71098a24c46b4cce772f0311e1">More...</a><br /></td></tr>
<tr class="separator:a9f9cbc71098a24c46b4cce772f0311e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a694be61d7f4838e75d31df09c49a63ea"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a694be61d7f4838e75d31df09c49a63ea"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classCairo_1_1RefPtr.html#a694be61d7f4838e75d31df09c49a63ea">cast_const</a> (const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a694be61d7f4838e75d31df09c49a63ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast to non-const.  <a href="#a694be61d7f4838e75d31df09c49a63ea">More...</a><br /></td></tr>
<tr class="separator:a694be61d7f4838e75d31df09c49a63ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T_CppObject&gt;<br />
class Cairo::RefPtr&lt; T_CppObject &gt;</h3>

<p>RefPtr&lt;&gt; is a reference-counting shared smartpointer. </p>
<p>Reference counting means that a shared reference count is incremented each time a <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> is copied, and decremented each time a <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> is destroyed, for instance when it leaves its scope. When the reference count reaches zero, the contained object is deleted</p>
<p>cairomm uses <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> so that you don't need to remember to delete the object explicitly, or know when a method expects you to delete the object that it returns, and to prevent any need to manually reference and unreference() cairo objects. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="user-font_8cc-example.html#_a1">user-font.cc</a>.</dd>
</dl></div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="ad818ee4774212dbd29112e39e101198e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default constructor. </p>
<p>Afterwards it will be null and use of -&gt; will cause a segmentation fault. </p>

</div>
</div>
<a class="anchor" id="a7449c6c42857a06c601a7564a403ad9a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::~<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor - decrements reference count. </p>

</div>
</div>
<a class="anchor" id="a61ee3e164f0a7248e5b22fe2cf1e74b4"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">T_CppObject *&#160;</td>
          <td class="paramname"><em>pCppObject</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For use only in the internal implementation of cairomm, gtkmm, etc. </p>
<p>This takes ownership of <em>pCppObject</em>, so it will be deleted when the last <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> is deleted, for instance when it goes out of scope.</p>
<p>This assumes that <em>pCppObject</em> already has a starting reference for its underlying cairo object, so that destruction of <em></em>  will cause a corresponding unreference of its underlying cairo object. For instance, a cairo_*_create() function usually provides a starting reference, but a cairo_*_get_*() function requires the caller to manually reference the returned object. In this case, you should call reference() on <em>pCppObject</em> before passing it to this constructor. </p>

</div>
</div>
<a class="anchor" id="a9571e746dcf28b99e2e51ebae0fb35a1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">T_CppObject *&#160;</td>
          <td class="paramname"><em>pCppObject</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>refcount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>For use only in the internal implementation of sharedptr. </p>

</div>
</div>
<a class="anchor" id="a33be2213aa14b184a8c2c6477ae6ce3c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Move constructor. </p>

</div>
</div>
<a class="anchor" id="a8d2a9e0461793104b51efbef7f73d355"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Move constructor (from different, but castable type). </p>

</div>
</div>
<a class="anchor" id="a41f1ceed87262d3148b1797c526d788a"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy constructor. </p>
<p>This increments the shared reference count. </p>

</div>
</div>
<a class="anchor" id="a942f1d647bfccfda787fd70751ab1832"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy constructor (from different, but castable type). </p>
<p>Increments the reference count. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a694be61d7f4838e75d31df09c49a63ea"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::cast_const </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cast to non-const. </p>
<p>The <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> can't be cast with the usual notation so instead you can use </p><div class="fragment"><div class="line">ptr_unconst = <a class="code" href="classCairo_1_1RefPtr.html#a694be61d7f4838e75d31df09c49a63ea">RefPtr&lt;UnConstType&gt;::cast_const</a>(ptr_const);</div>
</div><!-- fragment --> 
</div>
</div>
<a class="anchor" id="acc2da15e27dc2564743e8e3f874747a5"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::cast_dynamic </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Dynamic cast to derived class. </p>
<p>The <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> can't be cast with the usual notation so instead you can use </p><div class="fragment"><div class="line">ptr_derived = <a class="code" href="classCairo_1_1RefPtr.html#acc2da15e27dc2564743e8e3f874747a5">RefPtr&lt;Derived&gt;::cast_dynamic</a>(ptr_base);</div>
</div><!-- fragment --> 
</div>
</div>
<a class="anchor" id="a9f9cbc71098a24c46b4cce772f0311e1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::cast_static </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Static cast to derived class. </p>
<p>Like the dynamic cast; the notation is </p><div class="fragment"><div class="line">ptr_derived = <a class="code" href="classCairo_1_1RefPtr.html#a9f9cbc71098a24c46b4cce772f0311e1">RefPtr&lt;Derived&gt;::cast_static</a>(ptr_base);</div>
</div><!-- fragment --> 
</div>
</div>
<a class="anchor" id="a65770debda718f499a5139a5b68ac5a0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Set underlying instance to 0, decrementing reference count of existing instance appropriately. </p>

</div>
</div>
<a class="anchor" id="a18040dd7243379ed6689c57c093ad19c"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator bool </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Test whether the RefPtr&lt;&gt; points to any underlying instance. </p>
<p>Mimics usage of ordinary pointers: </p><div class="fragment"><div class="line"><span class="keywordflow">if</span> (ptr)</div>
<div class="line">  do_something();</div>
</div><!-- fragment --> 
</div>
</div>
<a class="anchor" id="a6374fdf5a0c78115afa0567b7b2c1731"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::<a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01656.html#gac4373547895ec9df9035719b38a2621a">operator!</a>= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>See <a class="el" href="classCairo_1_1RefPtr.html#a6bc4844686505c04065879ede5c325f0" title="Tests whether the RefPtr<> point to the same underlying instance. ">operator==()</a>. </p>

</div>
</div>
<a class="anchor" id="a22ed3eb889a613c973b547c64f3acad1"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">T_CppObject* <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator-&gt; </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Dereferencing. </p>
<p>Use the methods of the underlying instance like so: <code>refptr-&gt;memberfun()</code>. </p>

</div>
</div>
<a class="anchor" id="ae7ce66d31ad318da6bc33e2b254f223e"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt;&amp; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy from another <a class="el" href="classCairo_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a>: </p>

</div>
</div>
<a class="anchor" id="a10e520853f23ce4f0a72f48055719ed7"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt;T_CppObject&gt;&amp; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copy from different, but castable type). </p>
<p>Increments the reference count. </p>

</div>
</div>
<a class="anchor" id="ab5759ac29a870acd77de7965dc89a430"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&amp; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Move assignment operator: </p>

</div>
</div>
<a class="anchor" id="a3ea385c344eaf95f5a912bf08d1fc392"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<div class="memtemplate">
template &lt;class T_CastFrom &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&amp; <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Move assignment operator (from different, but castable type): </p>

</div>
</div>
<a class="anchor" id="a6bc4844686505c04065879ede5c325f0"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>src</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Tests whether the RefPtr&lt;&gt; point to the same underlying instance. </p>

</div>
</div>
<a class="anchor" id="ae60f24b9b0751786b78d83962f1312a2"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template &lt;class T_CppObject&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classCairo_1_1RefPtr.html">Cairo::RefPtr</a>&lt; T_CppObject &gt;::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classCairo_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Swap the contents of two RefPtr&lt;&gt;. </p>
<p>This method swaps the internal pointers to T_CppObject. This can be done safely without involving a reference/unreference cycle and is therefore highly efficient. </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>cairomm/refptr.h</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Mon Sep 21 2015 21:56:36 for cairomm by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.9.1
</small></address>
</body>
</html>