<!-- 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: registration.h Source File</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><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">registration.h</div> </div> </div><!--header--> <div class="contents"> <a href="registration_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/************************************************************************************</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">* *</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">* Copyright (c) 2014 - 2018 Axel Menzel <info@rttr.org> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">* *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">* This file is part of RTTR (Run Time Type Reflection) *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">* License: MIT License *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">* *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">* Permission is hereby granted, free of charge, to any person obtaining *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">* a copy of this software and associated documentation files (the "Software"), *</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">* to deal in the Software without restriction, including without limitation *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">* the rights to use, copy, modify, merge, publish, distribute, sublicense, *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">* and/or sell copies of the Software, and to permit persons to whom the *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">* Software is furnished to do so, subject to the following conditions: *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">* *</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">* The above copyright notice and this permission notice shall be included in *</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="comment">* all copies or substantial portions of the Software. *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">* *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span> <span class="comment">* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment">* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment">* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="comment">* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE *</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="comment">* SOFTWARE. *</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="comment">* *</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="comment">*************************************************************************************/</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#ifndef RTTR_REGISTRATION_H_</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#define RTTR_REGISTRATION_H_</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="preprocessor">#include "rttr/detail/base/core_prerequisites.h"</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="preprocessor">#include "<a class="code" href="policy_8h.html">rttr/policy.h</a>"</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="preprocessor">#include "<a class="code" href="access__levels_8h.html">rttr/access_levels.h</a>"</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span> <span class="preprocessor">#include "rttr/detail/registration/bind_types.h"</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <span class="preprocessor">#include "rttr/detail/registration/registration_executer.h"</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="preprocessor">#include "rttr/detail/default_arguments/default_arguments.h"</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> <span class="preprocessor">#include "rttr/detail/parameter_info/parameter_names.h"</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="variant_8h.html">rttr/variant.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">namespace </span><a class="code" href="namespacerttr.html">rttr</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">namespace </span>detail</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  <span class="keyword">class </span><a class="code" href="namespacerttr.html#a2cd2b848b4d218241a8b6e8f7cdbeb93">metadata</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Enum_Type></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  <span class="keyword">class </span>enum_data;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  <span class="keyword">struct </span><a class="code" href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611ba84807fec67699af41c7bcb3a57dce40b">public_access</a> {};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>  <span class="keyword">struct </span><a class="code" href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611ba2a680ba924878f265e7babc8b99edeb5">protected_access</a> {};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  <span class="keyword">struct </span><a class="code" href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611bac660fa8edf326cb81471f80104953e47">private_access</a> {};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>  <span class="keyword">using</span> access_levels_list = type_list<public_access, protected_access, private_access>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span> }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span> </div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="classrttr_1_1registration.html"> 119</a></span> <span class="keyword">class </span>RTTR_API <a class="code" href="classrttr_1_1registration.html">registration</a></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span> <span class="keyword">public</span>:</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keyword">template</span><<span class="keyword">typename</span>...T></div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classrttr_1_1registration_1_1bind.html"> 123</a></span>  <span class="keyword">class </span><a class="code" href="classrttr_1_1registration_1_1bind.html">bind</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Class_Type></div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classrttr_1_1registration_1_1class__.html"> 129</a></span>  <span class="keyword">class </span><a class="code" href="classrttr_1_1registration_1_1class__.html">class_</a></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <a class="code" href="classrttr_1_1registration_1_1class__.html">class_</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  ~<a class="code" href="classrttr_1_1registration_1_1class__.html">class_</a>();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span> </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span> </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keyword">template</span><<span class="keyword">typename</span>...Args></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <a class="code" href="classrttr_1_1registration_1_1class__.html">class_<Class_Type></a>& operator()(Args&&...args);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span> </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args, <span class="keyword">typename</span> acc_level = <a class="code" href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611ba84807fec67699af41c7bcb3a57dce40b">detail::public_access</a>, <span class="keyword">typename</span> Tp = <span class="keyword">typename</span> <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">std::enable_if<detail::contains<acc_level, detail::access_levels_list>::value</a>><a class="code" href="classrttr_1_1type.html">::type</a>></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <a class="code" href="classrttr_1_1registration_1_1bind.html">bind</a><detail::ctor, Class_Type, acc_level, Args...> <a class="code" href="classrttr_1_1constructor.html">constructor</a>(acc_level level = acc_level());</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">template<typename F, typename acc_level = detail::public_access, typename Tp = typename std::enable_if<!detail::contains<F, detail::access_levels_list>::value</a>><a class="code" href="classrttr_1_1type.html">::type</a>></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::ctor_func, Class_Type, F, acc_level></a> <a class="code" href="classrttr_1_1constructor.html">constructor</a>(F func, acc_level level = acc_level());</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span> </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">template<typename A, typename acc_level = detail::public_access, typename Tp = typename std::enable_if<detail::contains<acc_level, detail::access_levels_list>::value</a>><a class="code" href="classrttr_1_1type.html">::type</a>></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::prop, Class_Type, A, acc_level></a> <a class="code" href="classrttr_1_1property.html">property</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name, A acc, acc_level level = acc_level());</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">template<typename A, typename acc_level = detail::public_access, typename Tp = typename std::enable_if<detail::contains<acc_level, detail::access_levels_list>::value</a>><a class="code" href="classrttr_1_1type.html">::type</a>></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::prop_readonly, Class_Type, A, acc_level></a> property_readonly(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name, A acc, acc_level level = acc_level());</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">template<typename A1, typename A2, typename Tp = typename std::enable_if<!detail::contains<A2, detail::access_levels_list>::value</a>><a class="code" href="classrttr_1_1type.html">::type</a>, <span class="keyword">typename</span> acc_level = <a class="code" href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611ba84807fec67699af41c7bcb3a57dce40b">detail::public_access</a>></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::prop, Class_Type, A1, A2, acc_level></a> <a class="code" href="classrttr_1_1property.html">property</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name, A1 getter, A2 setter, acc_level level = acc_level());</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span> </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  <span class="keyword">template</span><<span class="keyword">typename</span> F, <span class="keyword">typename</span> acc_level = detail::public_access></div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::meth, Class_Type, F, acc_level></a> <a class="code" href="classrttr_1_1method.html">method</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name, F f, acc_level level = acc_level());</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> </div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Enum_Type></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::enum_, Class_Type, Enum_Type></a> <a class="code" href="classrttr_1_1enumeration.html">enumeration</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classrttr_1_1registration_1_1class__.html">class_</a>(<span class="keyword">const</span> std::shared_ptr<detail::registration_executer>& reg_exec);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <a class="code" href="classrttr_1_1registration_1_1class__.html">class_</a>(<span class="keyword">const</span> <a class="code" href="classrttr_1_1registration_1_1class__.html">class_</a>& other);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="classrttr_1_1registration_1_1class__.html">class_</a>& operator=(<span class="keyword">const</span> <a class="code" href="classrttr_1_1registration_1_1class__.html">class_</a>& other);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  std::shared_ptr<detail::registration_executer> m_reg_exec;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <span class="keyword">template</span><<span class="keyword">typename</span>...T></div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classrttr_1_1registration_1_1class__.html#aba04ca83e4e364dbc6790a95955f203e"> 273</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classrttr_1_1registration_1_1bind.html">bind</a>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  };</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span> </div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <span class="keyword">template</span><<span class="keyword">typename</span> A></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keyword">static</span> <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::prop, detail::invalid_type, A, detail::public_access></a> <a class="code" href="classrttr_1_1property.html">property</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name, A acc);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keyword">template</span><<span class="keyword">typename</span> A></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keyword">static</span> <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::prop_readonly, detail::invalid_type, A, detail::public_access></a> property_readonly(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name, A acc);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keyword">template</span><<span class="keyword">typename</span> A1, <span class="keyword">typename</span> A2></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  <span class="keyword">static</span> <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::prop, detail::invalid_type, A1, A2, detail::public_access></a> <a class="code" href="classrttr_1_1property.html">property</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name, A1 getter, A2 setter);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> </div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keyword">template</span><<span class="keyword">typename</span> F></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">static</span> <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::meth, detail::invalid_type, F, detail::public_access></a> <a class="code" href="classrttr_1_1method.html">method</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name, F f);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">template</span><<span class="keyword">typename</span> Enum_Type></div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keyword">static</span> <a class="code" href="classrttr_1_1registration_1_1bind.html">bind<detail::enum_, detail::invalid_type, Enum_Type></a> <a class="code" href="classrttr_1_1enumeration.html">enumeration</a>(<a class="code" href="classrttr_1_1basic__string__view.html">string_view</a> name);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span> </div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span> </div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="classrttr_1_1registration.html#a45df26a4b45b6715ac17e9a03594c369"> 382</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611ba84807fec67699af41c7bcb3a57dce40b">detail::public_access</a> <a class="code" href="classrttr_1_1registration.html#a45df26a4b45b6715ac17e9a03594c369">public_access</a>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span> </div><div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classrttr_1_1registration.html#a5ac82a82df83ce2dd8c34ada18d7b904"> 408</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611ba2a680ba924878f265e7babc8b99edeb5">detail::protected_access</a> <a class="code" href="classrttr_1_1registration.html#a5ac82a82df83ce2dd8c34ada18d7b904">protected_access</a>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div><div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="classrttr_1_1registration.html#a8920352ec53e1cd44bdec18ef5e89568"> 434</a></span>  <span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611bac660fa8edf326cb81471f80104953e47">detail::private_access</a> <a class="code" href="classrttr_1_1registration.html#a8920352ec53e1cd44bdec18ef5e89568">private_access</a>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span> </div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classrttr_1_1registration.html">registration</a>() {}</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classrttr_1_1registration.html">registration</a>(<span class="keyword">const</span> std::shared_ptr<detail::registration_executer>& reg_exec) : m_reg_exec(reg_exec) { }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  registration(<span class="keyword">const</span> registration& other);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  registration& operator=(<span class="keyword">const</span> registration& other);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span> <span class="keyword">private</span>:</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  std::shared_ptr<detail::registration_executer> m_reg_exec;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keyword">template</span><<span class="keyword">typename</span>...T></div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classrttr_1_1registration.html#aba04ca83e4e364dbc6790a95955f203e"> 445</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classrttr_1_1registration_1_1bind.html">bind</a>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span> };</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span> </div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span> <span class="keyword">template</span><<span class="keyword">typename</span> Signature></div><div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="namespacerttr.html#a1582d7d5b803f7dd5498a4a0166d382d"> 481</a></span> Signature* <a class="code" href="namespacerttr.html#a1582d7d5b803f7dd5498a4a0166d382d">select_overload</a>(Signature* func)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span> {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">return</span> func;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span> }</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span> </div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span> </div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span> <span class="keyword">template</span><<span class="keyword">typename</span> Signature, <span class="keyword">typename</span> ClassType></div><div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="namespacerttr.html#a798f2d741400e53a74df3c80c4c0c887"> 525</a></span> <span class="keyword">auto</span> <a class="code" href="namespacerttr.html#a1582d7d5b803f7dd5498a4a0166d382d">select_overload</a>(Signature (ClassType::*func)) -> decltype(func)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span> {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">return</span> func;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span> }</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span> </div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span> </div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span> <span class="keyword">template</span><<span class="keyword">typename</span> ClassType, <span class="keyword">typename</span> ReturnType, <span class="keyword">typename</span>... Args></div><div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="namespacerttr.html#ab5ab25763f38e207fba4461aeb307e4b"> 567</a></span> <span class="keyword">auto</span> <a class="code" href="namespacerttr.html#ab5ab25763f38e207fba4461aeb307e4b">select_const</a>(ReturnType (ClassType::*func)(Args...) <span class="keyword">const</span>) -> decltype(func)</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span> {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keywordflow">return</span> func;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span> }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span> </div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span> <span class="preprocessor">#ifndef RTTR_NO_CXX17_NOEXCEPT_FUNC_TYPE</span></div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span> </div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span> <span class="keyword">template</span><<span class="keyword">typename</span> ClassType, <span class="keyword">typename</span> ReturnType, <span class="keyword">typename</span>... Args></div><div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="namespacerttr.html#a8f3f8702a5c01a032921b5400dcf3a36"> 579</a></span> <span class="keyword">auto</span> <a class="code" href="namespacerttr.html#ab5ab25763f38e207fba4461aeb307e4b">select_const</a>(ReturnType (ClassType::*func)(Args...) <span class="keyword">const</span> noexcept) -> decltype(func)</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span> {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  <span class="keywordflow">return</span> func;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span> }</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span> </div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span> <span class="keyword">template</span><<span class="keyword">typename</span> ClassType, <span class="keyword">typename</span> ReturnType, <span class="keyword">typename</span>... Args></div><div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="namespacerttr.html#ac2fe0add56b55e3ef993783060346d97"> 622</a></span> <span class="keyword">auto</span> <a class="code" href="namespacerttr.html#ac2fe0add56b55e3ef993783060346d97">select_non_const</a>(ReturnType(ClassType::*func)(Args...)) -> decltype(func)</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span> {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  <span class="keywordflow">return</span> func;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span> }</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span> </div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor">#ifndef RTTR_NO_CXX17_NOEXCEPT_FUNC_TYPE</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span> </div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span> <span class="keyword">template</span><<span class="keyword">typename</span> ClassType, <span class="keyword">typename</span> ReturnType, <span class="keyword">typename</span>... Args></div><div class="line"><a name="l00635"></a><span class="lineno"><a class="line" href="namespacerttr.html#a824f220ed51f07da6f29d5ab9a121f04"> 635</a></span> <span class="keyword">auto</span> <a class="code" href="namespacerttr.html#ac2fe0add56b55e3ef993783060346d97">select_non_const</a>(ReturnType(ClassType::*func)(Args...) noexcept) -> decltype(func)</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span> {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="keywordflow">return</span> func;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span> }</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span> </div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span> RTTR_INLINE <a class="code" href="namespacerttr.html#a2cd2b848b4d218241a8b6e8f7cdbeb93">detail::metadata</a> <a class="code" href="namespacerttr.html#a2cd2b848b4d218241a8b6e8f7cdbeb93">metadata</a>(variant key, variant <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">value</a>);</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span> </div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="keyword">template</span><<span class="keyword">typename</span> Enum_Type></div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span> RTTR_INLINE detail::enum_data<Enum_Type> <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">value</a>(<a class="code" href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">string_view</a>, Enum_Type <a class="code" href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">value</a>);</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span> <span class="keyword">template</span><<span class="keyword">typename</span>...TArgs></div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span> RTTR_INLINE detail::default_args<TArgs...> <a class="code" href="namespacerttr.html#afdaed4515c436b34b8e24af714a09c64">default_arguments</a>(TArgs&&...args);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span> </div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span> <span class="keyword">template</span><<span class="keyword">typename</span>...TArgs></div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span> RTTR_INLINE detail::parameter_names<detail::decay_t<TArgs>...> <a class="code" href="namespacerttr.html#ab708b3893cbd5a10e8782f3825052ea6">parameter_names</a>(TArgs&&...args);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span> </div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span> </div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span> </div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span> <span class="preprocessor">#ifdef DOXYGEN</span></div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span> </div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span> </div><div class="line"><a name="l00745"></a><span class="lineno"><a class="line" href="registration_8h.html#ac6326400f16225ee15b52eabcaae8130"> 745</a></span> <span class="preprocessor">#define RTTR_REGISTRATION</span></div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span> </div><div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="registration_8h.html#acd4d632edb955a7664489ae6d90aa8bd"> 769</a></span> <span class="preprocessor">#define RTTR_PLUGIN_REGISTRATION</span></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span> </div><div class="line"><a name="l00793"></a><span class="lineno"><a class="line" href="registration_8h.html#a307051b21da56e1ec8a63f0aa943797e"> 793</a></span> <span class="preprocessor">#define RTTR_REGISTRATION_FRIEND</span></div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span> </div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span> <span class="keyword">template</span><<span class="keyword">typename</span>...T></div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span> <span class="keyword">class </span><a class="code" href="classrttr_1_1registration.html#aba04ca83e4e364dbc6790a95955f203e">registration::bind</a> : <span class="keyword">public</span> detail::base_class</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span> {</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="keyword">template</span><<span class="keyword">typename</span>... Args></div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>  base_class <a class="code" href="classrttr_1_1registration_1_1bind.html#aba7a1edface85a63a62448a526eb21cd">operator()</a>(Args&&... arg);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span> };</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span> </div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span> </div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span> } <span class="comment">// end namespace rttr</span></div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span> </div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span> <span class="preprocessor">#include "rttr/detail/registration/registration_impl.h"</span></div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span> </div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span> <span class="preprocessor">#endif // RTTR_REGISTRATION_H_</span></div><div class="ttc" id="namespacerttr_html"><div class="ttname"><a href="namespacerttr.html">rttr</a></div><div class="ttdef"><b>Definition:</b> access_levels.h:33</div></div> <div class="ttc" id="namespacerttr_html_aa07db0e4984d0c48adc5d61f834d611ba2a680ba924878f265e7babc8b99edeb5"><div class="ttname"><a href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611ba2a680ba924878f265e7babc8b99edeb5">rttr::access_levels::protected_access</a></div><div class="ttdoc">Declares that this member was registered with protected access.</div></div> <div class="ttc" id="namespacerttr_html_ac2fe0add56b55e3ef993783060346d97"><div class="ttname"><a href="namespacerttr.html#ac2fe0add56b55e3ef993783060346d97">rttr::select_non_const</a></div><div class="ttdeci">auto select_non_const(ReturnType(ClassType::*func)(Args...)) -> decltype(func)</div><div class="ttdoc">This is a helper function to register overloaded const member functions.</div><div class="ttdef"><b>Definition:</b> registration.h:622</div></div> <div class="ttc" id="classrttr_1_1type_html"><div class="ttname"><a href="classrttr_1_1type.html">rttr::type</a></div><div class="ttdoc">The type class holds the type information for any arbitrary object.</div><div class="ttdef"><b>Definition:</b> type.h:170</div></div> <div class="ttc" id="classrttr_1_1registration_1_1bind_html_aba7a1edface85a63a62448a526eb21cd"><div class="ttname"><a href="classrttr_1_1registration_1_1bind.html#aba7a1edface85a63a62448a526eb21cd">rttr::registration::bind::operator()</a></div><div class="ttdeci">base_class operator()(Args &&... arg)</div><div class="ttdoc">The bracket operator can be used to add additional meta data or policies.</div></div> <div class="ttc" id="classrttr_1_1registration_html_a5ac82a82df83ce2dd8c34ada18d7b904"><div class="ttname"><a href="classrttr_1_1registration.html#a5ac82a82df83ce2dd8c34ada18d7b904">rttr::registration::protected_access</a></div><div class="ttdeci">static const detail::protected_access protected_access</div><div class="ttdoc">This variable can be used to specify during registration of a class member the access level: protecte...</div><div class="ttdef"><b>Definition:</b> registration.h:408</div></div> <div class="ttc" id="namespacerttr_html_afdaed4515c436b34b8e24af714a09c64"><div class="ttname"><a href="namespacerttr.html#afdaed4515c436b34b8e24af714a09c64">rttr::default_arguments</a></div><div class="ttdeci">detail::default_args< TArgs... > default_arguments(TArgs &&...args)</div><div class="ttdoc">The default_arguments function should be used add default arguments, for constructors or a methods du...</div></div> <div class="ttc" id="classrttr_1_1registration_1_1class___html"><div class="ttname"><a href="classrttr_1_1registration_1_1class__.html">rttr::registration::class_</a></div><div class="ttdoc">The class_ is used to register classes to RTTR.</div><div class="ttdef"><b>Definition:</b> registration.h:129</div></div> <div class="ttc" id="namespacerttr_html_a54ecd8bad715cbc451e7aa8491667d4a"><div class="ttname"><a href="namespacerttr.html#a54ecd8bad715cbc451e7aa8491667d4a">rttr::value</a></div><div class="ttdeci">detail::enum_data< Enum_Type > value(string_view, Enum_Type value)</div><div class="ttdoc">The value function should be used to add a mapping from enum name to value during the registration pr...</div></div> <div class="ttc" id="classrttr_1_1enumeration_html"><div class="ttname"><a href="classrttr_1_1enumeration.html">rttr::enumeration</a></div><div class="ttdoc">The enumeration class provides several meta information about an enum.</div><div class="ttdef"><b>Definition:</b> enumeration.h:112</div></div> <div class="ttc" id="classrttr_1_1method_html"><div class="ttname"><a href="classrttr_1_1method.html">rttr::method</a></div><div class="ttdoc">The method class provides several meta information about a method and can be invoked.</div><div class="ttdef"><b>Definition:</b> method.h:120</div></div> <div class="ttc" id="classrttr_1_1basic__string__view_html"><div class="ttname"><a href="classrttr_1_1basic__string__view.html">rttr::basic_string_view</a></div><div class="ttdoc">The class template basic_string_view describes an non-owning reference to a constant contiguous seque...</div><div class="ttdef"><b>Definition:</b> string_view.h:48</div></div> <div class="ttc" id="variant_8h_html"><div class="ttname"><a href="variant_8h.html">variant.h</a></div></div> <div class="ttc" id="namespacerttr_html_ab5ab25763f38e207fba4461aeb307e4b"><div class="ttname"><a href="namespacerttr.html#ab5ab25763f38e207fba4461aeb307e4b">rttr::select_const</a></div><div class="ttdeci">auto select_const(ReturnType(ClassType::*func)(Args...) const) -> decltype(func)</div><div class="ttdoc">This is a helper function to register overloaded const member functions.</div><div class="ttdef"><b>Definition:</b> registration.h:567</div></div> <div class="ttc" id="namespacerttr_html_a1582d7d5b803f7dd5498a4a0166d382d"><div class="ttname"><a href="namespacerttr.html#a1582d7d5b803f7dd5498a4a0166d382d">rttr::select_overload</a></div><div class="ttdeci">Signature * select_overload(Signature *func)</div><div class="ttdoc">This is a helper function to register overloaded functions.</div><div class="ttdef"><b>Definition:</b> registration.h:481</div></div> <div class="ttc" id="namespacerttr_html_aa07db0e4984d0c48adc5d61f834d611bac660fa8edf326cb81471f80104953e47"><div class="ttname"><a href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611bac660fa8edf326cb81471f80104953e47">rttr::access_levels::private_access</a></div><div class="ttdoc">Declares that this member was registered with private access.</div></div> <div class="ttc" id="policy_8h_html"><div class="ttname"><a href="policy_8h.html">policy.h</a></div></div> <div class="ttc" id="classrttr_1_1registration_html_a45df26a4b45b6715ac17e9a03594c369"><div class="ttname"><a href="classrttr_1_1registration.html#a45df26a4b45b6715ac17e9a03594c369">rttr::registration::public_access</a></div><div class="ttdeci">static const detail::public_access public_access</div><div class="ttdoc">This variable can be used to specify during registration of a class member the access level: public.</div><div class="ttdef"><b>Definition:</b> registration.h:382</div></div> <div class="ttc" id="classrttr_1_1registration_html"><div class="ttname"><a href="classrttr_1_1registration.html">rttr::registration</a></div><div class="ttdoc">The registration class is the entry point for the manual registration of reflection information to th...</div><div class="ttdef"><b>Definition:</b> registration.h:119</div></div> <div class="ttc" id="classrttr_1_1property_html"><div class="ttname"><a href="classrttr_1_1property.html">rttr::property</a></div><div class="ttdoc">The property class provides several meta information about a property and gives read/write access to ...</div><div class="ttdef"><b>Definition:</b> property.h:116</div></div> <div class="ttc" id="classrttr_1_1registration_html_a8920352ec53e1cd44bdec18ef5e89568"><div class="ttname"><a href="classrttr_1_1registration.html#a8920352ec53e1cd44bdec18ef5e89568">rttr::registration::private_access</a></div><div class="ttdeci">static const detail::private_access private_access</div><div class="ttdoc">This variable can be used to specify during registration of a class member the access level: private.</div><div class="ttdef"><b>Definition:</b> registration.h:434</div></div> <div class="ttc" id="classrttr_1_1registration_html_aba04ca83e4e364dbc6790a95955f203e"><div class="ttname"><a href="classrttr_1_1registration.html#aba04ca83e4e364dbc6790a95955f203e">rttr::registration::bind</a></div><div class="ttdeci">friend class bind</div><div class="ttdef"><b>Definition:</b> registration.h:445</div></div> <div class="ttc" id="namespacerttr_html_ab708b3893cbd5a10e8782f3825052ea6"><div class="ttname"><a href="namespacerttr.html#ab708b3893cbd5a10e8782f3825052ea6">rttr::parameter_names</a></div><div class="ttdeci">detail::parameter_names< detail::decay_t< TArgs >... > parameter_names(TArgs &&...args)</div><div class="ttdoc">The parameter_names function should be used add human-readable names of the parameters,...</div></div> <div class="ttc" id="namespacerttr_html_a2cd2b848b4d218241a8b6e8f7cdbeb93"><div class="ttname"><a href="namespacerttr.html#a2cd2b848b4d218241a8b6e8f7cdbeb93">rttr::metadata</a></div><div class="ttdeci">detail::metadata metadata(variant key, variant value)</div><div class="ttdoc">The metadata function can be used to add additional meta data information during the registration pro...</div></div> <div class="ttc" id="access__levels_8h_html"><div class="ttname"><a href="access__levels_8h.html">access_levels.h</a></div></div> <div class="ttc" id="classrttr_1_1registration_1_1bind_html"><div class="ttname"><a href="classrttr_1_1registration_1_1bind.html">rttr::registration::bind</a></div><div class="ttdoc">The bind class is used to chain registration calls.</div><div class="ttdef"><b>Definition:</b> registration.h:123</div></div> <div class="ttc" id="classrttr_1_1constructor_html"><div class="ttname"><a href="classrttr_1_1constructor.html">rttr::constructor</a></div><div class="ttdoc">The constructor class provides several meta information about a constructor and can be invoked.</div><div class="ttdef"><b>Definition:</b> constructor.h:88</div></div> <div class="ttc" id="namespacerttr_html_aa07db0e4984d0c48adc5d61f834d611ba84807fec67699af41c7bcb3a57dce40b"><div class="ttname"><a href="namespacerttr.html#aa07db0e4984d0c48adc5d61f834d611ba84807fec67699af41c7bcb3a57dce40b">rttr::access_levels::public_access</a></div><div class="ttdoc">Declares that this member was registered with public access.</div></div> <div class="ttc" id="namespacerttr_html_a61265f69675ac438ecfa23b084adaa56"><div class="ttname"><a href="namespacerttr.html#a61265f69675ac438ecfa23b084adaa56">rttr::string_view</a></div><div class="ttdeci">basic_string_view< char > string_view</div><div class="ttdoc">A class to hold a reference to a continuous sequence of char objects.</div><div class="ttdef"><b>Definition:</b> string_view.h:493</div></div> </div><!-- fragment --></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:57 for rttr - 0.9.6 by <a href="http://www.doxygen.org/index.html">doxygen</a>. </small> </address> </body> </html>