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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>glibmm: Glib::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" />
<link href="doxygen-extra.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 id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">glibmm
   &#160;<span id="projectnumber">2.56.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespaceGlib.html">Glib</a></li><li class="navelem"><a class="el" href="classGlib_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="#related">Related Functions</a> &#124;
<a href="classGlib_1_1RefPtr-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">Glib::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="classGlib_1_1RefPtr.html#details">More...</a></p>

<p><code>#include &lt;glibmm/refptr.h&gt;</code></p>
<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:a6480d43dd798b464a891512a009941db"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a6480d43dd798b464a891512a009941db">RefPtr</a> () noexcept</td></tr>
<tr class="memdesc:a6480d43dd798b464a891512a009941db"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a6480d43dd798b464a891512a009941db">More...</a><br /></td></tr>
<tr class="separator:a6480d43dd798b464a891512a009941db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54f4e0a8d9e9c43f24401b2f6b86a603"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a54f4e0a8d9e9c43f24401b2f6b86a603">~RefPtr</a> () noexcept</td></tr>
<tr class="memdesc:a54f4e0a8d9e9c43f24401b2f6b86a603"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor - decrements reference count.  <a href="#a54f4e0a8d9e9c43f24401b2f6b86a603">More...</a><br /></td></tr>
<tr class="separator:a54f4e0a8d9e9c43f24401b2f6b86a603"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acdf73e61308125396b52a2958e12f95c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#acdf73e61308125396b52a2958e12f95c">RefPtr</a> (T_CppObject* pCppObject) noexcept</td></tr>
<tr class="memdesc:acdf73e61308125396b52a2958e12f95c"><td class="mdescLeft">&#160;</td><td class="mdescRight">For use only by the ::create() methods.  <a href="#acdf73e61308125396b52a2958e12f95c">More...</a><br /></td></tr>
<tr class="separator:acdf73e61308125396b52a2958e12f95c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a195df4e7f4920b6b5551cd60a01cfd6a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a195df4e7f4920b6b5551cd60a01cfd6a">RefPtr</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; src) noexcept</td></tr>
<tr class="memdesc:a195df4e7f4920b6b5551cd60a01cfd6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor.  <a href="#a195df4e7f4920b6b5551cd60a01cfd6a">More...</a><br /></td></tr>
<tr class="separator:a195df4e7f4920b6b5551cd60a01cfd6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d76f021d8ccf4007677fb8e89d52e55"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a5d76f021d8ccf4007677fb8e89d52e55">RefPtr</a> (<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp;&amp; src) noexcept</td></tr>
<tr class="memdesc:a5d76f021d8ccf4007677fb8e89d52e55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor.  <a href="#a5d76f021d8ccf4007677fb8e89d52e55">More...</a><br /></td></tr>
<tr class="separator:a5d76f021d8ccf4007677fb8e89d52e55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1902543f0fd5d8452f8d5b981c3c67c3"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a1902543f0fd5d8452f8d5b981c3c67c3"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a1902543f0fd5d8452f8d5b981c3c67c3">RefPtr</a> (<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&amp; src) noexcept</td></tr>
<tr class="memdesc:a1902543f0fd5d8452f8d5b981c3c67c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor (from different, but castable type).  <a href="#a1902543f0fd5d8452f8d5b981c3c67c3">More...</a><br /></td></tr>
<tr class="separator:a1902543f0fd5d8452f8d5b981c3c67c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82f11c3a103d408bec0e5d5b4ce82d2f"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a82f11c3a103d408bec0e5d5b4ce82d2f"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a82f11c3a103d408bec0e5d5b4ce82d2f">RefPtr</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a82f11c3a103d408bec0e5d5b4ce82d2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor (from different, but castable type).  <a href="#a82f11c3a103d408bec0e5d5b4ce82d2f">More...</a><br /></td></tr>
<tr class="separator:a82f11c3a103d408bec0e5d5b4ce82d2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f4b6aa7e32da1ddd23b62ec1cd5612a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a9f4b6aa7e32da1ddd23b62ec1cd5612a">swap</a> (<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; other) noexcept</td></tr>
<tr class="memdesc:a9f4b6aa7e32da1ddd23b62ec1cd5612a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swap the contents of two RefPtr&lt;&gt;.  <a href="#a9f4b6aa7e32da1ddd23b62ec1cd5612a">More...</a><br /></td></tr>
<tr class="separator:a9f4b6aa7e32da1ddd23b62ec1cd5612a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad86e607d719edad0e299ad35280b0e0a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#ad86e607d719edad0e299ad35280b0e0a">operator=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; src) noexcept</td></tr>
<tr class="memdesc:ad86e607d719edad0e299ad35280b0e0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy from another <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer. ">RefPtr</a>:  <a href="#ad86e607d719edad0e299ad35280b0e0a">More...</a><br /></td></tr>
<tr class="separator:ad86e607d719edad0e299ad35280b0e0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77136312c9be3da471c180a1ea748789"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a77136312c9be3da471c180a1ea748789">operator=</a> (<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp;&amp; src) noexcept</td></tr>
<tr class="memdesc:a77136312c9be3da471c180a1ea748789"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator:  <a href="#a77136312c9be3da471c180a1ea748789">More...</a><br /></td></tr>
<tr class="separator:a77136312c9be3da471c180a1ea748789"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab71bdf6723f7579f161e166b10fe3a27"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:ab71bdf6723f7579f161e166b10fe3a27"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#ab71bdf6723f7579f161e166b10fe3a27">operator=</a> (<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp;&amp; src) noexcept</td></tr>
<tr class="memdesc:ab71bdf6723f7579f161e166b10fe3a27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator (from different, but castable type):  <a href="#ab71bdf6723f7579f161e166b10fe3a27">More...</a><br /></td></tr>
<tr class="separator:ab71bdf6723f7579f161e166b10fe3a27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0cf223b2b86f13d6979d70af585fdb54"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a0cf223b2b86f13d6979d70af585fdb54"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a0cf223b2b86f13d6979d70af585fdb54">operator=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a0cf223b2b86f13d6979d70af585fdb54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy from different, but castable type.  <a href="#a0cf223b2b86f13d6979d70af585fdb54">More...</a><br /></td></tr>
<tr class="separator:a0cf223b2b86f13d6979d70af585fdb54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31836a72b774062f41f31e183b1e8b3e"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a31836a72b774062f41f31e183b1e8b3e">operator==</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; src) const noexcept</td></tr>
<tr class="memdesc:a31836a72b774062f41f31e183b1e8b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Tests whether the RefPtr&lt;&gt; point to the same underlying instance.  <a href="#a31836a72b774062f41f31e183b1e8b3e">More...</a><br /></td></tr>
<tr class="separator:a31836a72b774062f41f31e183b1e8b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade68fc2a3cdb54e51b0f136aee95c074"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#ade68fc2a3cdb54e51b0f136aee95c074">operator!=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; src) const noexcept</td></tr>
<tr class="memdesc:ade68fc2a3cdb54e51b0f136aee95c074"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classGlib_1_1RefPtr.html#a31836a72b774062f41f31e183b1e8b3e" title="Tests whether the RefPtr&lt;&gt; point to the same underlying instance. ">operator==()</a>.  <a href="#ade68fc2a3cdb54e51b0f136aee95c074">More...</a><br /></td></tr>
<tr class="separator:ade68fc2a3cdb54e51b0f136aee95c074"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ed0dc52f9d3281c68411464873b7e70"><td class="memItemLeft" align="right" valign="top">T_CppObject*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a3ed0dc52f9d3281c68411464873b7e70">operator-&gt;</a> () const noexcept</td></tr>
<tr class="memdesc:a3ed0dc52f9d3281c68411464873b7e70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dereferencing.  <a href="#a3ed0dc52f9d3281c68411464873b7e70">More...</a><br /></td></tr>
<tr class="separator:a3ed0dc52f9d3281c68411464873b7e70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70e4b28aa8c0d43b471725b7d537b254"><td class="memItemLeft" align="right" valign="top">T_CppObject*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a70e4b28aa8c0d43b471725b7d537b254">get</a> () const noexcept</td></tr>
<tr class="memdesc:a70e4b28aa8c0d43b471725b7d537b254"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the stored pointer.  <a href="#a70e4b28aa8c0d43b471725b7d537b254">More...</a><br /></td></tr>
<tr class="separator:a70e4b28aa8c0d43b471725b7d537b254"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3380c5bf96be5865902c7d083c59cd69"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a3380c5bf96be5865902c7d083c59cd69">operator bool</a> () const noexcept</td></tr>
<tr class="memdesc:a3380c5bf96be5865902c7d083c59cd69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Test whether the RefPtr&lt;&gt; points to any underlying instance.  <a href="#a3380c5bf96be5865902c7d083c59cd69">More...</a><br /></td></tr>
<tr class="separator:a3380c5bf96be5865902c7d083c59cd69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a25a4af311f73f168683043f1f61768a4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a25a4af311f73f168683043f1f61768a4">clear</a> () noexcept</td></tr>
<tr class="separator:a25a4af311f73f168683043f1f61768a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3f3ef5f5246d813f3094a2b24765414"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#ad3f3ef5f5246d813f3094a2b24765414">reset</a> () noexcept</td></tr>
<tr class="memdesc:ad3f3ef5f5246d813f3094a2b24765414"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set underlying instance to nullptr, decrementing reference count of existing instance appropriately.  <a href="#ad3f3ef5f5246d813f3094a2b24765414">More...</a><br /></td></tr>
<tr class="separator:ad3f3ef5f5246d813f3094a2b24765414"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2f478f3642aa47734b72a0ff02f00c40"><td class="memItemLeft" align="right" valign="top">T_CppObject*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a2f478f3642aa47734b72a0ff02f00c40">release</a> () noexcept G_GNUC_WARN_UNUSED_RESULT</td></tr>
<tr class="memdesc:a2f478f3642aa47734b72a0ff02f00c40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release the ownership of underlying instance.  <a href="#a2f478f3642aa47734b72a0ff02f00c40">More...</a><br /></td></tr>
<tr class="separator:a2f478f3642aa47734b72a0ff02f00c40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afedfc8b62d3a6b9f98491ddb78a646dd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#afedfc8b62d3a6b9f98491ddb78a646dd">operator&lt;</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; src) const noexcept</td></tr>
<tr class="memdesc:afedfc8b62d3a6b9f98491ddb78a646dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compare based on the underlying instance address.  <a href="#afedfc8b62d3a6b9f98491ddb78a646dd">More...</a><br /></td></tr>
<tr class="separator:afedfc8b62d3a6b9f98491ddb78a646dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1cc644501088568bc1bdc7d5e7bb437f"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a1cc644501088568bc1bdc7d5e7bb437f">operator&lt;=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; src) const noexcept</td></tr>
<tr class="memdesc:a1cc644501088568bc1bdc7d5e7bb437f"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classGlib_1_1RefPtr.html#afedfc8b62d3a6b9f98491ddb78a646dd" title="Compare based on the underlying instance address. ">operator&lt;()</a>.  <a href="#a1cc644501088568bc1bdc7d5e7bb437f">More...</a><br /></td></tr>
<tr class="separator:a1cc644501088568bc1bdc7d5e7bb437f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a598238b539c0c8411984d125b968fd34"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a598238b539c0c8411984d125b968fd34">operator&gt;</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; src) const noexcept</td></tr>
<tr class="memdesc:a598238b539c0c8411984d125b968fd34"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classGlib_1_1RefPtr.html#afedfc8b62d3a6b9f98491ddb78a646dd" title="Compare based on the underlying instance address. ">operator&lt;()</a>.  <a href="#a598238b539c0c8411984d125b968fd34">More...</a><br /></td></tr>
<tr class="separator:a598238b539c0c8411984d125b968fd34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3e00dd7fc7088b47323b8eeb86373e3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#af3e00dd7fc7088b47323b8eeb86373e3">operator&gt;=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&amp; src) const noexcept</td></tr>
<tr class="memdesc:af3e00dd7fc7088b47323b8eeb86373e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">See <a class="el" href="classGlib_1_1RefPtr.html#afedfc8b62d3a6b9f98491ddb78a646dd" title="Compare based on the underlying instance address. ">operator&lt;()</a>.  <a href="#af3e00dd7fc7088b47323b8eeb86373e3">More...</a><br /></td></tr>
<tr class="separator:af3e00dd7fc7088b47323b8eeb86373e3"><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:afba688c406f0c3d1239c6b7c3716c1de"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:afba688c406f0c3d1239c6b7c3716c1de"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#afba688c406f0c3d1239c6b7c3716c1de">cast_dynamic</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:afba688c406f0c3d1239c6b7c3716c1de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dynamic cast to derived class.  <a href="#afba688c406f0c3d1239c6b7c3716c1de">More...</a><br /></td></tr>
<tr class="separator:afba688c406f0c3d1239c6b7c3716c1de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ef4c5010a46d48ef7d3ed44bd64031e"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a4ef4c5010a46d48ef7d3ed44bd64031e"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a4ef4c5010a46d48ef7d3ed44bd64031e">cast_static</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a4ef4c5010a46d48ef7d3ed44bd64031e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Static cast to derived class.  <a href="#a4ef4c5010a46d48ef7d3ed44bd64031e">More...</a><br /></td></tr>
<tr class="separator:a4ef4c5010a46d48ef7d3ed44bd64031e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a854e9e27c1a76cfc47a97aca5d1598"><td class="memTemplParams" colspan="2">template&lt;class T_CastFrom &gt; </td></tr>
<tr class="memitem:a8a854e9e27c1a76cfc47a97aca5d1598"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a8a854e9e27c1a76cfc47a97aca5d1598">cast_const</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CastFrom &gt;&amp; src) noexcept</td></tr>
<tr class="memdesc:a8a854e9e27c1a76cfc47a97aca5d1598"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cast to non-const.  <a href="#a8a854e9e27c1a76cfc47a97aca5d1598">More...</a><br /></td></tr>
<tr class="separator:a8a854e9e27c1a76cfc47a97aca5d1598"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="related"></a>
Related Functions</h2></td></tr>
<tr><td class="ititle" colspan="2"><p>(Note that these are not member functions.) </p>
</td></tr>
<tr class="memitem:a969a3c44b0fe4be9882890ba3e41ebfd"><td class="memTemplParams" colspan="2">template&lt;class T_CppObject &gt; </td></tr>
<tr class="memitem:a969a3c44b0fe4be9882890ba3e41ebfd"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a969a3c44b0fe4be9882890ba3e41ebfd">swap</a> (<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; lhs, <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp; rhs) noexcept</td></tr>
<tr class="separator:a969a3c44b0fe4be9882890ba3e41ebfd"><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 Glib::RefPtr&lt; T_CppObject &gt;</h3>

