<!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::WeakRef< 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_1WeakRef.html">WeakRef</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_1WeakRef-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">Glib::WeakRef< T_CppObject > Class Template Reference</div> </div> </div><!--header--> <div class="contents"> <p>WeakRef<> is a weak reference smartpointer. <a href="classGlib_1_1WeakRef.html#details">More...</a></p> <p><code>#include <glibmm/weakref.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:a742af0eea71db225a3eee5094df1b4f2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a742af0eea71db225a3eee5094df1b4f2">WeakRef</a> () noexcept</td></tr> <tr class="memdesc:a742af0eea71db225a3eee5094df1b4f2"><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <a href="#a742af0eea71db225a3eee5094df1b4f2">More...</a><br /></td></tr> <tr class="separator:a742af0eea71db225a3eee5094df1b4f2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8115592f075bfec8c7685eba953217b0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a8115592f075bfec8c7685eba953217b0">WeakRef</a> (const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& src) noexcept</td></tr> <tr class="memdesc:a8115592f075bfec8c7685eba953217b0"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor. <a href="#a8115592f075bfec8c7685eba953217b0">More...</a><br /></td></tr> <tr class="separator:a8115592f075bfec8c7685eba953217b0"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a09ca7eab4c191538cdf6eccd2732b2a4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a09ca7eab4c191538cdf6eccd2732b2a4">WeakRef</a> (<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>&& src) noexcept</td></tr> <tr class="memdesc:a09ca7eab4c191538cdf6eccd2732b2a4"><td class="mdescLeft"> </td><td class="mdescRight">Move constructor. <a href="#a09ca7eab4c191538cdf6eccd2732b2a4">More...</a><br /></td></tr> <tr class="separator:a09ca7eab4c191538cdf6eccd2732b2a4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab31785505c6aa1e8a961650d817587f6"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:ab31785505c6aa1e8a961650d817587f6"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#ab31785505c6aa1e8a961650d817587f6">WeakRef</a> (const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:ab31785505c6aa1e8a961650d817587f6"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor from different, but castable type. <a href="#ab31785505c6aa1e8a961650d817587f6">More...</a><br /></td></tr> <tr class="separator:ab31785505c6aa1e8a961650d817587f6"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:adcc3b33861af65d557cb040ba5f6a5ae"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:adcc3b33861af65d557cb040ba5f6a5ae"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#adcc3b33861af65d557cb040ba5f6a5ae">WeakRef</a> (<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CastFrom >&& src) noexcept</td></tr> <tr class="memdesc:adcc3b33861af65d557cb040ba5f6a5ae"><td class="mdescLeft"> </td><td class="mdescRight">Move constructor from different, but castable type. <a href="#adcc3b33861af65d557cb040ba5f6a5ae">More...</a><br /></td></tr> <tr class="separator:adcc3b33861af65d557cb040ba5f6a5ae"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7efd424c72b4273c6c397a2efcf084fd"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:a7efd424c72b4273c6c397a2efcf084fd"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a7efd424c72b4273c6c397a2efcf084fd">WeakRef</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:a7efd424c72b4273c6c397a2efcf084fd"><td class="mdescLeft"> </td><td class="mdescRight">Constructor from a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> of the same or a castable type. <a href="#a7efd424c72b4273c6c397a2efcf084fd">More...</a><br /></td></tr> <tr class="separator:a7efd424c72b4273c6c397a2efcf084fd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a60660d0a2e5de7258a857776d415f4b4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a60660d0a2e5de7258a857776d415f4b4">~WeakRef</a> () noexcept</td></tr> <tr class="memdesc:a60660d0a2e5de7258a857776d415f4b4"><td class="mdescLeft"> </td><td class="mdescRight">Destructor. <a href="#a60660d0a2e5de7258a857776d415f4b4">More...</a><br /></td></tr> <tr class="separator:a60660d0a2e5de7258a857776d415f4b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7563560d6413f05e768ce7e15c771bde"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a7563560d6413f05e768ce7e15c771bde">swap</a> (<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& other) noexcept</td></tr> <tr class="memdesc:a7563560d6413f05e768ce7e15c771bde"><td class="mdescLeft"> </td><td class="mdescRight">Swap the contents of two WeakRef<>. <a href="#a7563560d6413f05e768ce7e15c771bde">More...</a><br /></td></tr> <tr class="separator:a7563560d6413f05e768ce7e15c771bde"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8eebda64905314f007adcf71a7e4f8fc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a8eebda64905314f007adcf71a7e4f8fc">operator=</a> (const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& src) noexcept</td></tr> <tr class="memdesc:a8eebda64905314f007adcf71a7e4f8fc"><td class="mdescLeft"> </td><td class="mdescRight">Copy assignment operator. <a href="#a8eebda64905314f007adcf71a7e4f8fc">More...</a><br /></td></tr> <tr class="separator:a8eebda64905314f007adcf71a7e4f8fc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abfe47f2520e9c7ac73f7c735ca740352"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#abfe47f2520e9c7ac73f7c735ca740352">operator=</a> (<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>&& src) noexcept</td></tr> <tr class="memdesc:abfe47f2520e9c7ac73f7c735ca740352"><td class="mdescLeft"> </td><td class="mdescRight">Move assignment operator. <a href="#abfe47f2520e9c7ac73f7c735ca740352">More...</a><br /></td></tr> <tr class="separator:abfe47f2520e9c7ac73f7c735ca740352"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3f42d24f682e3df01fe5c69bde09fdd4"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:a3f42d24f682e3df01fe5c69bde09fdd4"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a3f42d24f682e3df01fe5c69bde09fdd4">operator=</a> (const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:a3f42d24f682e3df01fe5c69bde09fdd4"><td class="mdescLeft"> </td><td class="mdescRight">Copy assignment from different, but castable type. <a href="#a3f42d24f682e3df01fe5c69bde09fdd4">More...</a><br /></td></tr> <tr class="separator:a3f42d24f682e3df01fe5c69bde09fdd4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a7fe160cb3e8eb76f566c9f2ce52c0db9"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:a7fe160cb3e8eb76f566c9f2ce52c0db9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a7fe160cb3e8eb76f566c9f2ce52c0db9">operator=</a> (<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CastFrom >&& src) noexcept</td></tr> <tr class="memdesc:a7fe160cb3e8eb76f566c9f2ce52c0db9"><td class="mdescLeft"> </td><td class="mdescRight">Move assignment from different, but castable type. <a href="#a7fe160cb3e8eb76f566c9f2ce52c0db9">More...</a><br /></td></tr> <tr class="separator:a7fe160cb3e8eb76f566c9f2ce52c0db9"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abcb6017666ea3c77b86e720df2e7a12f"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:abcb6017666ea3c77b86e720df2e7a12f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#abcb6017666ea3c77b86e720df2e7a12f">operator=</a> (const <a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:abcb6017666ea3c77b86e720df2e7a12f"><td class="mdescLeft"> </td><td class="mdescRight">Assignment from a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> of the same or a castable type. <a href="#abcb6017666ea3c77b86e720df2e7a12f">More...</a><br /></td></tr> <tr class="separator:abcb6017666ea3c77b86e720df2e7a12f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab1356d43f4c4dce15fd8f8c3c8439c04"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#ab1356d43f4c4dce15fd8f8c3c8439c04">operator bool</a> () const noexcept</td></tr> <tr class="memdesc:ab1356d43f4c4dce15fd8f8c3c8439c04"><td class="mdescLeft"> </td><td class="mdescRight">Test whether the WeakRef<> points to any underlying instance. <a href="#ab1356d43f4c4dce15fd8f8c3c8439c04">More...</a><br /></td></tr> <tr class="separator:ab1356d43f4c4dce15fd8f8c3c8439c04"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a8010dc203b523e2e1630f452245e7675"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classGlib_1_1RefPtr.html">RefPtr</a>< T_CppObject > </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a8010dc203b523e2e1630f452245e7675">get</a> () const noexcept</td></tr> <tr class="memdesc:a8010dc203b523e2e1630f452245e7675"><td class="mdescLeft"> </td><td class="mdescRight">Create a strong reference to the underlying object. <a href="#a8010dc203b523e2e1630f452245e7675">More...</a><br /></td></tr> <tr class="separator:a8010dc203b523e2e1630f452245e7675"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:abae8fbb148f48e74f7923f09ffb0b501"><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#abae8fbb148f48e74f7923f09ffb0b501">reset</a> () noexcept</td></tr> <tr class="memdesc:abae8fbb148f48e74f7923f09ffb0b501"><td class="mdescLeft"> </td><td class="mdescRight">Make this <a class="el" href="classGlib_1_1WeakRef.html" title="WeakRef<> is a weak reference smartpointer. ">WeakRef</a> empty. <a href="#abae8fbb148f48e74f7923f09ffb0b501">More...</a><br /></td></tr> <tr class="separator:abae8fbb148f48e74f7923f09ffb0b501"><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:a017ff11f7786e498b10af8e5ffd63427"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:a017ff11f7786e498b10af8e5ffd63427"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a017ff11f7786e498b10af8e5ffd63427">cast_dynamic</a> (const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:a017ff11f7786e498b10af8e5ffd63427"><td class="mdescLeft"> </td><td class="mdescRight">Dynamic cast to derived class. <a href="#a017ff11f7786e498b10af8e5ffd63427">More...</a><br /></td></tr> <tr class="separator:a017ff11f7786e498b10af8e5ffd63427"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ab392bcba7f060fc9f3b012fc263e8f43"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:ab392bcba7f060fc9f3b012fc263e8f43"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#ab392bcba7f060fc9f3b012fc263e8f43">cast_static</a> (const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:ab392bcba7f060fc9f3b012fc263e8f43"><td class="mdescLeft"> </td><td class="mdescRight">Static cast to derived class. <a href="#ab392bcba7f060fc9f3b012fc263e8f43">More...</a><br /></td></tr> <tr class="separator:ab392bcba7f060fc9f3b012fc263e8f43"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a5f04f8d965ab0415048eb30fefe6403c"><td class="memTemplParams" colspan="2">template<typename T_CastFrom > </td></tr> <tr class="memitem:a5f04f8d965ab0415048eb30fefe6403c"><td class="memTemplItemLeft" align="right" valign="top">static <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a5f04f8d965ab0415048eb30fefe6403c">cast_const</a> (const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CastFrom >& src) noexcept</td></tr> <tr class="memdesc:a5f04f8d965ab0415048eb30fefe6403c"><td class="mdescLeft"> </td><td class="mdescRight">Cast to non-const. <a href="#a5f04f8d965ab0415048eb30fefe6403c">More...</a><br /></td></tr> <tr class="separator:a5f04f8d965ab0415048eb30fefe6403c"><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:a1f7be128b20c6f474dc95249cd19de01"><td class="memTemplParams" colspan="2">template<class T_CppObject > </td></tr> <tr class="memitem:a1f7be128b20c6f474dc95249cd19de01"><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classGlib_1_1WeakRef.html#a1f7be128b20c6f474dc95249cd19de01">swap</a> (<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CppObject >& lhs, <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>< T_CppObject >& rhs) noexcept</td></tr> <tr class="memdesc:a1f7be128b20c6f474dc95249cd19de01"><td class="mdescLeft"> </td><td class="mdescRight">Swap the contents of two WeakRef<>. <a href="#a1f7be128b20c6f474dc95249cd19de01">More...</a><br /></td></tr> <tr class="separator:a1f7be128b20c6f474dc95249cd19de01"><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<typename T_CppObject><br /> class Glib::WeakRef< T_CppObject ></h3> <p>WeakRef<> is a weak reference smartpointer. </p> <p><a class="el" href="classGlib_1_1WeakRef.html" title="WeakRef<> is a weak reference smartpointer. ">WeakRef</a> can store a pointer to any class that is 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>, and whose reference() method is noexcept. In glibmm and 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>.</p> <p>Unlike a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a>, a <a class="el" href="classGlib_1_1WeakRef.html" title="WeakRef<> is a weak reference smartpointer. ">WeakRef</a> does not contribute to the reference counting of the underlying object.</p> <dl class="since_2_46"><dt><b><a class="el" href="since_2_46.html#_since_2_46000005">Since glibmm 2.46:</a></b></dt><dd></dd></dl> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a class="anchor" id="a742af0eea71db225a3eee5094df1b4f2"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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>Create an empty weak reference. </p> </div> </div> <a class="anchor" id="a8115592f075bfec8c7685eba953217b0"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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> </div> </div> <a class="anchor" id="a09ca7eab4c191538cdf6eccd2732b2a4"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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="ab31785505c6aa1e8a961650d817587f6"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename T_CastFrom > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a> </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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> </div> </div> <a class="anchor" id="adcc3b33861af65d557cb040ba5f6a5ae"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename T_CastFrom > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a> </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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="a7efd424c72b4273c6c397a2efcf084fd"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename T_CastFrom > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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>Constructor from a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> of the same or a castable type. </p> <p>Create a weak reference from a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> of the same or a castable type. If the <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> references nothing, an empty weak reference will be constructed. </p> </div> </div> <a class="anchor" id="a60660d0a2e5de7258a857776d415f4b4"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::~<a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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. </p> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a class="anchor" id="a5f04f8d965ab0415048eb30fefe6403c"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename 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_1WeakRef.html">WeakRef</a> <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::cast_const </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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_1WeakRef.html" title="WeakRef<> is a weak reference smartpointer. ">WeakRef</a> can't be cast with the usual notation so instead you can use </p><div class="fragment"><div class="line">ptr_nonconst = <a class="code" href="classGlib_1_1WeakRef.html#a5f04f8d965ab0415048eb30fefe6403c">Glib::WeakRef<NonConstType>::cast_const</a>(ptr_const);</div></div><!-- fragment --> </div> </div> <a class="anchor" id="a017ff11f7786e498b10af8e5ffd63427"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename 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_1WeakRef.html">WeakRef</a> <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::cast_dynamic </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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_1WeakRef.html" title="WeakRef<> is a weak reference smartpointer. ">WeakRef</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_1WeakRef.html#a017ff11f7786e498b10af8e5ffd63427">Glib::WeakRef<Derived>::cast_dynamic</a>(ptr_base);</div></div><!-- fragment --> </div> </div> <a class="anchor" id="ab392bcba7f060fc9f3b012fc263e8f43"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename 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_1WeakRef.html">WeakRef</a> <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::cast_static </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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>The <a class="el" href="classGlib_1_1WeakRef.html" title="WeakRef<> is a weak reference smartpointer. ">WeakRef</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_1WeakRef.html#ab392bcba7f060fc9f3b012fc263e8f43">Glib::WeakRef<Derived>::cast_static</a>(ptr_base);</div></div><!-- fragment --> </div> </div> <a class="anchor" id="a8010dc203b523e2e1630f452245e7675"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename 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><T_CppObject> <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</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>Create a strong reference to the underlying object. </p> <p>This is a thread-safe way to acquire a strong reference to the underlying object. If the <a class="el" href="classGlib_1_1WeakRef.html" title="WeakRef<> is a weak reference smartpointer. ">WeakRef</a> is empty, the returned <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> will reference nothing. </p> </div> </div> <a class="anchor" id="ab1356d43f4c4dce15fd8f8c3c8439c04"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</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 WeakRef<> 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 --><p>In a multi-threaded program a <code>true</code> return value can become obsolete at any time, even before the caller has a chance to test it, because the underlying instance may lose its last reference in another thread. Use <a class="el" href="classGlib_1_1WeakRef.html#a8010dc203b523e2e1630f452245e7675" title="Create a strong reference to the underlying object. ">get()</a> if this is not acceptable. </p> </div> </div> <a class="anchor" id="a8eebda64905314f007adcf71a7e4f8fc"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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 assignment operator. </p> </div> </div> <a class="anchor" id="abfe47f2520e9c7ac73f7c735ca740352"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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="a3f42d24f682e3df01fe5c69bde09fdd4"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename T_CastFrom > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::operator= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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 assignment from different, but castable type. </p> </div> </div> <a class="anchor" id="a7fe160cb3e8eb76f566c9f2ce52c0db9"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename T_CastFrom > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::operator= </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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 from different, but castable type. </p> </div> </div> <a class="anchor" id="abcb6017666ea3c77b86e720df2e7a12f"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename T_CppObject > </div> <div class="memtemplate"> template <typename T_CastFrom > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</a>& <a class="el" href="classGlib_1_1WeakRef.html">Glib::WeakRef</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>Assignment from a <a class="el" href="classGlib_1_1RefPtr.html" title="RefPtr<> is a reference-counting shared smartpointer. ">RefPtr</a> of the same or a castable type. </p> </div> </div> <a class="anchor" id="abae8fbb148f48e74f7923f09ffb0b501"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename 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_1WeakRef.html">Glib::WeakRef</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>Make this <a class="el" href="classGlib_1_1WeakRef.html" title="WeakRef<> is a weak reference smartpointer. ">WeakRef</a> empty. </p> </div> </div> <a class="anchor" id="a7563560d6413f05e768ce7e15c771bde"></a> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template <typename 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_1WeakRef.html">Glib::WeakRef</a>< T_CppObject >::swap </td> <td>(</td> <td class="paramtype"><a class="el" href="classGlib_1_1WeakRef.html">WeakRef</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 WeakRef<>. </p> </div> </div> <h2 class="groupheader">Friends And Related Function Documentation</h2> <a class="anchor" id="a1f7be128b20c6f474dc95249cd19de01"></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_1WeakRef.html">WeakRef</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_1WeakRef.html">WeakRef</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"> <p>Swap the contents of two WeakRef<>. </p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Tue Mar 19 2019 09:56:47 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>