Files
dl/document/html/dl__component_8h_source.html
T
2026-09-16 14:07:40 +08:00

447 lines
69 KiB
HTML
Vendored
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>dl: D:/dl/dl/misc/dl_component.h 源文件</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>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.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 id="projectrow">
<td id="projectalign">
<div id="projectname">dl
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<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:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','搜索',false);
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_17297ffb27ce571941f5fb5008f01a1f.html">dl</a></li><li class="navelem"><a class="el" href="dir_f0dc580f54d1d7c03c105e5f92f5d3a8.html">misc</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">dl_component.h</div></div>
</div><!--header-->
<div class="contents">
<a href="dl__component_8h.html">浏览该文件的文档.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#pragma once</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span> </div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &lt;typeinfo&gt;</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="preprocessor">#include &lt;typeindex&gt;</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="preprocessor">#include &lt;array&gt;</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="preprocessor">#include &lt;functional&gt;</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include &quot;<a class="code" href="dl__type_8h.html">dl_type.h</a>&quot;</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="preprocessor">#include &quot;<a class="code" href="dl__align_8h.html">math/dl_align.h</a>&quot;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include &quot;<a class="code" href="dl__coor_8h.html">math/dl_coor.h</a>&quot;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl.html">dl</a></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>{</div>
<div class="foldopen" id="foldopen00033" data-start="{" data-end="}">
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"><a class="line" href="namespacedl_1_1_cpt.html"> 33</a></span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl_1_1_cpt.html">Cpt</a></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>{</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, u<span class="keywordtype">int</span>64_t UID&gt;</div>
<div class="foldopen" id="foldopen00037" data-start="{" data-end="};">
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_variable.html"> 37</a></span> <span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_cpt_1_1_variable.html#aa9097b2f56b9d080d58368c29f850c48">Variable</a></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> {</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_variable.html#ab3c752bb8ba9e0276aeef2adbcdd6393"> 40</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_cpt_1_1_variable.html#ab3c752bb8ba9e0276aeef2adbcdd6393">Set</a>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> v) { _v = v; }</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_variable.html#aa320b805ec3db46fa8332924d21bd466"> 41</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> <a class="code hl_function" href="classdl_1_1_cpt_1_1_variable.html#aa320b805ec3db46fa8332924d21bd466">Get</a>() { <span class="keywordflow">return</span> _v; }</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_variable.html#a0af78f354076009287080b5b68ef9d4a"> 43</a></span> <span class="keyword">operator</span> bool() { <span class="keywordflow">return</span> _v != 0; }</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_variable.html#aa9097b2f56b9d080d58368c29f850c48"> 44</a></span> <a class="code hl_function" href="classdl_1_1_cpt_1_1_variable.html#aa9097b2f56b9d080d58368c29f850c48">Variable</a>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> v) : _v(v) {}</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_variable.html#a1481da4cb64520c6b97f3bbc004c53c0"> 45</a></span> <a class="code hl_function" href="classdl_1_1_cpt_1_1_variable.html#a1481da4cb64520c6b97f3bbc004c53c0">Variable</a>() {}</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> <span class="keyword">private</span>:</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> _v;</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> };</div>
</div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T, u<span class="keywordtype">int</span>64_t UID&gt;</div>
<div class="foldopen" id="foldopen00052" data-start="{" data-end="};">
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_function.html"> 52</a></span> <span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_cpt_1_1_function.html#a9cac6040a20236da14cae8bf35a1271e">Function</a></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> {</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="keyword">public</span>:</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_function.html#a9cac6040a20236da14cae8bf35a1271e"> 55</a></span> <a class="code hl_function" href="classdl_1_1_cpt_1_1_function.html#a9cac6040a20236da14cae8bf35a1271e">Function</a>() = <span class="keywordflow">default</span>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_function.html#a7b84ea325a922ae276fd0606d6b44f32"> 56</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_cpt_1_1_function.html#a7b84ea325a922ae276fd0606d6b44f32">operator=</a>(<span class="keyword">const</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&amp; func) { <a class="code hl_variable" href="classdl_1_1_cpt_1_1_function.html#a68dddeee92014e80fc013f4d37688406">Call</a> = func; }</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="classdl_1_1_cpt_1_1_function.html#a68dddeee92014e80fc013f4d37688406"> 57</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> <a class="code hl_variable" href="classdl_1_1_cpt_1_1_function.html#a68dddeee92014e80fc013f4d37688406">Call</a>;</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> };</div>
</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span>}</div>
</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span></div>
<div class="foldopen" id="foldopen00062" data-start="{" data-end="};">
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html"> 62</a></span><span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_any_type.html#aecac164363c6114d102aa3e7c550d95c">AnyType</a></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span>{</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#add717e36ec7c93afbc858e5d8ab6f4d2"> 64</a></span> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code hl_friend" href="classdl_1_1_any_type.html#add717e36ec7c93afbc858e5d8ab6f4d2">VectorAny</a>;</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#a71cb7e8e9b3638a98d92c4d0530474d8"> 66</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_any_type.html#a71cb7e8e9b3638a98d92c4d0530474d8">operator==</a>(<span class="keyword">const</span> <a class="code hl_function" href="classdl_1_1_any_type.html#aecac164363c6114d102aa3e7c550d95c">AnyType</a>&amp; b) { <span class="keywordflow">return</span> _p == b._p; }</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#a991c30de7d2c508ddb4098a847f66014"> 67</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_any_type.html#a991c30de7d2c508ddb4098a847f66014">operator!=</a>(<span class="keyword">const</span> <a class="code hl_function" href="classdl_1_1_any_type.html#aecac164363c6114d102aa3e7c550d95c">AnyType</a>&amp; b) { <span class="keywordflow">return</span> _id != b._id || _p != b._p; }</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> <span class="comment">//默认构造id为自己</span></div>
<div class="foldopen" id="foldopen00070" data-start="{" data-end="}">
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#aecac164363c6114d102aa3e7c550d95c"> 70</a></span> <a class="code hl_function" href="classdl_1_1_any_type.html#aecac164363c6114d102aa3e7c550d95c">AnyType</a>():</div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> _p{nullptr},</div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> _id{ typeid(<a class="code hl_function" href="classdl_1_1_any_type.html#aecac164363c6114d102aa3e7c550d95c">AnyType</a>) }</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> {}</div>
</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00076" data-start="{" data-end="}">
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#a365175e13bf4421aba84bb1f9571c270"> 76</a></span> <a class="code hl_function" href="classdl_1_1_any_type.html#a365175e13bf4421aba84bb1f9571c270">AnyType</a>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* p):</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> _id{ typeid(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>) }</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> {</div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> _p = p;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> _nameDebug = <span class="keyword">typeid</span>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>).name();</div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span> }</div>
</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00090" data-start="{" data-end="}">
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#a3cbb49dc3c212dee8a946ec8f5ec7288"> 90</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* <a class="code hl_function" href="classdl_1_1_any_type.html#a3cbb49dc3c212dee8a946ec8f5ec7288">Cast</a>()</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> {</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> <span class="keywordflow">if</span> (std::type_index(<span class="keyword">typeid</span>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>)) == _id)</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> {</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> <span class="keywordflow">return</span> (<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>*)_p;</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> }</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span></div>
<div class="foldopen" id="foldopen00103" data-start="{" data-end="}">
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#a3a5a83a06927685e57c17c6f4cbf610a"> 103</a></span> std::type_index <a class="code hl_function" href="classdl_1_1_any_type.html#a3a5a83a06927685e57c17c6f4cbf610a">GetId</a>()</div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> {</div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">return</span> _id;</div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> }</div>
</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span></div>
<div class="foldopen" id="foldopen00111" data-start="{" data-end="}">
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#ad5c5364515fee588d4c48d89ba1f6e54"> 111</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_any_type.html#ad5c5364515fee588d4c48d89ba1f6e54">IsNull</a>()</div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> {</div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="keywordflow">return</span> !_p;</div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> }</div>
</div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="foldopen" id="foldopen00116" data-start="{" data-end="}">
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="classdl_1_1_any_type.html#ac84fb1b774b37355d7f323354d556981"> 116</a></span> std::string <a class="code hl_function" href="classdl_1_1_any_type.html#ac84fb1b774b37355d7f323354d556981">GetNameDebug</a>()</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">return</span> _nameDebug;</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> <span class="keywordflow">return</span> <span class="stringliteral">&quot;Debug版本才有此字段!&quot;</span>;</div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> }</div>
</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> <span class="keywordtype">void</span>* _p;</div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> std::type_index _id;</div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> std::string _nameDebug;</div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span>};</div>
</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span></div>
<div class="foldopen" id="foldopen00134" data-start="{" data-end="};">
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html"> 134</a></span><span class="keyword">class </span><a class="code hl_class" href="classdl_1_1_vector_any.html">VectorAny</a></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span>{</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="keyword">public</span>:</div>
<div class="foldopen" id="foldopen00141" data-start="{" data-end="}">
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html#a871e6365ac65e749c37d947e35aa2d67"> 141</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_vector_any.html#a871e6365ac65e749c37d947e35aa2d67">PushBack</a>(<a class="code hl_class" href="classdl_1_1_any_type.html">AnyType</a> any)</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> {</div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> _vec.push_back(any);</div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> }</div>
</div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span> </div>
<div class="foldopen" id="foldopen00146" data-start="{" data-end="}">
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html#a18558b18852fa79d6e21a0688c10e2cc"> 146</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_vector_any.html#a18558b18852fa79d6e21a0688c10e2cc">Clear</a>()</div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> {</div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span> _vec.clear();</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> }</div>
</div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00155" data-start="{" data-end="}">
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html#a8eb5b825ab0f424a316e7c3cd220be71"> 155</a></span> std::vector&lt;T*&gt; <a class="code hl_function" href="classdl_1_1_vector_any.html#a8eb5b825ab0f424a316e7c3cd220be71">GetMulti</a>()</div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> std::vector&lt;T*&gt; ret;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; iter : _vec)</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">if</span> (iter._id == std::type_index(<span class="keyword">typeid</span>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>)))</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> {</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> ret.push_back((<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>*)iter._p);</div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> }</div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> }</div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> }</div>
</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00173" data-start="{" data-end="}">
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html#a1c3b17d22de3e0291933eac41c0e4229"> 173</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* <a class="code hl_function" href="classdl_1_1_vector_any.html#a1c3b17d22de3e0291933eac41c0e4229">Get</a>(<span class="keywordtype">size_t</span> index = 0)</div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> {</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> <span class="keywordflow">for</span> (<span class="keyword">auto</span>&amp; iter : _vec)</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> {</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">if</span> (iter._id == std::type_index(<span class="keyword">typeid</span>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>)))</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span> {</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> <span class="keywordflow">if</span> (index == 0)</div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span> <span class="keywordflow">return</span> (<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>*)(iter._p);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">else</span></div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> --index;</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span> }</div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span> }</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> }</div>
</div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span></div>
<div class="foldopen" id="foldopen00191" data-start="{" data-end="}">
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html#a07e56d3f51068c8e6d24feec5dc659ba"> 191</a></span> <span class="keyword">auto</span>&amp; <a class="code hl_function" href="classdl_1_1_vector_any.html#a07e56d3f51068c8e6d24feec5dc659ba">GetVector</a>()</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span> {</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> <span class="keywordflow">return</span> _vec;</div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span> }</div>
</div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> </div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html#a6e15304119e5d09159355d7d86058acd"> 196</a></span> std::vector&lt;AnyType&gt;::iterator <a class="code hl_function" href="classdl_1_1_vector_any.html#a6e15304119e5d09159355d7d86058acd">begin</a>() { <span class="keywordflow">return</span> _vec.begin(); }</div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> </div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html#ab349c195a15e080891bd456d630d09a2"> 198</a></span> std::vector&lt;AnyType&gt;::iterator <a class="code hl_function" href="classdl_1_1_vector_any.html#ab349c195a15e080891bd456d630d09a2">end</a>() { <span class="keywordflow">return</span> _vec.end(); }</div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="classdl_1_1_vector_any.html#a83eeafb710142dab010d778d9ecd6e6e"> 200</a></span> <span class="keywordtype">size_t</span> <a class="code hl_function" href="classdl_1_1_vector_any.html#a83eeafb710142dab010d778d9ecd6e6e">GetSize</a>() { <span class="keywordflow">return</span> _vec.size(); }</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> std::vector&lt;AnyType&gt; _vec;</div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span>};</div>
</div>
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span></div>
<div class="foldopen" id="foldopen00207" data-start="{" data-end="};">
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html"> 207</a></span><span class="keyword">class </span><a class="code hl_function" href="classdl_1_1_components.html#aa211a9cff3d6aa32604435e6f7ed4c45">Components</a></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span>{</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00212" data-start="{" data-end="}">
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#aa211a9cff3d6aa32604435e6f7ed4c45"> 212</a></span> <a class="code hl_function" href="classdl_1_1_components.html#aa211a9cff3d6aa32604435e6f7ed4c45">Components</a>(<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* p) : _any(p)</div>
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> {</div>
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span><span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> _nameDebug = _any.GetNameDebug();</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> }</div>
</div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> </div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#a73066aeb02bc757cd11c7c21a7078ea1"> 219</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_components.html#a73066aeb02bc757cd11c7c21a7078ea1">operator==</a>(<span class="keyword">const</span> <a class="code hl_function" href="classdl_1_1_components.html#aa211a9cff3d6aa32604435e6f7ed4c45">Components</a>&amp; b) { <span class="keywordflow">return</span> _any == b._any; }</div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#a762cd229556704406622968b66d97ebe"> 220</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_components.html#a762cd229556704406622968b66d97ebe">operator!=</a>(<span class="keyword">const</span> <a class="code hl_function" href="classdl_1_1_components.html#aa211a9cff3d6aa32604435e6f7ed4c45">Components</a>&amp; b) { <span class="keywordflow">return</span> _any != b._any; }</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span></div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#a1045febd8227c67f5880780eb9fb3f98"> 227</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* <a class="code hl_function" href="classdl_1_1_components.html#a1045febd8227c67f5880780eb9fb3f98">Cast</a>() { <span class="keywordflow">return</span> _any.Cast&lt;<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&gt;(); }</div>
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span></div>
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span> <span class="keyword">template</span> &lt;<span class="keyword">typename</span> T&gt;</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#a194e43597841b16856c78531205110ab"> 233</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* <a class="code hl_function" href="classdl_1_1_components.html#a194e43597841b16856c78531205110ab">Get</a>(<span class="keywordtype">size_t</span> index = 0) { <span class="keywordflow">return</span> _vec.Get&lt;<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&gt;(index); }</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span></div>
<div class="foldopen" id="foldopen00236" data-start="{" data-end="}">
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#a3fc10522deb2208fb4658250fa7f4b8e"> 236</a></span> <a class="code hl_class" href="classdl_1_1_any_type.html">AnyType</a> <a class="code hl_function" href="classdl_1_1_components.html#a3fc10522deb2208fb4658250fa7f4b8e">GetSelf</a>()</div>
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"> 237</span> {</div>
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span> <span class="keywordflow">return</span> _any;</div>
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> }</div>
</div>
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span></div>
<div class="foldopen" id="foldopen00245" data-start="{" data-end="}">
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#adbb389ac9695b28edaa973cca8aa0798"> 245</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_components.html#adbb389ac9695b28edaa973cca8aa0798">PushBack</a>(<a class="code hl_class" href="classdl_1_1_any_type.html">AnyType</a> any)</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> {</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> _vec.PushBack(any);</div>
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> }</div>
</div>
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> </div>
<div class="foldopen" id="foldopen00250" data-start="{" data-end="}">
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#a4e7ae65dc036a893d9b2ba6957f8fc1a"> 250</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_components.html#a4e7ae65dc036a893d9b2ba6957f8fc1a">Clear</a>()</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> {</div>
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> _vec.Clear();</div>
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
</div>
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#ae8fd2226b0494a7370a3ce9c27d9254e"> 255</a></span> <a class="code hl_class" href="classdl_1_1_vector_any.html">VectorAny</a>&amp; <a class="code hl_function" href="classdl_1_1_components.html#ae8fd2226b0494a7370a3ce9c27d9254e">GetVectorAny</a>() { <span class="keywordflow">return</span> _vec; }</div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> </div>
<div class="foldopen" id="foldopen00257" data-start="{" data-end="}">
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#a921cb01effdbf6e8026b3e8667635869"> 257</a></span> std::string <a class="code hl_function" href="classdl_1_1_components.html#a921cb01effdbf6e8026b3e8667635869">GetName</a>()</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> {</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> <span class="keywordflow">return</span> _name;</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> }</div>
</div>
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span></div>
<div class="foldopen" id="foldopen00263" data-start="{" data-end="}">
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#a203e755b53657391d4ae2801946787e4"> 263</a></span> <span class="keywordtype">void</span> <a class="code hl_function" href="classdl_1_1_components.html#a203e755b53657391d4ae2801946787e4">SetName</a>(std::string_view name)</div>
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span> {</div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span> _name = name;</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> }</div>
</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span></div>
<div class="foldopen" id="foldopen00269" data-start="{" data-end="}">
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="classdl_1_1_components.html#afc32bd59bf276297c189c7259b5e9ce8"> 269</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classdl_1_1_components.html#afc32bd59bf276297c189c7259b5e9ce8">IsPure</a>()</div>
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span> {</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">return</span> _any.IsNull();</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> }</div>
</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span><span class="keyword">private</span>:</div>
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> <a class="code hl_class" href="classdl_1_1_vector_any.html">VectorAny</a> _vec;</div>
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <a class="code hl_class" href="classdl_1_1_any_type.html">AnyType</a> _any;</div>
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> std::string _name;</div>
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span><span class="preprocessor">#ifndef NDEBUG</span></div>
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> std::string _nameDebug;</div>
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span>};</div>
</div>
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> </div>
<div class="foldopen" id="foldopen00282" data-start="{" data-end="}">
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"><a class="line" href="namespacedl.html#abba7d12e1a44d6fa4e4fe653fab771a3"> 282</a></span><span class="keyword">inline</span> <a class="code hl_class" href="classdl_1_1_components.html">Components</a>* <a class="code hl_function" href="namespacedl.html#abba7d12e1a44d6fa4e4fe653fab771a3">createComponents</a>(std::string_view name = {})</div>
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span>{</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> Components* ret = <span class="keyword">new</span> Components((<span class="keywordtype">int</span>*)<span class="keyword">nullptr</span>);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> ret-&gt;SetName(name);</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span>}</div>
</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> </div>
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespacedl_1_1_cpt.html">Cpt</a></div>
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span>{</div>
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00295" data-start="{" data-end="}">
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"><a class="line" href="namespacedl_1_1_cpt.html#ad3c6c856c93967290d5ea681d5db1b02"> 295</a></span> std::vector&lt;T*&gt; <a class="code hl_function" href="namespacedl_1_1_cpt.html#ad3c6c856c93967290d5ea681d5db1b02">GetComp</a>(std::vector&lt;Components*&gt;&amp; vec)</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span> {</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span> std::vector&lt;T*&gt; ret;</div>
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span> <span class="keywordflow">for</span> (<a class="code hl_class" href="classdl_1_1_components.html">Components</a>* cpt : vec)</div>
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span> {</div>
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"> 300</span> <a class="code hl_class" href="classdl_1_1_vector_any.html">VectorAny</a>&amp; vec_any = cpt-&gt;GetVectorAny();</div>
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span> std::vector&lt;T*&gt; mul = vec_any.<a class="code hl_function" href="classdl_1_1_vector_any.html#a8eb5b825ab0f424a316e7c3cd220be71">GetMulti</a>&lt;<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&gt;();</div>
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> ret.insert(ret.end(), mul.begin(), mul.end());</div>
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> }</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">return</span> ret;</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> }</div>
</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00311" data-start="{" data-end="}">
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"><a class="line" href="namespacedl_1_1_cpt.html#ade10b571e87075a4d0d1db9b7407f79c"> 311</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* <a class="code hl_function" href="namespacedl_1_1_cpt.html#ade10b571e87075a4d0d1db9b7407f79c">GetFirst</a>(std::vector&lt;Components*&gt;&amp; vec)</div>
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span> {</div>
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span> <span class="keywordflow">for</span> (<a class="code hl_class" href="classdl_1_1_components.html">Components</a>* cpt : vec)</div>
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span> {</div>
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* p = cpt-&gt;GetSelf().Cast&lt;<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&gt;();</div>
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span> <span class="keywordflow">if</span> (p)</div>
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span> <span class="keywordflow">return</span> p;</div>
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span> }</div>
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"> 320</span> }</div>
</div>
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span></div>
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keyword">template</span>&lt;<span class="keyword">typename</span> T&gt;</div>
<div class="foldopen" id="foldopen00325" data-start="{" data-end="}">
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"><a class="line" href="namespacedl_1_1_cpt.html#a9163bacb5c50c0f48cb8343c8badbea0"> 325</a></span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* <a class="code hl_function" href="namespacedl_1_1_cpt.html#a9163bacb5c50c0f48cb8343c8badbea0">GetN</a>(std::vector&lt;Components*&gt;&amp; vec, <span class="keywordtype">size_t</span> n)</div>
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> {</div>
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="keywordflow">for</span> (<a class="code hl_class" href="classdl_1_1_components.html">Components</a>* cpt : vec)</div>
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> {</div>
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>* p = cpt-&gt;GetSelf().Cast&lt;<a class="code hl_enumvalue" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&gt;();</div>
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> <span class="keywordflow">if</span>(!p || n--)</div>
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> <span class="keywordflow">continue</span>;</div>
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="keywordflow">return</span> p;</div>
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> }</div>
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> }</div>
</div>
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span>}</div>
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> </div>
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span>}</div>
<div class="ttc" id="aclassdl_1_1_any_type_html"><div class="ttname"><a href="classdl_1_1_any_type.html">dl::AnyType</a></div><div class="ttdoc">任意类型包装</div><div class="ttdef"><b>定义</b> <a href="#l00062">dl_component.h:63</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_a365175e13bf4421aba84bb1f9571c270"><div class="ttname"><a href="classdl_1_1_any_type.html#a365175e13bf4421aba84bb1f9571c270">dl::AnyType::AnyType</a></div><div class="ttdeci">AnyType(T *p)</div><div class="ttdef"><b>定义</b> <a href="#l00076">dl_component.h:76</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_a3a5a83a06927685e57c17c6f4cbf610a"><div class="ttname"><a href="classdl_1_1_any_type.html#a3a5a83a06927685e57c17c6f4cbf610a">dl::AnyType::GetId</a></div><div class="ttdeci">std::type_index GetId()</div><div class="ttdoc">返回类型id</div><div class="ttdef"><b>定义</b> <a href="#l00103">dl_component.h:103</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_a3cbb49dc3c212dee8a946ec8f5ec7288"><div class="ttname"><a href="classdl_1_1_any_type.html#a3cbb49dc3c212dee8a946ec8f5ec7288">dl::AnyType::Cast</a></div><div class="ttdeci">T * Cast()</div><div class="ttdoc">试图转到指定类型</div><div class="ttdef"><b>定义</b> <a href="#l00090">dl_component.h:90</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_a71cb7e8e9b3638a98d92c4d0530474d8"><div class="ttname"><a href="classdl_1_1_any_type.html#a71cb7e8e9b3638a98d92c4d0530474d8">dl::AnyType::operator==</a></div><div class="ttdeci">bool operator==(const AnyType &amp;b)</div><div class="ttdef"><b>定义</b> <a href="#l00066">dl_component.h:66</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_a991c30de7d2c508ddb4098a847f66014"><div class="ttname"><a href="classdl_1_1_any_type.html#a991c30de7d2c508ddb4098a847f66014">dl::AnyType::operator!=</a></div><div class="ttdeci">bool operator!=(const AnyType &amp;b)</div><div class="ttdef"><b>定义</b> <a href="#l00067">dl_component.h:67</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_ac84fb1b774b37355d7f323354d556981"><div class="ttname"><a href="classdl_1_1_any_type.html#ac84fb1b774b37355d7f323354d556981">dl::AnyType::GetNameDebug</a></div><div class="ttdeci">std::string GetNameDebug()</div><div class="ttdef"><b>定义</b> <a href="#l00116">dl_component.h:116</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_ad5c5364515fee588d4c48d89ba1f6e54"><div class="ttname"><a href="classdl_1_1_any_type.html#ad5c5364515fee588d4c48d89ba1f6e54">dl::AnyType::IsNull</a></div><div class="ttdeci">bool IsNull()</div><div class="ttdoc">是否为空</div><div class="ttdef"><b>定义</b> <a href="#l00111">dl_component.h:111</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_add717e36ec7c93afbc858e5d8ab6f4d2"><div class="ttname"><a href="classdl_1_1_any_type.html#add717e36ec7c93afbc858e5d8ab6f4d2">dl::AnyType::VectorAny</a></div><div class="ttdeci">friend class VectorAny</div><div class="ttdef"><b>定义</b> <a href="#l00064">dl_component.h:64</a></div></div>
<div class="ttc" id="aclassdl_1_1_any_type_html_aecac164363c6114d102aa3e7c550d95c"><div class="ttname"><a href="classdl_1_1_any_type.html#aecac164363c6114d102aa3e7c550d95c">dl::AnyType::AnyType</a></div><div class="ttdeci">AnyType()</div><div class="ttdef"><b>定义</b> <a href="#l00070">dl_component.h:70</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html"><div class="ttname"><a href="classdl_1_1_components.html">dl::Components</a></div><div class="ttdoc">组件容器</div><div class="ttdef"><b>定义</b> <a href="#l00207">dl_component.h:208</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_a1045febd8227c67f5880780eb9fb3f98"><div class="ttname"><a href="classdl_1_1_components.html#a1045febd8227c67f5880780eb9fb3f98">dl::Components::Cast</a></div><div class="ttdeci">T * Cast()</div><div class="ttdoc">试图转到指定类型</div><div class="ttdef"><b>定义</b> <a href="#l00227">dl_component.h:227</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_a194e43597841b16856c78531205110ab"><div class="ttname"><a href="classdl_1_1_components.html#a194e43597841b16856c78531205110ab">dl::Components::Get</a></div><div class="ttdeci">T * Get(size_t index=0)</div><div class="ttdoc">返回第n个类型对象,失败返回nullptr</div><div class="ttdef"><b>定义</b> <a href="#l00233">dl_component.h:233</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_a203e755b53657391d4ae2801946787e4"><div class="ttname"><a href="classdl_1_1_components.html#a203e755b53657391d4ae2801946787e4">dl::Components::SetName</a></div><div class="ttdeci">void SetName(std::string_view name)</div><div class="ttdoc">设置自定义名字</div><div class="ttdef"><b>定义</b> <a href="#l00263">dl_component.h:263</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_a3fc10522deb2208fb4658250fa7f4b8e"><div class="ttname"><a href="classdl_1_1_components.html#a3fc10522deb2208fb4658250fa7f4b8e">dl::Components::GetSelf</a></div><div class="ttdeci">AnyType GetSelf()</div><div class="ttdoc">返回自身</div><div class="ttdef"><b>定义</b> <a href="#l00236">dl_component.h:236</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_a4e7ae65dc036a893d9b2ba6957f8fc1a"><div class="ttname"><a href="classdl_1_1_components.html#a4e7ae65dc036a893d9b2ba6957f8fc1a">dl::Components::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdef"><b>定义</b> <a href="#l00250">dl_component.h:250</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_a73066aeb02bc757cd11c7c21a7078ea1"><div class="ttname"><a href="classdl_1_1_components.html#a73066aeb02bc757cd11c7c21a7078ea1">dl::Components::operator==</a></div><div class="ttdeci">bool operator==(const Components &amp;b)</div><div class="ttdef"><b>定义</b> <a href="#l00219">dl_component.h:219</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_a762cd229556704406622968b66d97ebe"><div class="ttname"><a href="classdl_1_1_components.html#a762cd229556704406622968b66d97ebe">dl::Components::operator!=</a></div><div class="ttdeci">bool operator!=(const Components &amp;b)</div><div class="ttdef"><b>定义</b> <a href="#l00220">dl_component.h:220</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_a921cb01effdbf6e8026b3e8667635869"><div class="ttname"><a href="classdl_1_1_components.html#a921cb01effdbf6e8026b3e8667635869">dl::Components::GetName</a></div><div class="ttdeci">std::string GetName()</div><div class="ttdef"><b>定义</b> <a href="#l00257">dl_component.h:257</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_aa211a9cff3d6aa32604435e6f7ed4c45"><div class="ttname"><a href="classdl_1_1_components.html#aa211a9cff3d6aa32604435e6f7ed4c45">dl::Components::Components</a></div><div class="ttdeci">Components(T *p)</div><div class="ttdoc">any表示实际的对象(比如UI::Text),any为空则为Components</div><div class="ttdef"><b>定义</b> <a href="#l00212">dl_component.h:212</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_adbb389ac9695b28edaa973cca8aa0798"><div class="ttname"><a href="classdl_1_1_components.html#adbb389ac9695b28edaa973cca8aa0798">dl::Components::PushBack</a></div><div class="ttdeci">void PushBack(AnyType any)</div><div class="ttdoc">添加一个任意对象</div><div class="ttdef"><b>定义</b> <a href="#l00245">dl_component.h:245</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_ae8fd2226b0494a7370a3ce9c27d9254e"><div class="ttname"><a href="classdl_1_1_components.html#ae8fd2226b0494a7370a3ce9c27d9254e">dl::Components::GetVectorAny</a></div><div class="ttdeci">VectorAny &amp; GetVectorAny()</div><div class="ttdef"><b>定义</b> <a href="#l00255">dl_component.h:255</a></div></div>
<div class="ttc" id="aclassdl_1_1_components_html_afc32bd59bf276297c189c7259b5e9ce8"><div class="ttname"><a href="classdl_1_1_components.html#afc32bd59bf276297c189c7259b5e9ce8">dl::Components::IsPure</a></div><div class="ttdeci">bool IsPure()</div><div class="ttdoc">单纯的Componetsany为空</div><div class="ttdef"><b>定义</b> <a href="#l00269">dl_component.h:269</a></div></div>
<div class="ttc" id="aclassdl_1_1_cpt_1_1_function_html_a68dddeee92014e80fc013f4d37688406"><div class="ttname"><a href="classdl_1_1_cpt_1_1_function.html#a68dddeee92014e80fc013f4d37688406">dl::Cpt::Function&lt; std::function&lt; bool()&gt;, str_uid(&quot;IsPickup&quot;)&gt;::Call</a></div><div class="ttdeci">std::function&lt; bool()&gt; Call</div><div class="ttdef"><b>定义</b> <a href="#l00057">dl_component.h:57</a></div></div>
<div class="ttc" id="aclassdl_1_1_cpt_1_1_function_html_a7b84ea325a922ae276fd0606d6b44f32"><div class="ttname"><a href="classdl_1_1_cpt_1_1_function.html#a7b84ea325a922ae276fd0606d6b44f32">dl::Cpt::Function::operator=</a></div><div class="ttdeci">void operator=(const T &amp;func)</div><div class="ttdef"><b>定义</b> <a href="#l00056">dl_component.h:56</a></div></div>
<div class="ttc" id="aclassdl_1_1_cpt_1_1_function_html_a9cac6040a20236da14cae8bf35a1271e"><div class="ttname"><a href="classdl_1_1_cpt_1_1_function.html#a9cac6040a20236da14cae8bf35a1271e">dl::Cpt::Function::Function</a></div><div class="ttdeci">Function()=default</div></div>
<div class="ttc" id="aclassdl_1_1_cpt_1_1_variable_html_a1481da4cb64520c6b97f3bbc004c53c0"><div class="ttname"><a href="classdl_1_1_cpt_1_1_variable.html#a1481da4cb64520c6b97f3bbc004c53c0">dl::Cpt::Variable::Variable</a></div><div class="ttdeci">Variable()</div><div class="ttdef"><b>定义</b> <a href="#l00045">dl_component.h:45</a></div></div>
<div class="ttc" id="aclassdl_1_1_cpt_1_1_variable_html_aa320b805ec3db46fa8332924d21bd466"><div class="ttname"><a href="classdl_1_1_cpt_1_1_variable.html#aa320b805ec3db46fa8332924d21bd466">dl::Cpt::Variable::Get</a></div><div class="ttdeci">T Get()</div><div class="ttdef"><b>定义</b> <a href="#l00041">dl_component.h:41</a></div></div>
<div class="ttc" id="aclassdl_1_1_cpt_1_1_variable_html_aa9097b2f56b9d080d58368c29f850c48"><div class="ttname"><a href="classdl_1_1_cpt_1_1_variable.html#aa9097b2f56b9d080d58368c29f850c48">dl::Cpt::Variable::Variable</a></div><div class="ttdeci">Variable(T v)</div><div class="ttdef"><b>定义</b> <a href="#l00044">dl_component.h:44</a></div></div>
<div class="ttc" id="aclassdl_1_1_cpt_1_1_variable_html_ab3c752bb8ba9e0276aeef2adbcdd6393"><div class="ttname"><a href="classdl_1_1_cpt_1_1_variable.html#ab3c752bb8ba9e0276aeef2adbcdd6393">dl::Cpt::Variable::Set</a></div><div class="ttdeci">void Set(T v)</div><div class="ttdef"><b>定义</b> <a href="#l00040">dl_component.h:40</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html"><div class="ttname"><a href="classdl_1_1_vector_any.html">dl::VectorAny</a></div><div class="ttdoc">任意对象容器(组件)</div><div class="ttdef"><b>定义</b> <a href="#l00134">dl_component.h:135</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html_a07e56d3f51068c8e6d24feec5dc659ba"><div class="ttname"><a href="classdl_1_1_vector_any.html#a07e56d3f51068c8e6d24feec5dc659ba">dl::VectorAny::GetVector</a></div><div class="ttdeci">auto &amp; GetVector()</div><div class="ttdoc">返回所有对象</div><div class="ttdef"><b>定义</b> <a href="#l00191">dl_component.h:191</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html_a18558b18852fa79d6e21a0688c10e2cc"><div class="ttname"><a href="classdl_1_1_vector_any.html#a18558b18852fa79d6e21a0688c10e2cc">dl::VectorAny::Clear</a></div><div class="ttdeci">void Clear()</div><div class="ttdef"><b>定义</b> <a href="#l00146">dl_component.h:146</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html_a1c3b17d22de3e0291933eac41c0e4229"><div class="ttname"><a href="classdl_1_1_vector_any.html#a1c3b17d22de3e0291933eac41c0e4229">dl::VectorAny::Get</a></div><div class="ttdeci">T * Get(size_t index=0)</div><div class="ttdoc">返回第n个类型对象,失败返回nullptr</div><div class="ttdef"><b>定义</b> <a href="#l00173">dl_component.h:173</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html_a6e15304119e5d09159355d7d86058acd"><div class="ttname"><a href="classdl_1_1_vector_any.html#a6e15304119e5d09159355d7d86058acd">dl::VectorAny::begin</a></div><div class="ttdeci">std::vector&lt; AnyType &gt;::iterator begin()</div><div class="ttdef"><b>定义</b> <a href="#l00196">dl_component.h:196</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html_a83eeafb710142dab010d778d9ecd6e6e"><div class="ttname"><a href="classdl_1_1_vector_any.html#a83eeafb710142dab010d778d9ecd6e6e">dl::VectorAny::GetSize</a></div><div class="ttdeci">size_t GetSize()</div><div class="ttdef"><b>定义</b> <a href="#l00200">dl_component.h:200</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html_a871e6365ac65e749c37d947e35aa2d67"><div class="ttname"><a href="classdl_1_1_vector_any.html#a871e6365ac65e749c37d947e35aa2d67">dl::VectorAny::PushBack</a></div><div class="ttdeci">void PushBack(AnyType any)</div><div class="ttdoc">添加一个任意对象</div><div class="ttdef"><b>定义</b> <a href="#l00141">dl_component.h:141</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html_a8eb5b825ab0f424a316e7c3cd220be71"><div class="ttname"><a href="classdl_1_1_vector_any.html#a8eb5b825ab0f424a316e7c3cd220be71">dl::VectorAny::GetMulti</a></div><div class="ttdeci">std::vector&lt; T * &gt; GetMulti()</div><div class="ttdoc">返回所有指定类型的对象</div><div class="ttdef"><b>定义</b> <a href="#l00155">dl_component.h:155</a></div></div>
<div class="ttc" id="aclassdl_1_1_vector_any_html_ab349c195a15e080891bd456d630d09a2"><div class="ttname"><a href="classdl_1_1_vector_any.html#ab349c195a15e080891bd456d630d09a2">dl::VectorAny::end</a></div><div class="ttdeci">std::vector&lt; AnyType &gt;::iterator end()</div><div class="ttdef"><b>定义</b> <a href="#l00198">dl_component.h:198</a></div></div>
<div class="ttc" id="adl__align_8h_html"><div class="ttname"><a href="dl__align_8h.html">dl_align.h</a></div><div class="ttdoc">方向和对齐定义</div></div>
<div class="ttc" id="adl__coor_8h_html"><div class="ttname"><a href="dl__coor_8h.html">dl_coor.h</a></div><div class="ttdoc">2d坐标系</div></div>
<div class="ttc" id="adl__type_8h_html"><div class="ttname"><a href="dl__type_8h.html">dl_type.h</a></div><div class="ttdoc">通用类型</div></div>
<div class="ttc" id="anamespacedl_1_1_cpt_html"><div class="ttname"><a href="namespacedl_1_1_cpt.html">dl::Cpt</a></div><div class="ttdoc">子组件命名空间</div><div class="ttdef"><b>定义</b> <a href="#l00033">dl_component.h:34</a></div></div>
<div class="ttc" id="anamespacedl_1_1_cpt_html_a9163bacb5c50c0f48cb8343c8badbea0"><div class="ttname"><a href="namespacedl_1_1_cpt.html#a9163bacb5c50c0f48cb8343c8badbea0">dl::Cpt::GetN</a></div><div class="ttdeci">T * GetN(std::vector&lt; Components * &gt; &amp;vec, size_t n)</div><div class="ttdoc">从vector&lt;Components*&gt;返回指定类型的第n个元素</div><div class="ttdef"><b>定义</b> <a href="#l00325">dl_component.h:325</a></div></div>
<div class="ttc" id="anamespacedl_1_1_cpt_html_ad3c6c856c93967290d5ea681d5db1b02"><div class="ttname"><a href="namespacedl_1_1_cpt.html#ad3c6c856c93967290d5ea681d5db1b02">dl::Cpt::GetComp</a></div><div class="ttdeci">std::vector&lt; T * &gt; GetComp(std::vector&lt; Components * &gt; &amp;vec)</div><div class="ttdoc">从vector&lt;Components*&gt;返回指定类型的所有组件</div><div class="ttdef"><b>定义</b> <a href="#l00295">dl_component.h:295</a></div></div>
<div class="ttc" id="anamespacedl_1_1_cpt_html_ade10b571e87075a4d0d1db9b7407f79c"><div class="ttname"><a href="namespacedl_1_1_cpt.html#ade10b571e87075a4d0d1db9b7407f79c">dl::Cpt::GetFirst</a></div><div class="ttdeci">T * GetFirst(std::vector&lt; Components * &gt; &amp;vec)</div><div class="ttdoc">从vector&lt;Components*&gt;返回指定类型的第一个元素</div><div class="ttdef"><b>定义</b> <a href="#l00311">dl_component.h:311</a></div></div>
<div class="ttc" id="anamespacedl_html"><div class="ttname"><a href="namespacedl.html">dl</a></div><div class="ttdef"><b>定义</b> <a href="dl__array_8h_source.html#l00021">dl_array.h:22</a></div></div>
<div class="ttc" id="anamespacedl_html_a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3"><div class="ttname"><a href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">dl::KeyCode::T</a></div><div class="ttdeci">@ T</div><div class="ttdef"><b>定义</b> <a href="dl__input_8h_source.html#l00121">dl_input.h:121</a></div></div>
<div class="ttc" id="anamespacedl_html_abba7d12e1a44d6fa4e4fe653fab771a3"><div class="ttname"><a href="namespacedl.html#abba7d12e1a44d6fa4e4fe653fab771a3">dl::createComponents</a></div><div class="ttdeci">Components * createComponents(std::string_view name={})</div><div class="ttdef"><b>定义</b> <a href="#l00282">dl_component.h:282</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
</small></address>
</div><!-- doc-content -->
</body>
</html>