<p>RefPtr&lt;&gt; is a reference-counting shared smartpointer. </p>
<p>Some objects in gtkmm are obtained from a shared store. Consequently you cannot instantiate them yourself. Instead they return a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer. ">RefPtr</a> which behaves much like an ordinary pointer in that members can be reached with the usual <code>object_ptr-&gt;member</code> notation. Unlike most other smart pointers, <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer. ">RefPtr</a> doesn't support dereferencing through <code>* object_ptr</code>.</p>
<p>Reference counting means that a shared reference count is incremented each time a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer. ">RefPtr</a> is copied, and decremented each time a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; 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, meaning you don't need to remember to delete the object.</p>
<p>RefPtr&lt;&gt; can store any class that has reference() and unreference() methods, and whose destructor is noexcept (the default for destructors). In gtkmm, that is anything derived from <a class="el" href="classGlib_1_1ObjectBase.html" title="Glib::ObjectBase is a common base class for Objects and Interfaces. ">Glib::ObjectBase</a>, such as Gdk::Pixbuf.</p>
<p>See the "Memory Management" section in the "Programming with gtkmm" book for further information. </p>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="thread_2dispatcher_8cc-example.html#_a5">thread/dispatcher.cc</a>.</dd>
</dl></div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a6480d43dd798b464a891512a009941db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6480d43dd798b464a891512a009941db">&#9670;&#160;</a></span>RefPtr() <span class="overload">[1/6]</span></h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classGlib_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 invoke undefined behaviour. </p>

