<!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.11"/> <title>glibmm: Glib::RefPtr< T_CppObject > 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  <span id="projectnumber">2.60.0</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.11 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</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 List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </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> | <a href="#pub-static-methods">Static Public Member Functions</a> | <a href="#related">Related Functions</a> | <a href="classGlib_1_1RefPtr-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">Glib::RefPtr< T_CppObject > Class Template Reference</div> </div> </div><!--header--> <div class="contents"> <p>RefPtr<> is a reference-counting shared smartpointer. <a href="classGlib_1_1RefPtr.html#details">More...</a></p> <p><code>#include <glibmm/refptr.h></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"> </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"> </td><td class="mdescRight">Default constructor. <a href="#a6480d43dd798b464a891512a009941db">More...</a><br /></td></tr> <tr class="separator:a6480d43dd798b464a891512a009941db"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a54f4e0a8d9e9c43f24401b2f6b86a603"><td class="memItemLeft" align="right" valign="top"> </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"> </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"> </td></tr> <tr class="memitem:acdf73e61308125396b52a2958e12f95c"><td class="memItemLeft" align="right" valign="top"> </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"> </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"> </td></tr> <tr class="memitem:a195df4e7f4920b6b5551cd60a01cfd6a"><td class="memItemLeft" align="right" valign="top"> </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>& src) noexcept</td></tr> <tr class="memdesc:a195df4e7f4920b6b5551cd60a01cfd6a"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <a href="#a195df4e7f4920b6b5551cd60a01cfd6a">More...</a><br /></td></tr> <tr class="separator:a195df4e7f4920b6b5551cd60a01cfd6a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5d76f021d8ccf4007677fb8e89d52e55"><td class="memItemLeft" align="right" valign="top"> </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>&& src) noexcept</td></tr> <tr class="memdesc:a5d76f021d8ccf4007677fb8e89d52e55"><td class="mdescLeft"> </td><td class="mdescRight">Move constructor. <a href="#a5d76f021d8ccf4007677fb8e89d52e55">More...</a><br /></td></tr> <tr class="separator:a5d76f021d8ccf4007677fb8e89d52e55"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a1902543f0fd5d8452f8d5b981c3c67c3"><td class="memTemplParams" colspan="2">template<class T_CastFrom > </td></tr> <tr class="memitem:a1902543f0fd5d8452f8d5b981c3c67c3"><td class="memTemplItemLeft" align="right" valign="top"> </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>< T_CastFrom >&& src) noexcept</td></tr> <tr class="memdesc:a1902543f0fd5d8452f8d5b981c3c67c3"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a82f11c3a103d408bec0e5d5b4ce82d2f"><td class="memTemplParams" colspan="2">template<class T_CastFrom > </td></tr> <tr class="memitem:a82f11c3a103d408bec0e5d5b4ce82d2f"><td class="memTemplItemLeft" align="right" valign="top"> </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>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:a82f11c3a103d408bec0e5d5b4ce82d2f"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a9f4b6aa7e32da1ddd23b62ec1cd5612a"><td class="memItemLeft" align="right" valign="top">void </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>& other) noexcept</td></tr> <tr class="memdesc:a9f4b6aa7e32da1ddd23b62ec1cd5612a"><td class="mdescLeft"> </td><td class="mdescRight">Swap the contents of two RefPtr<>. <a href="#a9f4b6aa7e32da1ddd23b62ec1cd5612a">More...</a><br /></td></tr> <tr class="separator:a9f4b6aa7e32da1ddd23b62ec1cd5612a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad86e607d719edad0e299ad35280b0e0a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& </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>& src) noexcept</td></tr> <tr class="memdesc:ad86e607d719edad0e299ad35280b0e0a"><td class="mdescLeft"> </td><td class="mdescRight">Copy from another <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> 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"> </td></tr> <tr class="memitem:a77136312c9be3da471c180a1ea748789"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& </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>&& src) noexcept</td></tr> <tr class="memdesc:a77136312c9be3da471c180a1ea748789"><td class="mdescLeft"> </td><td class="mdescRight">Move assignment operator: <a href="#a77136312c9be3da471c180a1ea748789">More...</a><br /></td></tr> <tr class="separator:a77136312c9be3da471c180a1ea748789"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab71bdf6723f7579f161e166b10fe3a27"><td class="memTemplParams" colspan="2">template<class T_CastFrom > </td></tr> <tr class="memitem:ab71bdf6723f7579f161e166b10fe3a27"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& </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>< T_CastFrom >&& src) noexcept</td></tr> <tr class="memdesc:ab71bdf6723f7579f161e166b10fe3a27"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a0cf223b2b86f13d6979d70af585fdb54"><td class="memTemplParams" colspan="2">template<class T_CastFrom > </td></tr> <tr class="memitem:a0cf223b2b86f13d6979d70af585fdb54"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& </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>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:a0cf223b2b86f13d6979d70af585fdb54"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a159633f49c2229d8d69788ac1017fc23"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a159633f49c2229d8d69788ac1017fc23">operator==</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& src) const noexcept</td></tr> <tr class="memdesc:a159633f49c2229d8d69788ac1017fc23"><td class="mdescLeft"> </td><td class="mdescRight">Tests whether the RefPtr<> point to the same underlying instance. <a href="#a159633f49c2229d8d69788ac1017fc23">More...</a><br /></td></tr> <tr class="separator:a159633f49c2229d8d69788ac1017fc23"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8d240107e06c726432d462b485e995a0"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a8d240107e06c726432d462b485e995a0">operator!=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& src) const noexcept</td></tr> <tr class="memdesc:a8d240107e06c726432d462b485e995a0"><td class="mdescLeft"> </td><td class="mdescRight">See <a class="el" href="classGlib_1_1RefPtr.html#a159633f49c2229d8d69788ac1017fc23" title="Tests whether the RefPtr<> point to the same underlying instance. ">operator==()</a>. <a href="#a8d240107e06c726432d462b485e995a0">More...</a><br /></td></tr> <tr class="separator:a8d240107e06c726432d462b485e995a0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a17a0c3541b0b171fd0dcdde64e3ab914"><td class="memItemLeft" align="right" valign="top">T_CppObject* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a17a0c3541b0b171fd0dcdde64e3ab914">operator-></a> () const noexcept</td></tr> <tr class="memdesc:a17a0c3541b0b171fd0dcdde64e3ab914"><td class="mdescLeft"> </td><td class="mdescRight">Dereferencing. <a href="#a17a0c3541b0b171fd0dcdde64e3ab914">More...</a><br /></td></tr> <tr class="separator:a17a0c3541b0b171fd0dcdde64e3ab914"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3d7f0b9640fe34aa99eebc0dfd8d4294"><td class="memItemLeft" align="right" valign="top">T_CppObject* </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a3d7f0b9640fe34aa99eebc0dfd8d4294">get</a> () const noexcept</td></tr> <tr class="memdesc:a3d7f0b9640fe34aa99eebc0dfd8d4294"><td class="mdescLeft"> </td><td class="mdescRight">Returns the stored pointer. <a href="#a3d7f0b9640fe34aa99eebc0dfd8d4294">More...</a><br /></td></tr> <tr class="separator:a3d7f0b9640fe34aa99eebc0dfd8d4294"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a096f2a47d290d32e15210e2835752e33"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a096f2a47d290d32e15210e2835752e33">operator bool</a> () const noexcept</td></tr> <tr class="memdesc:a096f2a47d290d32e15210e2835752e33"><td class="mdescLeft"> </td><td class="mdescRight">Test whether the RefPtr<> points to any underlying instance. <a href="#a096f2a47d290d32e15210e2835752e33">More...</a><br /></td></tr> <tr class="separator:a096f2a47d290d32e15210e2835752e33"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a25a4af311f73f168683043f1f61768a4"><td class="memItemLeft" align="right" valign="top">void </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"> </td></tr> <tr class="memitem:ad3f3ef5f5246d813f3094a2b24765414"><td class="memItemLeft" align="right" valign="top">void </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"> </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"> </td></tr> <tr class="memitem:a2f478f3642aa47734b72a0ff02f00c40"><td class="memItemLeft" align="right" valign="top">T_CppObject* </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"> </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"> </td></tr> <tr class="memitem:a60cc056fa74d0336aa4c2d9e03c0e92e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#a60cc056fa74d0336aa4c2d9e03c0e92e">operator<</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& src) const noexcept</td></tr> <tr class="memdesc:a60cc056fa74d0336aa4c2d9e03c0e92e"><td class="mdescLeft"> </td><td class="mdescRight">Compare based on the underlying instance address. <a href="#a60cc056fa74d0336aa4c2d9e03c0e92e">More...</a><br /></td></tr> <tr class="separator:a60cc056fa74d0336aa4c2d9e03c0e92e"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:af8622fa85e734e28f4d8f655e6547e9d"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#af8622fa85e734e28f4d8f655e6547e9d">operator<=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& src) const noexcept</td></tr> <tr class="memdesc:af8622fa85e734e28f4d8f655e6547e9d"><td class="mdescLeft"> </td><td class="mdescRight">See <a class="el" href="classGlib_1_1RefPtr.html#a60cc056fa74d0336aa4c2d9e03c0e92e" title="Compare based on the underlying instance address. ">operator<()</a>. <a href="#af8622fa85e734e28f4d8f655e6547e9d">More...</a><br /></td></tr> <tr class="separator:af8622fa85e734e28f4d8f655e6547e9d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:afbc968a02714c3eb4f414c56159b14c3"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#afbc968a02714c3eb4f414c56159b14c3">operator></a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& src) const noexcept</td></tr> <tr class="memdesc:afbc968a02714c3eb4f414c56159b14c3"><td class="mdescLeft"> </td><td class="mdescRight">See <a class="el" href="classGlib_1_1RefPtr.html#a60cc056fa74d0336aa4c2d9e03c0e92e" title="Compare based on the underlying instance address. ">operator<()</a>. <a href="#afbc968a02714c3eb4f414c56159b14c3">More...</a><br /></td></tr> <tr class="separator:afbc968a02714c3eb4f414c56159b14c3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aae8fea4cf656d5b65933487e7841bade"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1RefPtr.html#aae8fea4cf656d5b65933487e7841bade">operator>=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>& src) const noexcept</td></tr> <tr class="memdesc:aae8fea4cf656d5b65933487e7841bade"><td class="mdescLeft"> </td><td class="mdescRight">See <a class="el" href="classGlib_1_1RefPtr.html#a60cc056fa74d0336aa4c2d9e03c0e92e" title="Compare based on the underlying instance address. ">operator<()</a>. <a href="#aae8fea4cf656d5b65933487e7841bade">More...</a><br /></td></tr> <tr class="separator:aae8fea4cf656d5b65933487e7841bade"><td class="memSeparator" colspan="2"> </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<class T_CastFrom > </td></tr> <tr class="memitem:afba688c406f0c3d1239c6b7c3716c1de"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a> </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>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:afba688c406f0c3d1239c6b7c3716c1de"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a4ef4c5010a46d48ef7d3ed44bd64031e"><td class="memTemplParams" colspan="2">template<class T_CastFrom > </td></tr> <tr class="memitem:a4ef4c5010a46d48ef7d3ed44bd64031e"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a> </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>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:a4ef4c5010a46d48ef7d3ed44bd64031e"><td class="mdescLeft"> </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"> </td></tr> <tr class="memitem:a8a854e9e27c1a76cfc47a97aca5d1598"><td class="memTemplParams" colspan="2">template<class T_CastFrom > </td></tr> <tr class="memitem:a8a854e9e27c1a76cfc47a97aca5d1598"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a> </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>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:a8a854e9e27c1a76cfc47a97aca5d1598"><td class="mdescLeft"> </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"> </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<class T_CppObject > </td></tr> <tr class="memitem:a969a3c44b0fe4be9882890ba3e41ebfd"><td class="memTemplItemLeft" align="right" valign="top">void </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>< T_CppObject >& lhs, <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& rhs) noexcept</td></tr> <tr class="separator:a969a3c44b0fe4be9882890ba3e41ebfd"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><h3>template<class T_CppObject><br /> class Glib::RefPtr< T_CppObject ></h3> <p>RefPtr<> 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<> 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->member</code> notation. Unlike most other smart pointers, <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> 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<> 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<> 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<> 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 & Destructor Documentation</h2> <a class="anchor" id="a6480d43dd798b464a891512a009941db"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::<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 -> will invoke undefined behaviour. </p> </div> </div> <a class="anchor" id="a54f4e0a8d9e9c43f24401b2f6b86a603"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::~<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 class="anchor" id="acdf73e61308125396b52a2958e12f95c"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::<a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a> </td> <td>(</td> <td class="paramtype">T_CppObject * </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 class="anchor" id="a195df4e7f4920b6b5551cd60a01cfd6a"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::<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>< T_CppObject >& </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="a5d76f021d8ccf4007677fb8e89d52e55"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::<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>< T_CppObject >&& </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="a1902543f0fd5d8452f8d5b981c3c67c3"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </div> <div class="memtemplate"> template <class T_CastFrom > </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>< T_CppObject >::<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>< T_CastFrom >&& </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="a82f11c3a103d408bec0e5d5b4ce82d2f"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </div> <div class="memtemplate"> template <class T_CastFrom > </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>< T_CppObject >::<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>< T_CastFrom >& </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="a8a854e9e27c1a76cfc47a97aca5d1598"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </div> <div class="memtemplate"> template <class T_CastFrom > </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>< T_CppObject >::cast_const </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CastFrom >& </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<> 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<UnConstType>::cast_const</a>(ptr_const);</div></div><!-- fragment --> </div> </div> <a class="anchor" id="afba688c406f0c3d1239c6b7c3716c1de"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </div> <div class="memtemplate"> template <class T_CastFrom > </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>< T_CppObject >::cast_dynamic </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CastFrom >& </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<> 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<Derived>::cast_dynamic</a>(ptr_base);</div></div><!-- fragment --> </div> </div> <a class="anchor" id="a4ef4c5010a46d48ef7d3ed44bd64031e"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </div> <div class="memtemplate"> template <class T_CastFrom > </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>< T_CppObject >::cast_static </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CastFrom >& </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<Derived>::cast_static</a>(ptr_base);</div></div><!-- fragment --> </div> </div> <a class="anchor" id="a25a4af311f73f168683043f1f61768a4"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::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 -><a class="el" href="classGlib_1_1RefPtr.html#a25a4af311f73f168683043f1f61768a4">clear()</a>. </p> </div> </div> <a class="anchor" id="a3d7f0b9640fe34aa99eebc0dfd8d4294"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::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 class="anchor" id="a096f2a47d290d32e15210e2835752e33"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::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<> 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="a8d240107e06c726432d462b485e995a0"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::<a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a01484.html#ga8ae9cabed8e455713324dacd39bedef1">operator!</a>= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& </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#a159633f49c2229d8d69788ac1017fc23" title="Tests whether the RefPtr<> point to the same underlying instance. ">operator==()</a>. </p> </div> </div> <a class="anchor" id="a17a0c3541b0b171fd0dcdde64e3ab914"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::operator-> </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->memberfun()</code>. </p> </div> </div> <a class="anchor" id="a60cc056fa74d0336aa4c2d9e03c0e92e"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::operator< </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& </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<T_CppObject> instances, e.g. <a class="elRef" href="http://gcc.gnu.org/onlinedocs/libstdc++/latest-doxygen/a06732.html">std::set</a><RefPtr<T_CppObject> >.</p> <p>Without these, comparing two RefPtr<T_CppObject> 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 class="anchor" id="af8622fa85e734e28f4d8f655e6547e9d"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::operator<= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& </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#a60cc056fa74d0336aa4c2d9e03c0e92e" title="Compare based on the underlying instance address. ">operator<()</a>. </p> </div> </div> <a class="anchor" id="ad86e607d719edad0e299ad35280b0e0a"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>& <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>< T_CppObject >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& </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<> is a reference-counting shared smartpointer. ">RefPtr</a>: </p> </div> </div> <a class="anchor" id="a77136312c9be3da471c180a1ea748789"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>& <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>< T_CppObject >::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >&& </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="ab71bdf6723f7579f161e166b10fe3a27"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </div> <div class="memtemplate"> template <class T_CastFrom > </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>& <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>< T_CppObject >::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CastFrom >&& </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="a0cf223b2b86f13d6979d70af585fdb54"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </div> <div class="memtemplate"> template <class T_CastFrom > </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>& <a class="el" href="classGlib_1_1RefPtr.html">Glib::RefPtr</a>< T_CppObject >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CastFrom >& </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="a159633f49c2229d8d69788ac1017fc23"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::operator== </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& </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<> point to the same underlying instance. </p> </div> </div> <a class="anchor" id="afbc968a02714c3eb4f414c56159b14c3"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::operator> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& </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#a60cc056fa74d0336aa4c2d9e03c0e92e" title="Compare based on the underlying instance address. ">operator<()</a>. </p> </div> </div> <a class="anchor" id="aae8fea4cf656d5b65933487e7841bade"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::operator>= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& </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#a60cc056fa74d0336aa4c2d9e03c0e92e" title="Compare based on the underlying instance address. ">operator<()</a>. </p> </div> </div> <a class="anchor" id="a2f478f3642aa47734b72a0ff02f00c40"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::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<> 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<> 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<> is a reference-counting shared smartpointer. ">RefPtr</a>'s reference to another object. </p> </div> </div> <a class="anchor" id="ad3f3ef5f5246d813f3094a2b24765414"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::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 class="anchor" id="a9f4b6aa7e32da1ddd23b62ec1cd5612a"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject> </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>< T_CppObject >::swap </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject >& </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<>. </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 class="anchor" id="a969a3c44b0fe4be9882890ba3e41ebfd"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <class T_CppObject > </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>< T_CppObject >& </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>< T_CppObject >& </td> <td class="paramname"><em>rhs</em> </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 Tue Mar 19 2019 09:56:46 for glibmm by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.11 </small></address> </body> </html>