<!-- HTML header for doxygen 1.8.8--> <!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="X-UA-Compatible" content="IE=edge"> <!-- For Mobile Devices --> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta name="generator" content="Doxygen 1.8.15"/> <script type="text/javascript" src="jquery.min.js"></script> <title>rttr: rttr::instance Class Reference</title> <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>--> <script type="text/javascript" src="dynsections.js"></script> <link rel = "shortcut icon" type = "image/x-icon" href = "favicon.ico"> <link rel = "stylesheet" href = "fonts/ptsans_regular_macroman/stylesheet.css"> <link rel = "stylesheet" href = "fonts/source_code_pro_regular/stylesheet.css"> <link href="doxygen.css" rel="stylesheet" type="text/css" /> <link href="custom-doxygen.css" rel="stylesheet" type="text/css"/> <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css"> <link rel="stylesheet" href="custom-bootstrap.css"> <script src="bootstrap/js/bootstrap.min.js"></script> <script type="text/javascript" src="doxy-boot.js"></script> </head> <body> <!-- <nav class="navbar navbar-default" role="navigation"> <div class="container"> <div class="navbar-header"> <a class="navbar-brand">rttr 0.9.6</a> </div> </div> </nav> --> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div class="content" id="content"> <div class="container"> <div class="row"> <div class="col-sm-12 panel panel-default" style="padding-bottom: 15px;"> <div style="margin-bottom: 15px;"> <!-- end header part --> <!-- Generated by Doxygen 1.8.15 --> <script type="text/javascript" src="menudata.js"></script> <script type="text/javascript" src="menu.js"></script> <script type="text/javascript"> /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */ $(function() { initMenu('',false,false,'search.php','Search'); }); /* @license-end */</script> <div id="main-nav"></div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespacerttr.html">rttr</a></li><li class="navelem"><a class="el" href="classrttr_1_1instance.html">instance</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="classrttr_1_1instance-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">rttr::instance Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>The <a class="el" href="classrttr_1_1instance.html">instance</a> class is used for forwarding the instance of an object to invoke a <a class="el" href="classrttr_1_1property.html">property</a> or <a class="el" href="classrttr_1_1method.html">method</a>. <a href="classrttr_1_1instance.html#details">More...</a></p> <p><code>#include <<a class="el" href="instance_8h_source.html">instance.h</a>></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:a0cf19f806ca5d41cf2341a08c0c3a38c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#a0cf19f806ca5d41cf2341a08c0c3a38c">instance</a> () noexcept</td></tr> <tr class="memdesc:a0cf19f806ca5d41cf2341a08c0c3a38c"><td class="mdescLeft"> </td><td class="mdescRight">Creates an <a class="el" href="classrttr_1_1instance.html#ad90b995a8f133187e207e8d3429a834f">invalid</a> instance object. <a href="#a0cf19f806ca5d41cf2341a08c0c3a38c">More...</a><br /></td></tr> <tr class="separator:a0cf19f806ca5d41cf2341a08c0c3a38c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aa02e8bb582c3c36c1ff1f854bd1c50c2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#aa02e8bb582c3c36c1ff1f854bd1c50c2">instance</a> (const <a class="el" href="classrttr_1_1variant.html">variant</a> &var) noexcept</td></tr> <tr class="memdesc:aa02e8bb582c3c36c1ff1f854bd1c50c2"><td class="mdescLeft"> </td><td class="mdescRight">Creates an instance object from a <a class="el" href="classrttr_1_1variant.html">variant</a> object. <a href="#aa02e8bb582c3c36c1ff1f854bd1c50c2">More...</a><br /></td></tr> <tr class="separator:aa02e8bb582c3c36c1ff1f854bd1c50c2"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad75edc709129f77b63ac443e05d39616"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#ad75edc709129f77b63ac443e05d39616">instance</a> (const <a class="el" href="classrttr_1_1instance.html">instance</a> &other) noexcept</td></tr> <tr class="memdesc:ad75edc709129f77b63ac443e05d39616"><td class="mdescLeft"> </td><td class="mdescRight">Copy constructor for an instance. <a href="#ad75edc709129f77b63ac443e05d39616">More...</a><br /></td></tr> <tr class="separator:ad75edc709129f77b63ac443e05d39616"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a18411165dd38b7e0bb1e4ad4a8cabb14"><td class="memTemplParams" colspan="2">template<typename T , typename Tp = decay_instance_t<T>> </td></tr> <tr class="memitem:a18411165dd38b7e0bb1e4ad4a8cabb14"><td class="memTemplItemLeft" align="right" valign="top"> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#a18411165dd38b7e0bb1e4ad4a8cabb14">instance</a> (T &data) noexcept</td></tr> <tr class="memdesc:a18411165dd38b7e0bb1e4ad4a8cabb14"><td class="mdescLeft"> </td><td class="mdescRight">Creates an instance object from type <code>T</code>. <a href="#a18411165dd38b7e0bb1e4ad4a8cabb14">More...</a><br /></td></tr> <tr class="separator:a18411165dd38b7e0bb1e4ad4a8cabb14"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ac3a92f3645fff6e9f291712f4ffc79cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrttr_1_1type.html">type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#ac3a92f3645fff6e9f291712f4ffc79cc">get_derived_type</a> () const noexcept</td></tr> <tr class="memdesc:ac3a92f3645fff6e9f291712f4ffc79cc"><td class="mdescLeft"> </td><td class="mdescRight">Returns the most derived type of the hold instance. <a href="#ac3a92f3645fff6e9f291712f4ffc79cc">More...</a><br /></td></tr> <tr class="separator:ac3a92f3645fff6e9f291712f4ffc79cc"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a30c21e0d42b5321878e8e08c07a2a6ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrttr_1_1type.html">type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#a30c21e0d42b5321878e8e08c07a2a6ca">get_type</a> () const noexcept</td></tr> <tr class="memdesc:a30c21e0d42b5321878e8e08c07a2a6ca"><td class="mdescLeft"> </td><td class="mdescRight">Returns the type of the internally hold instance. <a href="#a30c21e0d42b5321878e8e08c07a2a6ca">More...</a><br /></td></tr> <tr class="separator:a30c21e0d42b5321878e8e08c07a2a6ca"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3f97700e6a971a3c2f52d552c6de8892"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrttr_1_1instance.html">instance</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#a3f97700e6a971a3c2f52d552c6de8892">get_wrapped_instance</a> () const noexcept</td></tr> <tr class="memdesc:a3f97700e6a971a3c2f52d552c6de8892"><td class="mdescLeft"> </td><td class="mdescRight">Returns an <a class="el" href="classrttr_1_1instance.html">instance</a> object for the wrapped instance. <a href="#a3f97700e6a971a3c2f52d552c6de8892">More...</a><br /></td></tr> <tr class="separator:a3f97700e6a971a3c2f52d552c6de8892"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad90b995a8f133187e207e8d3429a834f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#ad90b995a8f133187e207e8d3429a834f">is_valid</a> () const noexcept</td></tr> <tr class="memdesc:ad90b995a8f133187e207e8d3429a834f"><td class="mdescLeft"> </td><td class="mdescRight">Returns true when the instance class contains a reference to an object. <a href="#ad90b995a8f133187e207e8d3429a834f">More...</a><br /></td></tr> <tr class="separator:ad90b995a8f133187e207e8d3429a834f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aced57ace1ac8195a46d564c186f4d66a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#aced57ace1ac8195a46d564c186f4d66a">operator bool</a> () const noexcept</td></tr> <tr class="memdesc:aced57ace1ac8195a46d564c186f4d66a"><td class="mdescLeft"> </td><td class="mdescRight">Returns true when the instance class contains a reference to an object. <a href="#aced57ace1ac8195a46d564c186f4d66a">More...</a><br /></td></tr> <tr class="separator:aced57ace1ac8195a46d564c186f4d66a"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:acbd9d9b07b3d59768b92aefb6d6d783a"><td class="memTemplParams" colspan="2">template<typename Target_Type > </td></tr> <tr class="memitem:acbd9d9b07b3d59768b92aefb6d6d783a"><td class="memTemplItemLeft" align="right" valign="top">Target_Type * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classrttr_1_1instance.html#acbd9d9b07b3d59768b92aefb6d6d783a">try_convert</a> () const noexcept</td></tr> <tr class="memdesc:acbd9d9b07b3d59768b92aefb6d6d783a"><td class="mdescLeft"> </td><td class="mdescRight">This function will try to convert the underlying instance to the given type <code>Target_Type*</code>. <a href="#acbd9d9b07b3d59768b92aefb6d6d783a">More...</a><br /></td></tr> <tr class="separator:acbd9d9b07b3d59768b92aefb6d6d783a"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <div class="textblock"><p>The <a class="el" href="classrttr_1_1instance.html">instance</a> class is used for forwarding the instance of an object to invoke a <a class="el" href="classrttr_1_1property.html">property</a> or <a class="el" href="classrttr_1_1method.html">method</a>. </p> <dl class="section remark"><dt>Remarks</dt><dd>The <a class="el" href="classrttr_1_1instance.html">instance</a> class will internally hold a reference to the object. It will not perform any copy operation on the data itself. Make sure you don't hold an <a class="el" href="classrttr_1_1instance.html">instance</a>, while the underlying object is already destroyed. Otherwise it will lead to undefined behavior. </dd></dl> </div><h2 class="groupheader">Constructor & Destructor Documentation</h2> <a id="a0cf19f806ca5d41cf2341a08c0c3a38c"></a> <h2 class="memtitle"><span class="permalink"><a href="#a0cf19f806ca5d41cf2341a08c0c3a38c">◆ </a></span>instance() <span class="overload">[1/4]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">rttr::instance::instance </td> <td>(</td> <td class="paramname"></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Creates an <a class="el" href="classrttr_1_1instance.html#ad90b995a8f133187e207e8d3429a834f">invalid</a> instance object. </p> <p>Use this constructor, when you need to invoke a property or method where no instance is required. </p> </div> </div> <a id="aa02e8bb582c3c36c1ff1f854bd1c50c2"></a> <h2 class="memtitle"><span class="permalink"><a href="#aa02e8bb582c3c36c1ff1f854bd1c50c2">◆ </a></span>instance() <span class="overload">[2/4]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">rttr::instance::instance </td> <td>(</td> <td class="paramtype">const <a class="el" href="classrttr_1_1variant.html">variant</a> & </td> <td class="paramname"><em>var</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Creates an instance object from a <a class="el" href="classrttr_1_1variant.html">variant</a> object. </p> </div> </div> <a id="ad75edc709129f77b63ac443e05d39616"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad75edc709129f77b63ac443e05d39616">◆ </a></span>instance() <span class="overload">[3/4]</span></h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">rttr::instance::instance </td> <td>(</td> <td class="paramtype">const <a class="el" href="classrttr_1_1instance.html">instance</a> & </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">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Copy constructor for an instance. </p> </div> </div> <a id="a18411165dd38b7e0bb1e4ad4a8cabb14"></a> <h2 class="memtitle"><span class="permalink"><a href="#a18411165dd38b7e0bb1e4ad4a8cabb14">◆ </a></span>instance() <span class="overload">[4/4]</span></h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename T , typename Tp = decay_instance_t<T>> </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">rttr::instance::instance </td> <td>(</td> <td class="paramtype">T & </td> <td class="paramname"><em>data</em></td><td>)</td> <td></td> </tr> </table> </td> <td class="mlabels-right"> <span class="mlabels"><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Creates an instance object from type <code>T</code>. </p> <dl class="section remark"><dt>Remarks</dt><dd>Internally, the instance class will hold a reference to the address of the given object <code>data</code>. </dd></dl> </div> </div> <h2 class="groupheader">Member Function Documentation</h2> <a id="ac3a92f3645fff6e9f291712f4ffc79cc"></a> <h2 class="memtitle"><span class="permalink"><a href="#ac3a92f3645fff6e9f291712f4ffc79cc">◆ </a></span>get_derived_type()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classrttr_1_1type.html">type</a> rttr::instance::get_derived_type </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">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns the most derived type of the hold instance. </p> <p>See following example code: </p><div class="fragment"><div class="line"><span class="keyword">struct </span>base { <a class="code" href="rttr__enable_8h.html#a848bcae21d3a54e07ca6450689820a59">RTTR_ENABLE</a>() };</div><div class="line"><span class="keyword">struct </span>middle : base { <a class="code" href="rttr__enable_8h.html#a848bcae21d3a54e07ca6450689820a59">RTTR_ENABLE</a>(base) };</div><div class="line"><span class="keyword">struct </span>derived : middle { <a class="code" href="rttr__enable_8h.html#a848bcae21d3a54e07ca6450689820a59">RTTR_ENABLE</a>(middle) };</div><div class="line"><span class="comment">//...</span></div><div class="line">derived d;</div><div class="line">base& b = d;</div><div class="line"><a class="code" href="classrttr_1_1instance.html#a0cf19f806ca5d41cf2341a08c0c3a38c">instance</a> obj = b;</div><div class="line"></div><div class="line">obj.get_type() == type::get<base>(); <span class="comment">// yields to true</span></div><div class="line">obj.get_derived_type() == type::get<derived>(); <span class="comment">// yields to true</span></div></div><!-- fragment --> </div> </div> <a id="a30c21e0d42b5321878e8e08c07a2a6ca"></a> <h2 class="memtitle"><span class="permalink"><a href="#a30c21e0d42b5321878e8e08c07a2a6ca">◆ </a></span>get_type()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classrttr_1_1type.html">type</a> rttr::instance::get_type </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">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns the type of the internally hold instance. </p> <dl class="section remark"><dt>Remarks</dt><dd>When no reference is stored, an <a class="el" href="classrttr_1_1type.html#a5d6b241be3e6a25d787248e0b9d6f20b">invalid</a> <a class="el" href="classrttr_1_1type.html">type</a> object will be returned.</dd></dl> <dl class="section return"><dt>Returns</dt><dd>Type object of stored reference. </dd></dl> </div> </div> <a id="a3f97700e6a971a3c2f52d552c6de8892"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3f97700e6a971a3c2f52d552c6de8892">◆ </a></span>get_wrapped_instance()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classrttr_1_1instance.html">instance</a> rttr::instance::get_wrapped_instance </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">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns an <a class="el" href="classrttr_1_1instance.html">instance</a> object for the wrapped instance. </p> <p>See following example code: </p><div class="fragment"><div class="line">std::shared_ptr<foo> f;</div><div class="line"><a class="code" href="classrttr_1_1instance.html#a0cf19f806ca5d41cf2341a08c0c3a38c">instance</a> obj = f;</div><div class="line"></div><div class="line">obj.get_type() == type::get<std::shared_ptr<foo>>(); <span class="comment">// yields to true</span></div><div class="line">obj.get_wrapped_instance().get_type() == type::get<foo>(); <span class="comment">// yields to true</span></div></div><!-- fragment --><dl class="section remark"><dt>Remarks</dt><dd>When the current instance is not a <a class="el" href="classrttr_1_1type.html#af1bd09e2408fbc2816e201c2d82df582">wrapper type</a>, an <a class="el" href="classrttr_1_1instance.html#ad90b995a8f133187e207e8d3429a834f">invalid</a> instance will be returned.</dd></dl> <dl class="section return"><dt>Returns</dt><dd>An <a class="el" href="classrttr_1_1instance.html">instance</a> object from the wrapped type. </dd></dl> </div> </div> <a id="ad90b995a8f133187e207e8d3429a834f"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad90b995a8f133187e207e8d3429a834f">◆ </a></span>is_valid()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool rttr::instance::is_valid </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">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns true when the instance class contains a reference to an object. </p> <p>Otherwise false.</p> <dl class="section return"><dt>Returns</dt><dd>True when a reference is stored, otherwise false. </dd></dl> </div> </div> <a id="aced57ace1ac8195a46d564c186f4d66a"></a> <h2 class="memtitle"><span class="permalink"><a href="#aced57ace1ac8195a46d564c186f4d66a">◆ </a></span>operator bool()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">rttr::instance::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">explicit</span><span class="mlabel">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>Returns true when the instance class contains a reference to an object. </p> <p>Otherwise false.</p> <dl class="section return"><dt>Returns</dt><dd>True when a reference is stored, otherwise false. </dd></dl> </div> </div> <a id="acbd9d9b07b3d59768b92aefb6d6d783a"></a> <h2 class="memtitle"><span class="permalink"><a href="#acbd9d9b07b3d59768b92aefb6d6d783a">◆ </a></span>try_convert()</h2> <div class="memitem"> <div class="memproto"> <div class="memtemplate"> template<typename Target_Type > </div> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">Target_Type* rttr::instance::try_convert </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">noexcept</span></span> </td> </tr> </table> </div><div class="memdoc"> <p>This function will try to convert the underlying instance to the given type <code>Target_Type*</code>. </p> <p>When the conversion succeeds, a valid pointer will be returned. Otherwise a nullptr.</p> <dl class="section return"><dt>Returns</dt><dd>A pointer to the instance of <code>Target_Type</code>, when the conversion succeeds, otherwise a nullptr. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="instance_8h_source.html">instance.h</a></li> </ul> </div><!-- contents --> <!-- HTML footer for doxygen 1.8.9.1--> <!-- start footer part --> <hr class="footer"/> <address class="footer"> <small> Generated on Thu Apr 11 2019 20:05:58 for rttr - 0.9.6 by <a href="http://www.doxygen.org/index.html">doxygen</a>. </small> </address> </body> </html>