<!-- 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::parameter_info 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_1parameter__info.html">parameter_info</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="summary"> <a href="#pub-methods">Public Member Functions</a> | <a href="classrttr_1_1parameter__info-members.html">List of all members</a> </div> <div class="headertitle"> <div class="title">rttr::parameter_info Class Reference</div> </div> </div><!--header--> <div class="contents"> <p>The <a class="el" href="classrttr_1_1parameter__info.html">parameter_info</a> class provides several meta information about a parameter. <a href="classrttr_1_1parameter__info.html#details">More...</a></p> <p><code>#include <<a class="el" href="parameter__info_8h_source.html">parameter_info.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:a65dff19db4e148189471113da42fe826"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classrttr_1_1variant.html">variant</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1parameter__info.html#a65dff19db4e148189471113da42fe826">get_default_value</a> () const</td></tr> <tr class="memdesc:a65dff19db4e148189471113da42fe826"><td class="mdescLeft"> </td><td class="mdescRight">Returns the default value as <a class="el" href="classrttr_1_1variant.html">variant</a> for this parameter; or an <a class="el" href="classrttr_1_1variant.html#aed6e6a2e29b4d1ac51a09b7d9037dd44">invalid</a> variant to indicate that no default value is available. <a href="#a65dff19db4e148189471113da42fe826">More...</a><br /></td></tr> <tr class="separator:a65dff19db4e148189471113da42fe826"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:aabcb07d5abb1cfc8477ca4a0bc8d02cb"><td class="memItemLeft" align="right" valign="top">uint32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1parameter__info.html#aabcb07d5abb1cfc8477ca4a0bc8d02cb">get_index</a> () const noexcept</td></tr> <tr class="memdesc:aabcb07d5abb1cfc8477ca4a0bc8d02cb"><td class="mdescLeft"> </td><td class="mdescRight">Returns the zero-based position of the parameter in the formal parameter list. <a href="#aabcb07d5abb1cfc8477ca4a0bc8d02cb">More...</a><br /></td></tr> <tr class="separator:aabcb07d5abb1cfc8477ca4a0bc8d02cb"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a76c0685265296e98ae2d32b68ae7af26"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1parameter__info.html#a76c0685265296e98ae2d32b68ae7af26">get_name</a> () const noexcept</td></tr> <tr class="memdesc:a76c0685265296e98ae2d32b68ae7af26"><td class="mdescLeft"> </td><td class="mdescRight">Returns the name of this parameter. <a href="#a76c0685265296e98ae2d32b68ae7af26">More...</a><br /></td></tr> <tr class="separator:a76c0685265296e98ae2d32b68ae7af26"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ae81a3b15517d469a036b20eecb357697"><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_1parameter__info.html#ae81a3b15517d469a036b20eecb357697">get_type</a> () const noexcept</td></tr> <tr class="memdesc:ae81a3b15517d469a036b20eecb357697"><td class="mdescLeft"> </td><td class="mdescRight">Returns type of this parameter. <a href="#ae81a3b15517d469a036b20eecb357697">More...</a><br /></td></tr> <tr class="separator:ae81a3b15517d469a036b20eecb357697"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a169e830406de9164118770a44e821e06"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1parameter__info.html#a169e830406de9164118770a44e821e06">has_default_value</a> () const noexcept</td></tr> <tr class="memdesc:a169e830406de9164118770a44e821e06"><td class="mdescLeft"> </td><td class="mdescRight">Returns true when this parameter has a default value; otherwise false. <a href="#a169e830406de9164118770a44e821e06">More...</a><br /></td></tr> <tr class="separator:a169e830406de9164118770a44e821e06"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a3b1c0a94a968c1cc67f31ca4854cff65"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1parameter__info.html#a3b1c0a94a968c1cc67f31ca4854cff65">operator!=</a> (const <a class="el" href="classrttr_1_1parameter__info.html">parameter_info</a> &other) const noexcept</td></tr> <tr class="memdesc:a3b1c0a94a968c1cc67f31ca4854cff65"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this property is the not the same like the <code>other</code>. <a href="#a3b1c0a94a968c1cc67f31ca4854cff65">More...</a><br /></td></tr> <tr class="separator:a3b1c0a94a968c1cc67f31ca4854cff65"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ad6fa28f62ebcf9f91b0d9ac949fdb993"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classrttr_1_1parameter__info.html#ad6fa28f62ebcf9f91b0d9ac949fdb993">operator==</a> (const <a class="el" href="classrttr_1_1parameter__info.html">parameter_info</a> &other) const noexcept</td></tr> <tr class="memdesc:ad6fa28f62ebcf9f91b0d9ac949fdb993"><td class="mdescLeft"> </td><td class="mdescRight">Returns true if this property is the same like the <code>other</code>. <a href="#ad6fa28f62ebcf9f91b0d9ac949fdb993">More...</a><br /></td></tr> <tr class="separator:ad6fa28f62ebcf9f91b0d9ac949fdb993"><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_1parameter__info.html">parameter_info</a> class provides several meta information about a parameter. </p> <p>A instance of a <a class="el" href="classrttr_1_1parameter__info.html" title="The parameter_info class provides several meta information about a parameter.">parameter_info</a> class can be obtained from the <a class="el" href="classrttr_1_1method.html">method</a> or <a class="el" href="classrttr_1_1constructor.html">constructor</a> class. See <a class="el" href="classrttr_1_1method.html#a5e28213d7e723f90a601029e5e06041b">method::get_parameter_infos()</a> and <a class="el" href="classrttr_1_1constructor.html#ae228d56cb826db713b77d68b260e6170">constructor::get_parameter_infos()</a>.</p> <p>For registration additional parameter infos, see <a class="el" href="namespacerttr.html#ab708b3893cbd5a10e8782f3825052ea6">parameter_names()</a>.</p> <h2>Meta Information </h2> <h2>Copying and Assignment </h2> <p>A <a class="el" href="classrttr_1_1parameter__info.html">parameter_info</a> object is lightweight and can be copied by value. However, each copy will refer to the same underlying <a class="el" href="classrttr_1_1parameter__info.html" title="The parameter_info class provides several meta information about a parameter.">parameter_info</a>.</p> <h2>Typical Usage </h2> <div class="fragment"><div class="line"><span class="keyword">using namespace </span><a class="code" href="namespacerttr.html">rttr</a>;</div><div class="line"></div><div class="line"><span class="keywordtype">void</span> set_window_geometry(<span class="keyword">const</span> <span class="keywordtype">char</span>* name, <span class="keywordtype">int</span> w, <span class="keywordtype">int</span> h) {...}</div><div class="line"></div><div class="line"><a class="code" href="registration_8h.html#ac6326400f16225ee15b52eabcaae8130">RTTR_REGISTRATION</a></div><div class="line">{</div><div class="line"> <a class="code" href="classrttr_1_1registration.html#a5da1c6eb947d700681faa7fec0bf23b7">registration::method</a>(<span class="stringliteral">"set_window_geometry"</span>, &set_window_geometry)</div><div class="line"> (</div><div class="line"> <a class="code" href="namespacerttr.html#ab708b3893cbd5a10e8782f3825052ea6">parameter_names</a>(<span class="stringliteral">"window name"</span>, <span class="stringliteral">"width"</span>, <span class="stringliteral">"height"</span>)</div><div class="line"> );</div><div class="line">}</div><div class="line"></div><div class="line"><span class="comment">//...</span></div><div class="line"></div><div class="line"><a class="code" href="classrttr_1_1method.html">method</a> meth = <a class="code" href="classrttr_1_1type.html#a15fa4ae4fb0619be68c3b83967fefb51">type::get_global_method</a>(<span class="stringliteral">"set_window_geometry"</span>);</div><div class="line">std::vector<parameter_info> param_list = meth.<a class="code" href="classrttr_1_1method.html#a5e28213d7e723f90a601029e5e06041b">get_parameter_infos</a>();</div><div class="line"><span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& info : param_list)</div><div class="line">{</div><div class="line"> <span class="comment">// print all names of the parameter types and its position in the paramter list</span></div><div class="line"> std::cout << <span class="stringliteral">" name: '"</span> << info.get_type().get_name() << <span class="stringliteral">"'\n"</span></div><div class="line"> << <span class="stringliteral">"index: "</span> << info.get_index()</div><div class="line"> << std::endl;</div><div class="line">}</div></div><!-- fragment --><p>Output: </p><pre class="fragment"> name: 'window name' index: 0 name: 'width' index: 1 name: 'height' index: 2 </pre><dl class="section see"><dt>See also</dt><dd><a class="el" href="classrttr_1_1method.html" title="The method class provides several meta information about a method and can be invoked.">method</a> and <a class="el" href="classrttr_1_1constructor.html" title="The constructor class provides several meta information about a constructor and can be invoked.">constructor</a> </dd></dl> </div><h2 class="groupheader">Member Function Documentation</h2> <a id="a65dff19db4e148189471113da42fe826"></a> <h2 class="memtitle"><span class="permalink"><a href="#a65dff19db4e148189471113da42fe826">◆ </a></span>get_default_value()</h2> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="classrttr_1_1variant.html">variant</a> rttr::parameter_info::get_default_value </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div><div class="memdoc"> <p>Returns the default value as <a class="el" href="classrttr_1_1variant.html">variant</a> for this parameter; or an <a class="el" href="classrttr_1_1variant.html#aed6e6a2e29b4d1ac51a09b7d9037dd44">invalid</a> variant to indicate that no default value is available. </p> <dl class="section return"><dt>Returns</dt><dd>Default value as variant. </dd></dl> </div> </div> <a id="aabcb07d5abb1cfc8477ca4a0bc8d02cb"></a> <h2 class="memtitle"><span class="permalink"><a href="#aabcb07d5abb1cfc8477ca4a0bc8d02cb">◆ </a></span>get_index()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">uint32_t rttr::parameter_info::get_index </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 zero-based position of the parameter in the formal parameter list. </p> <dl class="section return"><dt>Returns</dt><dd>An integer representing the position this parameter occupies in the parameter list. </dd></dl> </div> </div> <a id="a76c0685265296e98ae2d32b68ae7af26"></a> <h2 class="memtitle"><span class="permalink"><a href="#a76c0685265296e98ae2d32b68ae7af26">◆ </a></span>get_name()</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="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a> rttr::parameter_info::get_name </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 name of this parameter. </p> <p>When no name was provided during registration via <a class="el" href="namespacerttr.html#ab708b3893cbd5a10e8782f3825052ea6">parameter_names()</a>, then an empty string is returned.</p> <dl class="section return"><dt>Returns</dt><dd>The name of the parameter. </dd></dl> </div> </div> <a id="ae81a3b15517d469a036b20eecb357697"></a> <h2 class="memtitle"><span class="permalink"><a href="#ae81a3b15517d469a036b20eecb357697">◆ </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::parameter_info::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 type of this parameter. </p> <dl class="section return"><dt>Returns</dt><dd>Parameter type. </dd></dl> </div> </div> <a id="a169e830406de9164118770a44e821e06"></a> <h2 class="memtitle"><span class="permalink"><a href="#a169e830406de9164118770a44e821e06">◆ </a></span>has_default_value()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool rttr::parameter_info::has_default_value </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 this parameter has a default value; otherwise false. </p> <dl class="section return"><dt>Returns</dt><dd>Bool to indicate that this parameter has a default value. </dd></dl> </div> </div> <a id="a3b1c0a94a968c1cc67f31ca4854cff65"></a> <h2 class="memtitle"><span class="permalink"><a href="#a3b1c0a94a968c1cc67f31ca4854cff65">◆ </a></span>operator!=()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool rttr::parameter_info::operator!= </td> <td>(</td> <td class="paramtype">const <a class="el" href="classrttr_1_1parameter__info.html">parameter_info</a> & </td> <td class="paramname"><em>other</em></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 if this property is the not the same like the <code>other</code>. </p> <dl class="section return"><dt>Returns</dt><dd>True if both properties are different, otherwise false. </dd></dl> </div> </div> <a id="ad6fa28f62ebcf9f91b0d9ac949fdb993"></a> <h2 class="memtitle"><span class="permalink"><a href="#ad6fa28f62ebcf9f91b0d9ac949fdb993">◆ </a></span>operator==()</h2> <div class="memitem"> <div class="memproto"> <table class="mlabels"> <tr> <td class="mlabels-left"> <table class="memname"> <tr> <td class="memname">bool rttr::parameter_info::operator== </td> <td>(</td> <td class="paramtype">const <a class="el" href="classrttr_1_1parameter__info.html">parameter_info</a> & </td> <td class="paramname"><em>other</em></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 if this property is the same like the <code>other</code>. </p> <dl class="section return"><dt>Returns</dt><dd>True if both properties are equal, otherwise false. </dd></dl> </div> </div> <hr/>The documentation for this class was generated from the following file:<ul> <li><a class="el" href="parameter__info_8h_source.html">parameter_info.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:59 for rttr - 0.9.6 by <a href="http://www.doxygen.org/index.html">doxygen</a>. </small> </address> </body> </html>