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

149 lines
12 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="summary">
<a href="#nested-classes"></a> &#124;
<a href="#namespaces">命名空间</a> &#124;
<a href="#func-members">函数</a> </div>
<div class="headertitle"><div class="title">dl_component.h 文件参考</div></div>
</div><!--header-->
<div class="contents">
<p>组件系统
<a href="#details">更多...</a></p>
<div class="textblock"><code>#include &lt;typeinfo&gt;</code><br />
<code>#include &lt;typeindex&gt;</code><br />
<code>#include &lt;string&gt;</code><br />
<code>#include &lt;vector&gt;</code><br />
<code>#include &lt;array&gt;</code><br />
<code>#include &lt;functional&gt;</code><br />
<code>#include &quot;<a class="el" href="dl__type_8h_source.html">dl_type.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="dl__align_8h_source.html">math/dl_align.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="dl__coor_8h_source.html">math/dl_coor.h</a>&quot;</code><br />
</div>
<p><a href="dl__component_8h_source.html">浏览该文件的源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdl_1_1_cpt_1_1_variable.html">dl::Cpt::Variable&lt; T, UID &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">变量,注意模板参数 需要实例化后不重复 <a href="classdl_1_1_cpt_1_1_variable.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdl_1_1_cpt_1_1_function.html">dl::Cpt::Function&lt; T, UID &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">由于this指针在构造完成之前无效,不能在初始化列表构造 <a href="classdl_1_1_cpt_1_1_function.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdl_1_1_any_type.html">dl::AnyType</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">任意类型包装 <a href="classdl_1_1_any_type.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdl_1_1_vector_any.html">dl::VectorAny</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">任意对象容器(组件) <a href="classdl_1_1_vector_any.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classdl_1_1_components.html">dl::Components</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">组件容器 <a href="classdl_1_1_components.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
命名空间</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedl.html">dl</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedl_1_1_cpt.html">dl::Cpt</a></td></tr>
<tr class="memdesc:namespacedl_1_1_cpt"><td class="mdescLeft">&#160;</td><td class="mdescRight">子组件命名空间 <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:abba7d12e1a44d6fa4e4fe653fab771a3" id="r_abba7d12e1a44d6fa4e4fe653fab771a3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdl_1_1_components.html">Components</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedl.html#abba7d12e1a44d6fa4e4fe653fab771a3">dl::createComponents</a> (std::string_view name={})</td></tr>
<tr class="separator:abba7d12e1a44d6fa4e4fe653fab771a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad3c6c856c93967290d5ea681d5db1b02" id="r_ad3c6c856c93967290d5ea681d5db1b02"><td class="memTemplParams" colspan="2">template&lt;typename <a class="el" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&gt; </td></tr>
<tr class="memitem:ad3c6c856c93967290d5ea681d5db1b02"><td class="memTemplItemLeft" align="right" valign="top">std::vector&lt; <a class="el" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> * &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacedl_1_1_cpt.html#ad3c6c856c93967290d5ea681d5db1b02">dl::Cpt::GetComp</a> (std::vector&lt; <a class="el" href="classdl_1_1_components.html">Components</a> * &gt; &amp;vec)</td></tr>
<tr class="memdesc:ad3c6c856c93967290d5ea681d5db1b02"><td class="mdescLeft">&#160;</td><td class="mdescRight">从vector&lt;Components*&gt;返回指定类型的所有组件 <br /></td></tr>
<tr class="separator:ad3c6c856c93967290d5ea681d5db1b02"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade10b571e87075a4d0d1db9b7407f79c" id="r_ade10b571e87075a4d0d1db9b7407f79c"><td class="memTemplParams" colspan="2">template&lt;typename <a class="el" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&gt; </td></tr>
<tr class="memitem:ade10b571e87075a4d0d1db9b7407f79c"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacedl_1_1_cpt.html#ade10b571e87075a4d0d1db9b7407f79c">dl::Cpt::GetFirst</a> (std::vector&lt; <a class="el" href="classdl_1_1_components.html">Components</a> * &gt; &amp;vec)</td></tr>
<tr class="memdesc:ade10b571e87075a4d0d1db9b7407f79c"><td class="mdescLeft">&#160;</td><td class="mdescRight">从vector&lt;Components*&gt;返回指定类型的第一个元素 <br /></td></tr>
<tr class="separator:ade10b571e87075a4d0d1db9b7407f79c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9163bacb5c50c0f48cb8343c8badbea0" id="r_a9163bacb5c50c0f48cb8343c8badbea0"><td class="memTemplParams" colspan="2">template&lt;typename <a class="el" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a>&gt; </td></tr>
<tr class="memitem:a9163bacb5c50c0f48cb8343c8badbea0"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="namespacedl.html#a38a0162879cdbfbbe99ba16e7a170132ab9ece18c950afbfa6b0fdbfa4ff731d3">T</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacedl_1_1_cpt.html#a9163bacb5c50c0f48cb8343c8badbea0">dl::Cpt::GetN</a> (std::vector&lt; <a class="el" href="classdl_1_1_components.html">Components</a> * &gt; &amp;vec, size_t n)</td></tr>
<tr class="memdesc:a9163bacb5c50c0f48cb8343c8badbea0"><td class="mdescLeft">&#160;</td><td class="mdescRight">从vector&lt;Components*&gt;返回指定类型的第n个元素 <br /></td></tr>
<tr class="separator:a9163bacb5c50c0f48cb8343c8badbea0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>组件系统 </p>
<dl class="section version"><dt>版本</dt><dd>1.0 </dd></dl>
<dl class="section author"><dt>作者</dt><dd>lveyou </dd></dl>
<dl class="section date"><dt>日期</dt><dd>22-01-01</dd></dl>
<dl class="section note"><dt>注解</dt><dd>用于取代绑定于代码的静态继承关系,动态化功能组件 </dd>
<dd>
避免使用std::any,以完全掌控性能 </dd>
<dd>
如果没有组件需求,直接使用vector&lt;any&gt;即可 </dd>
<dd>
组件仅仅是{AnyTypeVectorAny}的组合</dd>
<dd>
命名缩写规范:ele表示多个Components(单个元素)、cpt表示Components、comp表示单个组件 </dd></dl>
<p class="definition">在文件 <a class="el" href="dl__component_8h_source.html">dl_component.h</a> 中定义.</p>
</div></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>