</div>
</div>
<a id="a54f4e0a8d9e9c43f24401b2f6b86a603"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54f4e0a8d9e9c43f24401b2f6b86a603">&#9670;&#160;</a></span>~RefPtr()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::~<a class="el" href="classGlib_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 id="acdf73e61308125396b52a2958e12f95c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acdf73e61308125396b52a2958e12f95c">&#9670;&#160;</a></span>RefPtr() <span class="overload">[2/6]</span></h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classGlib_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 by the ::create() methods. </p>

</div>
</div>
<a id="a195df4e7f4920b6b5551cd60a01cfd6a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a195df4e7f4920b6b5551cd60a01cfd6a">&#9670;&#160;</a></span>RefPtr() <span class="overload">[3/6]</span></h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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 id="a5d76f021d8ccf4007677fb8e89d52e55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d76f021d8ccf4007677fb8e89d52e55">&#9670;&#160;</a></span>RefPtr() <span class="overload">[4/6]</span></h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classGlib_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 id="a1902543f0fd5d8452f8d5b981c3c67c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1902543f0fd5d8452f8d5b981c3c67c3">&#9670;&#160;</a></span>RefPtr() <span class="overload">[5/6]</span></h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classGlib_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 id="a82f11c3a103d408bec0e5d5b4ce82d2f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82f11c3a103d408bec0e5d5b4ce82d2f">&#9670;&#160;</a></span>RefPtr() <span class="overload">[6/6]</span></h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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 id="a8a854e9e27c1a76cfc47a97aca5d1598"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a854e9e27c1a76cfc47a97aca5d1598">&#9670;&#160;</a></span>cast_const()</h2>

<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="classGlib_1_1RefPtr.html">RefPtr</a> <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::cast_const </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; 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="classGlib_1_1RefPtr.html#a8a854e9e27c1a76cfc47a97aca5d1598">RefPtr&lt;UnConstType&gt;::cast_const</a>(ptr_const);</div></div><!-- fragment --> 
</div>
</div>
<a id="afba688c406f0c3d1239c6b7c3716c1de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afba688c406f0c3d1239c6b7c3716c1de">&#9670;&#160;</a></span>cast_dynamic()</h2>

<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="classGlib_1_1RefPtr.html">RefPtr</a> <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::cast_dynamic </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; 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="classGlib_1_1RefPtr.html#afba688c406f0c3d1239c6b7c3716c1de">RefPtr&lt;Derived&gt;::cast_dynamic</a>(ptr_base);</div></div><!-- fragment --> 
</div>
</div>
<a id="a4ef4c5010a46d48ef7d3ed44bd64031e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ef4c5010a46d48ef7d3ed44bd64031e">&#9670;&#160;</a></span>cast_static()</h2>

<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="classGlib_1_1RefPtr.html">RefPtr</a> <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::cast_static </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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="classGlib_1_1RefPtr.html#a4ef4c5010a46d48ef7d3ed44bd64031e">RefPtr&lt;Derived&gt;::cast_static</a>(ptr_base);</div></div><!-- fragment --> 
</div>
</div>
<a id="a25a4af311f73f168683043f1f61768a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a25a4af311f73f168683043f1f61768a4">&#9670;&#160;</a></span>clear()</h2>

<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="classGlib_1_1RefPtr.html">Glib::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">
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000069">Deprecated:</a></b></dt><dd>Use <a class="el" href="classGlib_1_1RefPtr.html#ad3f3ef5f5246d813f3094a2b24765414" title="Set underlying instance to nullptr, decrementing reference count of existing instance appropriately...">reset()</a> instead because this leads to confusion with <a class="el" href="classGlib_1_1RefPtr.html#a25a4af311f73f168683043f1f61768a4">clear()</a> methods on the underlying class.</dd></dl>
<p>For instance, people use .<a class="el" href="classGlib_1_1RefPtr.html#a25a4af311f73f168683043f1f61768a4">clear()</a> when they mean -&gt;<a class="el" href="classGlib_1_1RefPtr.html#a25a4af311f73f168683043f1f61768a4">clear()</a>. </p>

</div>
</div>
<a id="a70e4b28aa8c0d43b471725b7d537b254"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70e4b28aa8c0d43b471725b7d537b254">&#9670;&#160;</a></span>get()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::get </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>Returns the stored pointer. </p>
<dl class="since_2_56"><dt><b><a class="el" href="since_2_56.html#_since_2_56000003">Since glibmm 2.56:</a></b></dt><dd></dd></dl>

</div>
</div>
<a id="a3380c5bf96be5865902c7d083c59cd69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3380c5bf96be5865902c7d083c59cd69">&#9670;&#160;</a></span>operator bool()</h2>

<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="classGlib_1_1RefPtr.html">Glib::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">explicit</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 id="ade68fc2a3cdb54e51b0f136aee95c074"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade68fc2a3cdb54e51b0f136aee95c074">&#9670;&#160;</a></span>operator!=()</h2>

<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="classGlib_1_1RefPtr.html">Glib::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="classGlib_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="classGlib_1_1RefPtr.html#a31836a72b774062f41f31e183b1e8b3e" title="Tests whether the RefPtr&lt;&gt; point to the same underlying instance. ">operator==()</a>. </p>

</div>
</div>
<a id="a3ed0dc52f9d3281c68411464873b7e70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ed0dc52f9d3281c68411464873b7e70">&#9670;&#160;</a></span>operator->()</h2>

<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="classGlib_1_1RefPtr.html">Glib::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 id="afedfc8b62d3a6b9f98491ddb78a646dd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afedfc8b62d3a6b9f98491ddb78a646dd">&#9670;&#160;</a></span>operator<()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator&lt; </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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>Compare based on the underlying instance address. </p>
<p>This is needed in code that requires an ordering on RefPtr&lt;T_CppObject&gt; instances, e.g. <a class="elRef" doxygen="libstdc++.tag:http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a00914.html">std::set</a>&lt;RefPtr&lt;T_CppObject&gt; &gt;.</p>
<p>Without these, comparing two RefPtr&lt;T_CppObject&gt; instances is still syntactically possible, but the result is semantically wrong, as p1 REL_OP p2 is interpreted as (bool)p1 REL_OP (bool)p2. </p>

</div>
</div>
<a id="a1cc644501088568bc1bdc7d5e7bb437f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1cc644501088568bc1bdc7d5e7bb437f">&#9670;&#160;</a></span>operator<=()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator&lt;= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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="classGlib_1_1RefPtr.html#afedfc8b62d3a6b9f98491ddb78a646dd" title="Compare based on the underlying instance address. ">operator&lt;()</a>. </p>

</div>
</div>
<a id="ad86e607d719edad0e299ad35280b0e0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad86e607d719edad0e299ad35280b0e0a">&#9670;&#160;</a></span>operator=() <span class="overload">[1/4]</span></h2>

<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="classGlib_1_1RefPtr.html">RefPtr</a>&amp; <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer. ">RefPtr</a>: </p>

</div>
</div>
<a id="a77136312c9be3da471c180a1ea748789"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77136312c9be3da471c180a1ea748789">&#9670;&#160;</a></span>operator=() <span class="overload">[2/4]</span></h2>

<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="classGlib_1_1RefPtr.html">RefPtr</a>&amp; <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classGlib_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 id="ab71bdf6723f7579f161e166b10fe3a27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab71bdf6723f7579f161e166b10fe3a27">&#9670;&#160;</a></span>operator=() <span class="overload">[3/4]</span></h2>

<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="classGlib_1_1RefPtr.html">RefPtr</a>&amp; <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classGlib_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 id="a0cf223b2b86f13d6979d70af585fdb54"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0cf223b2b86f13d6979d70af585fdb54">&#9670;&#160;</a></span>operator=() <span class="overload">[4/4]</span></h2>

<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="classGlib_1_1RefPtr.html">RefPtr</a>&amp; <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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 id="a31836a72b774062f41f31e183b1e8b3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a31836a72b774062f41f31e183b1e8b3e">&#9670;&#160;</a></span>operator==()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator== </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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 id="a598238b539c0c8411984d125b968fd34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a598238b539c0c8411984d125b968fd34">&#9670;&#160;</a></span>operator>()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator&gt; </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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="classGlib_1_1RefPtr.html#afedfc8b62d3a6b9f98491ddb78a646dd" title="Compare based on the underlying instance address. ">operator&lt;()</a>. </p>

</div>
</div>
<a id="af3e00dd7fc7088b47323b8eeb86373e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af3e00dd7fc7088b47323b8eeb86373e3">&#9670;&#160;</a></span>operator>=()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::operator&gt;= </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classGlib_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="classGlib_1_1RefPtr.html#afedfc8b62d3a6b9f98491ddb78a646dd" title="Compare based on the underlying instance address. ">operator&lt;()</a>. </p>

</div>
</div>
<a id="a2f478f3642aa47734b72a0ff02f00c40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2f478f3642aa47734b72a0ff02f00c40">&#9670;&#160;</a></span>release()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::release </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>Release the ownership of underlying instance. </p>
<p><a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer. ">RefPtr</a>'s underlying instance is set to nullptr, therefore underlying object can't be accessed through this <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer. ">RefPtr</a> anymore. </p><dl class="section return"><dt>Returns</dt><dd>an underlying instance.</dd></dl>
<p>Most users should not use <a class="el" href="classGlib_1_1RefPtr.html#a2f478f3642aa47734b72a0ff02f00c40" title="Release the ownership of underlying instance. ">release()</a>. It can spoil the automatic destruction of the managed object. A legitimate use is if you immediately give <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr&lt;&gt; is a reference-counting shared smartpointer. ">RefPtr</a>'s reference to another object. </p>

</div>
</div>
<a id="ad3f3ef5f5246d813f3094a2b24765414"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad3f3ef5f5246d813f3094a2b24765414">&#9670;&#160;</a></span>reset()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::reset </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 nullptr, decrementing reference count of existing instance appropriately. </p>
<dl class="since_2_16"><dt><b><a class="el" href="since_2_16.html#_since_2_16000048">Since glibmm 2.16:</a></b></dt><dd></dd></dl>

</div>
</div>
<a id="a9f4b6aa7e32da1ddd23b62ec1cd5612a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f4b6aa7e32da1ddd23b62ec1cd5612a">&#9670;&#160;</a></span>swap()</h2>

<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="classGlib_1_1RefPtr.html">Glib::RefPtr</a>&lt; T_CppObject &gt;::swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classGlib_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>
<h2 class="groupheader">Friends And Related Function Documentation</h2>
<a id="a969a3c44b0fe4be9882890ba3e41ebfd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a969a3c44b0fe4be9882890ba3e41ebfd">&#9670;&#160;</a></span>swap()</h2>

<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 swap </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>lhs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>&lt; T_CppObject &gt;&amp;&#160;</td>
          <td class="paramname"><em>rhs</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">related</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Mar 31 2018 09:12:10 for glibmm by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.13
</small></address>
</body>
</html>