Files
entt/classentt_1_1basic__registry.html
2020-09-22 08:42:41 +02:00

3779 lines
218 KiB
HTML

<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.20"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>EnTT: entt::basic_registry&lt; Entity &gt; Class Template Reference</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>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.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 style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">EnTT
&#160;<span id="projectnumber">3.5.2</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.20 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @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:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1basic__registry.html">basic_registry</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
<a href="classentt_1_1basic__registry-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::basic_registry&lt; Entity &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Fast and reliable entity-component system.
<a href="classentt_1_1basic__registry.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="registry_8hpp_source.html">registry.hpp</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a7df39ef4ca62af9540f593dfb5550138"><td class="memItemLeft" align="right" valign="top"><a id="a7df39ef4ca62af9540f593dfb5550138"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> = Entity</td></tr>
<tr class="memdesc:a7df39ef4ca62af9540f593dfb5550138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:a7df39ef4ca62af9540f593dfb5550138"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae2197c81e29459bbe3fa7984656a2b6"><td class="memItemLeft" align="right" valign="top"><a id="aae2197c81e29459bbe3fa7984656a2b6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aae2197c81e29459bbe3fa7984656a2b6">version_type</a> = typename traits_type::version_type</td></tr>
<tr class="memdesc:aae2197c81e29459bbe3fa7984656a2b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying version type. <br /></td></tr>
<tr class="separator:aae2197c81e29459bbe3fa7984656a2b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a44260f861a699f1353097391c51636"><td class="memItemLeft" align="right" valign="top"><a id="a6a44260f861a699f1353097391c51636"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> = std::size_t</td></tr>
<tr class="memdesc:a6a44260f861a699f1353097391c51636"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:a6a44260f861a699f1353097391c51636"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0998b4125d8d2c92817dccac31e7f652"><td class="memItemLeft" align="right" valign="top"><a id="a0998b4125d8d2c92817dccac31e7f652"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a0998b4125d8d2c92817dccac31e7f652">basic_registry</a> ()=default</td></tr>
<tr class="memdesc:a0998b4125d8d2c92817dccac31e7f652"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:a0998b4125d8d2c92817dccac31e7f652"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3fc181b150fee3e42b8cad4103953b9f"><td class="memItemLeft" align="right" valign="top"><a id="a3fc181b150fee3e42b8cad4103953b9f"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a3fc181b150fee3e42b8cad4103953b9f">basic_registry</a> (<a class="el" href="classentt_1_1basic__registry.html">basic_registry</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a3fc181b150fee3e42b8cad4103953b9f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move constructor. <br /></td></tr>
<tr class="separator:a3fc181b150fee3e42b8cad4103953b9f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70f7acd3a0e9a8dc4ef7e85172f93a59"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html">basic_registry</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a70f7acd3a0e9a8dc4ef7e85172f93a59">operator=</a> (<a class="el" href="classentt_1_1basic__registry.html">basic_registry</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a70f7acd3a0e9a8dc4ef7e85172f93a59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move assignment operator. <a href="classentt_1_1basic__registry.html#a70f7acd3a0e9a8dc4ef7e85172f93a59">More...</a><br /></td></tr>
<tr class="separator:a70f7acd3a0e9a8dc4ef7e85172f93a59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aad398e6279c6bbee2068b94c74bf83d6"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:aad398e6279c6bbee2068b94c74bf83d6"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aad398e6279c6bbee2068b94c74bf83d6">prepare</a> ()</td></tr>
<tr class="memdesc:aad398e6279c6bbee2068b94c74bf83d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares a pool for the given type if required. <a href="classentt_1_1basic__registry.html#aad398e6279c6bbee2068b94c74bf83d6">More...</a><br /></td></tr>
<tr class="separator:aad398e6279c6bbee2068b94c74bf83d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a747d182de87516a3445f8df77d65e815"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:a747d182de87516a3445f8df77d65e815"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a747d182de87516a3445f8df77d65e815">size</a> () const</td></tr>
<tr class="memdesc:a747d182de87516a3445f8df77d65e815"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of existing components of the given type. <a href="classentt_1_1basic__registry.html#a747d182de87516a3445f8df77d65e815">More...</a><br /></td></tr>
<tr class="separator:a747d182de87516a3445f8df77d65e815"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a58f71029ea074358486a0214677a786e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a58f71029ea074358486a0214677a786e">size</a> () const noexcept</td></tr>
<tr class="memdesc:a58f71029ea074358486a0214677a786e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of entities created so far. <a href="classentt_1_1basic__registry.html#a58f71029ea074358486a0214677a786e">More...</a><br /></td></tr>
<tr class="separator:a58f71029ea074358486a0214677a786e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a42cddcb9bd14802bd597e789ff341f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a7a42cddcb9bd14802bd597e789ff341f">alive</a> () const</td></tr>
<tr class="memdesc:a7a42cddcb9bd14802bd597e789ff341f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of entities still in use. <a href="classentt_1_1basic__registry.html#a7a42cddcb9bd14802bd597e789ff341f">More...</a><br /></td></tr>
<tr class="separator:a7a42cddcb9bd14802bd597e789ff341f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a632adf32f7b23f1dae8bf4f8800a0bbe"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a632adf32f7b23f1dae8bf4f8800a0bbe"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a632adf32f7b23f1dae8bf4f8800a0bbe">reserve</a> (const <a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> cap)</td></tr>
<tr class="memdesc:a632adf32f7b23f1dae8bf4f8800a0bbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases the capacity of the registry or of the pools for the given components. <a href="classentt_1_1basic__registry.html#a632adf32f7b23f1dae8bf4f8800a0bbe">More...</a><br /></td></tr>
<tr class="separator:a632adf32f7b23f1dae8bf4f8800a0bbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40c4a407d4a7a74fec41d44e915c4d89"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:a40c4a407d4a7a74fec41d44e915c4d89"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a40c4a407d4a7a74fec41d44e915c4d89">capacity</a> () const</td></tr>
<tr class="memdesc:a40c4a407d4a7a74fec41d44e915c4d89"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the capacity of the pool for the given component. <a href="classentt_1_1basic__registry.html#a40c4a407d4a7a74fec41d44e915c4d89">More...</a><br /></td></tr>
<tr class="separator:a40c4a407d4a7a74fec41d44e915c4d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7e3608cf125ed2cf3260e73d60c32620"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a7e3608cf125ed2cf3260e73d60c32620">capacity</a> () const noexcept</td></tr>
<tr class="memdesc:a7e3608cf125ed2cf3260e73d60c32620"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of entities that a registry has currently allocated space for. <a href="classentt_1_1basic__registry.html#a7e3608cf125ed2cf3260e73d60c32620">More...</a><br /></td></tr>
<tr class="separator:a7e3608cf125ed2cf3260e73d60c32620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63aa387e557553d61483a58807cd785e"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a63aa387e557553d61483a58807cd785e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a63aa387e557553d61483a58807cd785e">shrink_to_fit</a> ()</td></tr>
<tr class="memdesc:a63aa387e557553d61483a58807cd785e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests the removal of unused capacity for the given components. <a href="classentt_1_1basic__registry.html#a63aa387e557553d61483a58807cd785e">More...</a><br /></td></tr>
<tr class="separator:a63aa387e557553d61483a58807cd785e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba306a930c1a516cb9c9a764d2f4791f"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:aba306a930c1a516cb9c9a764d2f4791f"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aba306a930c1a516cb9c9a764d2f4791f">empty</a> () const</td></tr>
<tr class="memdesc:aba306a930c1a516cb9c9a764d2f4791f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the registry or the pools of the given components are empty. <a href="classentt_1_1basic__registry.html#aba306a930c1a516cb9c9a764d2f4791f">More...</a><br /></td></tr>
<tr class="separator:aba306a930c1a516cb9c9a764d2f4791f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a195a60b85fe32562541dc5139cdc7f94"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:a195a60b85fe32562541dc5139cdc7f94"><td class="memTemplItemLeft" align="right" valign="top">const Component *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a195a60b85fe32562541dc5139cdc7f94">raw</a> () const</td></tr>
<tr class="memdesc:a195a60b85fe32562541dc5139cdc7f94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the list of components of a given pool. <a href="classentt_1_1basic__registry.html#a195a60b85fe32562541dc5139cdc7f94">More...</a><br /></td></tr>
<tr class="separator:a195a60b85fe32562541dc5139cdc7f94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51d3d20f21633c0269213807d02cca55"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:a51d3d20f21633c0269213807d02cca55"><td class="memTemplItemLeft" align="right" valign="top">Component *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a51d3d20f21633c0269213807d02cca55">raw</a> ()</td></tr>
<tr class="memdesc:a51d3d20f21633c0269213807d02cca55"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the list of components of a given pool. <a href="classentt_1_1basic__registry.html#a51d3d20f21633c0269213807d02cca55">More...</a><br /></td></tr>
<tr class="separator:a51d3d20f21633c0269213807d02cca55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1db6c4749dda201f7f74004ea22de193"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:a1db6c4749dda201f7f74004ea22de193"><td class="memTemplItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a1db6c4749dda201f7f74004ea22de193">data</a> () const</td></tr>
<tr class="memdesc:a1db6c4749dda201f7f74004ea22de193"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the list of entities of a given pool. <a href="classentt_1_1basic__registry.html#a1db6c4749dda201f7f74004ea22de193">More...</a><br /></td></tr>
<tr class="separator:a1db6c4749dda201f7f74004ea22de193"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a62001aa75a17144bf3f78e43f1c28be7"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a62001aa75a17144bf3f78e43f1c28be7">data</a> () const noexcept</td></tr>
<tr class="memdesc:a62001aa75a17144bf3f78e43f1c28be7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the list of entities of a registry. <a href="classentt_1_1basic__registry.html#a62001aa75a17144bf3f78e43f1c28be7">More...</a><br /></td></tr>
<tr class="separator:a62001aa75a17144bf3f78e43f1c28be7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1795b1221d728f806319a685930f520d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a1795b1221d728f806319a685930f520d">valid</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) const</td></tr>
<tr class="memdesc:a1795b1221d728f806319a685930f520d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an entity identifier refers to a valid entity. <a href="classentt_1_1basic__registry.html#a1795b1221d728f806319a685930f520d">More...</a><br /></td></tr>
<tr class="separator:a1795b1221d728f806319a685930f520d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a199babc787d6baa6f7ccce761228a5f6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#aae2197c81e29459bbe3fa7984656a2b6">version_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a199babc787d6baa6f7ccce761228a5f6">current</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) const</td></tr>
<tr class="memdesc:a199babc787d6baa6f7ccce761228a5f6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the actual version for an entity identifier. <a href="classentt_1_1basic__registry.html#a199babc787d6baa6f7ccce761228a5f6">More...</a><br /></td></tr>
<tr class="separator:a199babc787d6baa6f7ccce761228a5f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91bfd7ec05e6d718e47da581a893cdc4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a91bfd7ec05e6d718e47da581a893cdc4">create</a> ()</td></tr>
<tr class="memdesc:a91bfd7ec05e6d718e47da581a893cdc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new entity and returns it. <a href="classentt_1_1basic__registry.html#a91bfd7ec05e6d718e47da581a893cdc4">More...</a><br /></td></tr>
<tr class="separator:a91bfd7ec05e6d718e47da581a893cdc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab04ebcb3409a5e99a3a86a2f5b48e052"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ab04ebcb3409a5e99a3a86a2f5b48e052">create</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> hint)</td></tr>
<tr class="memdesc:ab04ebcb3409a5e99a3a86a2f5b48e052"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a new entity and returns it. <a href="classentt_1_1basic__registry.html#ab04ebcb3409a5e99a3a86a2f5b48e052">More...</a><br /></td></tr>
<tr class="separator:ab04ebcb3409a5e99a3a86a2f5b48e052"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a334768416fdf6372ecfdef9ec4f03e83"><td class="memTemplParams" colspan="2">template&lt;typename It &gt; </td></tr>
<tr class="memitem:a334768416fdf6372ecfdef9ec4f03e83"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a334768416fdf6372ecfdef9ec4f03e83">create</a> (It first, It last)</td></tr>
<tr class="memdesc:a334768416fdf6372ecfdef9ec4f03e83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns each element in a range an entity. <a href="classentt_1_1basic__registry.html#a334768416fdf6372ecfdef9ec4f03e83">More...</a><br /></td></tr>
<tr class="separator:a334768416fdf6372ecfdef9ec4f03e83"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fe685b0635d51619b8c60f23e016e85"><td class="memTemplParams" colspan="2">template&lt;typename It &gt; </td></tr>
<tr class="memitem:a8fe685b0635d51619b8c60f23e016e85"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a8fe685b0635d51619b8c60f23e016e85">assign</a> (It first, It last)</td></tr>
<tr class="memdesc:a8fe685b0635d51619b8c60f23e016e85"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns entities to an empty registry. <a href="classentt_1_1basic__registry.html#a8fe685b0635d51619b8c60f23e016e85">More...</a><br /></td></tr>
<tr class="separator:a8fe685b0635d51619b8c60f23e016e85"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af58f3add442cfb3f1fa470402db072bd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#af58f3add442cfb3f1fa470402db072bd">destroy</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>)</td></tr>
<tr class="memdesc:af58f3add442cfb3f1fa470402db072bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys an entity. <a href="classentt_1_1basic__registry.html#af58f3add442cfb3f1fa470402db072bd">More...</a><br /></td></tr>
<tr class="separator:af58f3add442cfb3f1fa470402db072bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add41f14182d13fd3c70811dd08cdde41"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#add41f14182d13fd3c70811dd08cdde41">destroy</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>, const <a class="el" href="classentt_1_1basic__registry.html#aae2197c81e29459bbe3fa7984656a2b6">version_type</a> <a class="el" href="classentt_1_1basic__registry.html#a5d5337d542648950173be95b47dcf9a5">version</a>)</td></tr>
<tr class="memdesc:add41f14182d13fd3c70811dd08cdde41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys an entity. <a href="classentt_1_1basic__registry.html#add41f14182d13fd3c70811dd08cdde41">More...</a><br /></td></tr>
<tr class="separator:add41f14182d13fd3c70811dd08cdde41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c163dcc335da90e727e2f40e67973b7"><td class="memTemplParams" colspan="2">template&lt;typename It &gt; </td></tr>
<tr class="memitem:a6c163dcc335da90e727e2f40e67973b7"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a6c163dcc335da90e727e2f40e67973b7">destroy</a> (It first, It last)</td></tr>
<tr class="memdesc:a6c163dcc335da90e727e2f40e67973b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys all the entities in a range. <a href="classentt_1_1basic__registry.html#a6c163dcc335da90e727e2f40e67973b7">More...</a><br /></td></tr>
<tr class="separator:a6c163dcc335da90e727e2f40e67973b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac138930f54716e2b31907586e45367be"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Args&gt; </td></tr>
<tr class="memitem:ac138930f54716e2b31907586e45367be"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ac138930f54716e2b31907586e45367be">emplace</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:ac138930f54716e2b31907586e45367be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns the given component to an entity. <a href="classentt_1_1basic__registry.html#ac138930f54716e2b31907586e45367be">More...</a><br /></td></tr>
<tr class="separator:ac138930f54716e2b31907586e45367be"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3587004bdab85280c2a2a1b6371fd4c5"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename It &gt; </td></tr>
<tr class="memitem:a3587004bdab85280c2a2a1b6371fd4c5"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a3587004bdab85280c2a2a1b6371fd4c5">insert</a> (It first, It last, const Component &amp;value={})</td></tr>
<tr class="memdesc:a3587004bdab85280c2a2a1b6371fd4c5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns each entity in a range the given component. <a href="classentt_1_1basic__registry.html#a3587004bdab85280c2a2a1b6371fd4c5">More...</a><br /></td></tr>
<tr class="separator:a3587004bdab85280c2a2a1b6371fd4c5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930803b0206798002a0bbae79d7dd82e"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename EIt , typename CIt &gt; </td></tr>
<tr class="memitem:a930803b0206798002a0bbae79d7dd82e"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a930803b0206798002a0bbae79d7dd82e">insert</a> (EIt first, EIt last, CIt from, CIt to)</td></tr>
<tr class="memdesc:a930803b0206798002a0bbae79d7dd82e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns each entity in a range the given components. <a href="classentt_1_1basic__registry.html#a930803b0206798002a0bbae79d7dd82e">More...</a><br /></td></tr>
<tr class="separator:a930803b0206798002a0bbae79d7dd82e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c768fb13e23109823e1dc217eee100a"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Args&gt; </td></tr>
<tr class="memitem:a5c768fb13e23109823e1dc217eee100a"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a5c768fb13e23109823e1dc217eee100a">emplace_or_replace</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a5c768fb13e23109823e1dc217eee100a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns or replaces the given component for an entity. <a href="classentt_1_1basic__registry.html#a5c768fb13e23109823e1dc217eee100a">More...</a><br /></td></tr>
<tr class="separator:a5c768fb13e23109823e1dc217eee100a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e83139f8d6774092bb4e0d14446f875"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Func&gt; </td></tr>
<tr class="memitem:a4e83139f8d6774092bb4e0d14446f875"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a4e83139f8d6774092bb4e0d14446f875">patch</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>, Func &amp;&amp;... func)</td></tr>
<tr class="memdesc:a4e83139f8d6774092bb4e0d14446f875"><td class="mdescLeft">&#160;</td><td class="mdescRight">Patches the given component for an entity. <a href="classentt_1_1basic__registry.html#a4e83139f8d6774092bb4e0d14446f875">More...</a><br /></td></tr>
<tr class="separator:a4e83139f8d6774092bb4e0d14446f875"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0411735fcddcc942613463c5401dd661"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Args&gt; </td></tr>
<tr class="memitem:a0411735fcddcc942613463c5401dd661"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a0411735fcddcc942613463c5401dd661">replace</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a0411735fcddcc942613463c5401dd661"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces the given component for an entity. <a href="classentt_1_1basic__registry.html#a0411735fcddcc942613463c5401dd661">More...</a><br /></td></tr>
<tr class="separator:a0411735fcddcc942613463c5401dd661"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44f5eac6fa4d1999a121f55e67a36c24"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a44f5eac6fa4d1999a121f55e67a36c24"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a44f5eac6fa4d1999a121f55e67a36c24">remove</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>)</td></tr>
<tr class="memdesc:a44f5eac6fa4d1999a121f55e67a36c24"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given components from an entity. <a href="classentt_1_1basic__registry.html#a44f5eac6fa4d1999a121f55e67a36c24">More...</a><br /></td></tr>
<tr class="separator:a44f5eac6fa4d1999a121f55e67a36c24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2791083341e009b7d7e8745dc52e26d8"><td class="memTemplParams" colspan="2">template&lt;typename... Component, typename It &gt; </td></tr>
<tr class="memitem:a2791083341e009b7d7e8745dc52e26d8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a2791083341e009b7d7e8745dc52e26d8">remove</a> (It first, It last)</td></tr>
<tr class="memdesc:a2791083341e009b7d7e8745dc52e26d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given components from all the entities in a range. <a href="classentt_1_1basic__registry.html#a2791083341e009b7d7e8745dc52e26d8">More...</a><br /></td></tr>
<tr class="separator:a2791083341e009b7d7e8745dc52e26d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2c2d2f9d5f79186215919e3d0c00565"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:ad2c2d2f9d5f79186215919e3d0c00565"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a>&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ad2c2d2f9d5f79186215919e3d0c00565">remove_if_exists</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>)</td></tr>
<tr class="memdesc:ad2c2d2f9d5f79186215919e3d0c00565"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given components from an entity. <a href="classentt_1_1basic__registry.html#ad2c2d2f9d5f79186215919e3d0c00565">More...</a><br /></td></tr>
<tr class="separator:ad2c2d2f9d5f79186215919e3d0c00565"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a46d948137afacbb1e4e79b72c917c5ea"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a46d948137afacbb1e4e79b72c917c5ea">remove_all</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>)</td></tr>
<tr class="memdesc:a46d948137afacbb1e4e79b72c917c5ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all the components from an entity and makes it orphaned. <a href="classentt_1_1basic__registry.html#a46d948137afacbb1e4e79b72c917c5ea">More...</a><br /></td></tr>
<tr class="separator:a46d948137afacbb1e4e79b72c917c5ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae0948bfee43711e2df12946a63a2b258"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:ae0948bfee43711e2df12946a63a2b258"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ae0948bfee43711e2df12946a63a2b258">has</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) const</td></tr>
<tr class="memdesc:ae0948bfee43711e2df12946a63a2b258"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an entity has all the given components. <a href="classentt_1_1basic__registry.html#ae0948bfee43711e2df12946a63a2b258">More...</a><br /></td></tr>
<tr class="separator:ae0948bfee43711e2df12946a63a2b258"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab0f856eae9b92a4c97689540968c6bde"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:ab0f856eae9b92a4c97689540968c6bde"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ab0f856eae9b92a4c97689540968c6bde">any</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) const</td></tr>
<tr class="memdesc:ab0f856eae9b92a4c97689540968c6bde"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an entity has at least one of the given components. <a href="classentt_1_1basic__registry.html#ab0f856eae9b92a4c97689540968c6bde">More...</a><br /></td></tr>
<tr class="separator:ab0f856eae9b92a4c97689540968c6bde"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3a683bb33971cc5a0bbbf4a9409208df"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a3a683bb33971cc5a0bbbf4a9409208df"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a3a683bb33971cc5a0bbbf4a9409208df">get</a> ([[maybe_unused]] const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) const</td></tr>
<tr class="memdesc:a3a683bb33971cc5a0bbbf4a9409208df"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns references to the given components for an entity. <a href="classentt_1_1basic__registry.html#a3a683bb33971cc5a0bbbf4a9409208df">More...</a><br /></td></tr>
<tr class="separator:a3a683bb33971cc5a0bbbf4a9409208df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b1a73cf6349646adfd6a6715be93df1"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a0b1a73cf6349646adfd6a6715be93df1"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a0b1a73cf6349646adfd6a6715be93df1">get</a> ([[maybe_unused]] const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>)</td></tr>
<tr class="memdesc:a0b1a73cf6349646adfd6a6715be93df1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns references to the given components for an entity. <a href="classentt_1_1basic__registry.html#a0b1a73cf6349646adfd6a6715be93df1">More...</a><br /></td></tr>
<tr class="separator:a0b1a73cf6349646adfd6a6715be93df1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8b86324fa88b9162050daf599d0f094"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Args&gt; </td></tr>
<tr class="memitem:ae8b86324fa88b9162050daf599d0f094"><td class="memTemplItemLeft" align="right" valign="top">decltype(auto)&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ae8b86324fa88b9162050daf599d0f094">get_or_emplace</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:ae8b86324fa88b9162050daf599d0f094"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to the given component for an entity. <a href="classentt_1_1basic__registry.html#ae8b86324fa88b9162050daf599d0f094">More...</a><br /></td></tr>
<tr class="separator:ae8b86324fa88b9162050daf599d0f094"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a01c958149b6c0d5b233a1a7c3c3bb3"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a9a01c958149b6c0d5b233a1a7c3c3bb3"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a9a01c958149b6c0d5b233a1a7c3c3bb3">try_get</a> ([[maybe_unused]] const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) const</td></tr>
<tr class="memdesc:a9a01c958149b6c0d5b233a1a7c3c3bb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointers to the given components for an entity. <a href="classentt_1_1basic__registry.html#a9a01c958149b6c0d5b233a1a7c3c3bb3">More...</a><br /></td></tr>
<tr class="separator:a9a01c958149b6c0d5b233a1a7c3c3bb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc3f7f2d48549f2386b065988bc372b7"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:acc3f7f2d48549f2386b065988bc372b7"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#acc3f7f2d48549f2386b065988bc372b7">try_get</a> ([[maybe_unused]] const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>)</td></tr>
<tr class="memdesc:acc3f7f2d48549f2386b065988bc372b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns pointers to the given components for an entity. <a href="classentt_1_1basic__registry.html#acc3f7f2d48549f2386b065988bc372b7">More...</a><br /></td></tr>
<tr class="separator:acc3f7f2d48549f2386b065988bc372b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4b08ad282560ead88ceeeddba16f552"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:aa4b08ad282560ead88ceeeddba16f552"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aa4b08ad282560ead88ceeeddba16f552">clear</a> ()</td></tr>
<tr class="memdesc:aa4b08ad282560ead88ceeeddba16f552"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears a whole registry or the pools for the given components. <a href="classentt_1_1basic__registry.html#aa4b08ad282560ead88ceeeddba16f552">More...</a><br /></td></tr>
<tr class="separator:aa4b08ad282560ead88ceeeddba16f552"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86d2b035f54225d82548e8f03de28754"><td class="memTemplParams" colspan="2">template&lt;typename Func &gt; </td></tr>
<tr class="memitem:a86d2b035f54225d82548e8f03de28754"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a86d2b035f54225d82548e8f03de28754">each</a> (Func func) const</td></tr>
<tr class="memdesc:a86d2b035f54225d82548e8f03de28754"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterates all the entities that are still in use. <a href="classentt_1_1basic__registry.html#a86d2b035f54225d82548e8f03de28754">More...</a><br /></td></tr>
<tr class="separator:a86d2b035f54225d82548e8f03de28754"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a10f5e61d4cabab9e9c1e87edc30de551"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a10f5e61d4cabab9e9c1e87edc30de551">orphan</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) const</td></tr>
<tr class="memdesc:a10f5e61d4cabab9e9c1e87edc30de551"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an entity has components assigned. <a href="classentt_1_1basic__registry.html#a10f5e61d4cabab9e9c1e87edc30de551">More...</a><br /></td></tr>
<tr class="separator:a10f5e61d4cabab9e9c1e87edc30de551"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae337ceb77e75c10c73ffa671e09bfff8"><td class="memTemplParams" colspan="2">template&lt;typename Func &gt; </td></tr>
<tr class="memitem:ae337ceb77e75c10c73ffa671e09bfff8"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ae337ceb77e75c10c73ffa671e09bfff8">orphans</a> (Func func) const</td></tr>
<tr class="memdesc:ae337ceb77e75c10c73ffa671e09bfff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Iterates orphans and applies them the given function object. <a href="classentt_1_1basic__registry.html#ae337ceb77e75c10c73ffa671e09bfff8">More...</a><br /></td></tr>
<tr class="separator:ae337ceb77e75c10c73ffa671e09bfff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc3cd847e65843f936824cd7d45984a5"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:adc3cd847e65843f936824cd7d45984a5"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#adc3cd847e65843f936824cd7d45984a5">on_construct</a> ()</td></tr>
<tr class="memdesc:adc3cd847e65843f936824cd7d45984a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a sink object for the given component. <a href="classentt_1_1basic__registry.html#adc3cd847e65843f936824cd7d45984a5">More...</a><br /></td></tr>
<tr class="separator:adc3cd847e65843f936824cd7d45984a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaaf474d42df7b8852c4656152cc4a295"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:aaaf474d42df7b8852c4656152cc4a295"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aaaf474d42df7b8852c4656152cc4a295">on_update</a> ()</td></tr>
<tr class="memdesc:aaaf474d42df7b8852c4656152cc4a295"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a sink object for the given component. <a href="classentt_1_1basic__registry.html#aaaf474d42df7b8852c4656152cc4a295">More...</a><br /></td></tr>
<tr class="separator:aaaf474d42df7b8852c4656152cc4a295"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad87a72c6d1e49a2fd992ddb7fd9d5a93"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:ad87a72c6d1e49a2fd992ddb7fd9d5a93"><td class="memTemplItemLeft" align="right" valign="top">auto&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ad87a72c6d1e49a2fd992ddb7fd9d5a93">on_destroy</a> ()</td></tr>
<tr class="memdesc:ad87a72c6d1e49a2fd992ddb7fd9d5a93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a sink object for the given component. <a href="classentt_1_1basic__registry.html#ad87a72c6d1e49a2fd992ddb7fd9d5a93">More...</a><br /></td></tr>
<tr class="separator:ad87a72c6d1e49a2fd992ddb7fd9d5a93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4548ffa2a57879370a543988a6e43ea9"><td class="memTemplParams" colspan="2">template&lt;typename... Component, typename... Exclude&gt; </td></tr>
<tr class="memitem:a4548ffa2a57879370a543988a6e43ea9"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__view.html">basic_view</a>&lt; Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;, Component... &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a4548ffa2a57879370a543988a6e43ea9">view</a> (<a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={}) const</td></tr>
<tr class="memdesc:a4548ffa2a57879370a543988a6e43ea9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a view for the given components. <a href="classentt_1_1basic__registry.html#a4548ffa2a57879370a543988a6e43ea9">More...</a><br /></td></tr>
<tr class="separator:a4548ffa2a57879370a543988a6e43ea9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a49034a5ead1dda9c7c436413b172f33f"><td class="memTemplParams" colspan="2">template&lt;typename... Component, typename... Exclude&gt; </td></tr>
<tr class="memitem:a49034a5ead1dda9c7c436413b172f33f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__view.html">basic_view</a>&lt; Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;, Component... &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a49034a5ead1dda9c7c436413b172f33f">view</a> (<a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={})</td></tr>
<tr class="memdesc:a49034a5ead1dda9c7c436413b172f33f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a view for the given components. <a href="classentt_1_1basic__registry.html#a49034a5ead1dda9c7c436413b172f33f">More...</a><br /></td></tr>
<tr class="separator:a49034a5ead1dda9c7c436413b172f33f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1d54beb5ae95d5f867c60c05319d1eb"><td class="memTemplParams" colspan="2">template&lt;typename ItComp , typename ItExcl = id_type *&gt; </td></tr>
<tr class="memitem:af1d54beb5ae95d5f867c60c05319d1eb"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__runtime__view.html">basic_runtime_view</a>&lt; Entity &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#af1d54beb5ae95d5f867c60c05319d1eb">runtime_view</a> (ItComp first, ItComp last, ItExcl from={}, ItExcl to={}) const</td></tr>
<tr class="memdesc:af1d54beb5ae95d5f867c60c05319d1eb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a runtime view for the given components. <a href="classentt_1_1basic__registry.html#af1d54beb5ae95d5f867c60c05319d1eb">More...</a><br /></td></tr>
<tr class="separator:af1d54beb5ae95d5f867c60c05319d1eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a716510eb0a63f8512ddc932381fa105f"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </td></tr>
<tr class="memitem:a716510eb0a63f8512ddc932381fa105f"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt; Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; Get... &gt;, Owned... &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a716510eb0a63f8512ddc932381fa105f">group</a> (<a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; Get... &gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={})</td></tr>
<tr class="memdesc:a716510eb0a63f8512ddc932381fa105f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a group for the given components. <a href="classentt_1_1basic__registry.html#a716510eb0a63f8512ddc932381fa105f">More...</a><br /></td></tr>
<tr class="separator:a716510eb0a63f8512ddc932381fa105f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a506c832fa36ceffecaff352ff03b7540"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </td></tr>
<tr class="memitem:a506c832fa36ceffecaff352ff03b7540"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt; Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; Get... &gt;, Owned... &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a506c832fa36ceffecaff352ff03b7540">group</a> (<a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; Get... &gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={}) const</td></tr>
<tr class="memdesc:a506c832fa36ceffecaff352ff03b7540"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a group for the given components. <a href="classentt_1_1basic__registry.html#a506c832fa36ceffecaff352ff03b7540">More...</a><br /></td></tr>
<tr class="separator:a506c832fa36ceffecaff352ff03b7540"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa05eacbf8368ae162fa4b7828fa26976"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Exclude&gt; </td></tr>
<tr class="memitem:aa05eacbf8368ae162fa4b7828fa26976"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt; Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;&gt;, Owned... &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aa05eacbf8368ae162fa4b7828fa26976">group</a> (<a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={})</td></tr>
<tr class="memdesc:aa05eacbf8368ae162fa4b7828fa26976"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a group for the given components. <a href="classentt_1_1basic__registry.html#aa05eacbf8368ae162fa4b7828fa26976">More...</a><br /></td></tr>
<tr class="separator:aa05eacbf8368ae162fa4b7828fa26976"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a831f89457e70109e4263cef8a4e93e73"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Exclude&gt; </td></tr>
<tr class="memitem:a831f89457e70109e4263cef8a4e93e73"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt; Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;&gt;, Owned... &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a831f89457e70109e4263cef8a4e93e73">group</a> (<a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={}) const</td></tr>
<tr class="memdesc:a831f89457e70109e4263cef8a4e93e73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a group for the given components. <a href="classentt_1_1basic__registry.html#a831f89457e70109e4263cef8a4e93e73">More...</a><br /></td></tr>
<tr class="separator:a831f89457e70109e4263cef8a4e93e73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f7af56d6b9fca94a6ebd6ab13896b27"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a5f7af56d6b9fca94a6ebd6ab13896b27"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a5f7af56d6b9fca94a6ebd6ab13896b27">sortable</a> () const</td></tr>
<tr class="memdesc:a5f7af56d6b9fca94a6ebd6ab13896b27"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the given components belong to any group. <a href="classentt_1_1basic__registry.html#a5f7af56d6b9fca94a6ebd6ab13896b27">More...</a><br /></td></tr>
<tr class="separator:a5f7af56d6b9fca94a6ebd6ab13896b27"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a471ce703c5f53fae1ffd4bc3543b1e95"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </td></tr>
<tr class="memitem:a471ce703c5f53fae1ffd4bc3543b1e95"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a471ce703c5f53fae1ffd4bc3543b1e95">sortable</a> (const <a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt; Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; Get... &gt;, Owned... &gt; &amp;) noexcept</td></tr>
<tr class="memdesc:a471ce703c5f53fae1ffd4bc3543b1e95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a group can be sorted. <a href="classentt_1_1basic__registry.html#a471ce703c5f53fae1ffd4bc3543b1e95">More...</a><br /></td></tr>
<tr class="separator:a471ce703c5f53fae1ffd4bc3543b1e95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38ac2a883e3d881c6ae5a05a0252b7ae"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename Compare , typename Sort = std_sort, typename... Args&gt; </td></tr>
<tr class="memitem:a38ac2a883e3d881c6ae5a05a0252b7ae"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a38ac2a883e3d881c6ae5a05a0252b7ae">sort</a> (Compare compare, Sort algo=Sort{}, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a38ac2a883e3d881c6ae5a05a0252b7ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sorts the pool of entities for the given component. <a href="classentt_1_1basic__registry.html#a38ac2a883e3d881c6ae5a05a0252b7ae">More...</a><br /></td></tr>
<tr class="separator:a38ac2a883e3d881c6ae5a05a0252b7ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2907f89b80fb692b16727e5e67a91c5d"><td class="memTemplParams" colspan="2">template&lt;typename To , typename From &gt; </td></tr>
<tr class="memitem:a2907f89b80fb692b16727e5e67a91c5d"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a2907f89b80fb692b16727e5e67a91c5d">sort</a> ()</td></tr>
<tr class="memdesc:a2907f89b80fb692b16727e5e67a91c5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sorts two pools of components in the same way. <a href="classentt_1_1basic__registry.html#a2907f89b80fb692b16727e5e67a91c5d">More...</a><br /></td></tr>
<tr class="separator:a2907f89b80fb692b16727e5e67a91c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef8bac41fdb48e3c8c589dee21b96980"><td class="memTemplParams" colspan="2">template&lt;typename Func &gt; </td></tr>
<tr class="memitem:aef8bac41fdb48e3c8c589dee21b96980"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aef8bac41fdb48e3c8c589dee21b96980">visit</a> (<a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>, Func func) const</td></tr>
<tr class="memdesc:aef8bac41fdb48e3c8c589dee21b96980"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visits an entity and returns the types for its components. <a href="classentt_1_1basic__registry.html#aef8bac41fdb48e3c8c589dee21b96980">More...</a><br /></td></tr>
<tr class="separator:aef8bac41fdb48e3c8c589dee21b96980"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aedc179d58adaab31202fc000a0bee068"><td class="memTemplParams" colspan="2">template&lt;typename Func &gt; </td></tr>
<tr class="memitem:aedc179d58adaab31202fc000a0bee068"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aedc179d58adaab31202fc000a0bee068">visit</a> (Func func) const</td></tr>
<tr class="memdesc:aedc179d58adaab31202fc000a0bee068"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visits a registry and returns the types for its components. <a href="classentt_1_1basic__registry.html#aedc179d58adaab31202fc000a0bee068">More...</a><br /></td></tr>
<tr class="separator:aedc179d58adaab31202fc000a0bee068"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7d771eee6e8e573bf1b8e4e8501ea7f1"><td class="memTemplParams" colspan="2">template&lt;typename Type , typename... Args&gt; </td></tr>
<tr class="memitem:a7d771eee6e8e573bf1b8e4e8501ea7f1"><td class="memTemplItemLeft" align="right" valign="top">Type &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a7d771eee6e8e573bf1b8e4e8501ea7f1">set</a> (Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a7d771eee6e8e573bf1b8e4e8501ea7f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds an object to the context of the registry. <a href="classentt_1_1basic__registry.html#a7d771eee6e8e573bf1b8e4e8501ea7f1">More...</a><br /></td></tr>
<tr class="separator:a7d771eee6e8e573bf1b8e4e8501ea7f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa23b74e76b1749bb510a86e9d31b9cd"><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
<tr class="memitem:aaa23b74e76b1749bb510a86e9d31b9cd"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aaa23b74e76b1749bb510a86e9d31b9cd">unset</a> ()</td></tr>
<tr class="memdesc:aaa23b74e76b1749bb510a86e9d31b9cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsets a context variable if it exists. <a href="classentt_1_1basic__registry.html#aaa23b74e76b1749bb510a86e9d31b9cd">More...</a><br /></td></tr>
<tr class="separator:aaa23b74e76b1749bb510a86e9d31b9cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16f2019558eb620c5054dc8f2e312b9e"><td class="memTemplParams" colspan="2">template&lt;typename Type , typename... Args&gt; </td></tr>
<tr class="memitem:a16f2019558eb620c5054dc8f2e312b9e"><td class="memTemplItemLeft" align="right" valign="top">Type &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a16f2019558eb620c5054dc8f2e312b9e">ctx_or_set</a> (Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a16f2019558eb620c5054dc8f2e312b9e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds an object to the context of the registry. <a href="classentt_1_1basic__registry.html#a16f2019558eb620c5054dc8f2e312b9e">More...</a><br /></td></tr>
<tr class="separator:a16f2019558eb620c5054dc8f2e312b9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa2092312ca7c3ac588d4ef4c8d1be32"><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
<tr class="memitem:aaa2092312ca7c3ac588d4ef4c8d1be32"><td class="memTemplItemLeft" align="right" valign="top">const Type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aaa2092312ca7c3ac588d4ef4c8d1be32">try_ctx</a> () const</td></tr>
<tr class="memdesc:aaa2092312ca7c3ac588d4ef4c8d1be32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to an object in the context of the registry. <a href="classentt_1_1basic__registry.html#aaa2092312ca7c3ac588d4ef4c8d1be32">More...</a><br /></td></tr>
<tr class="separator:aaa2092312ca7c3ac588d4ef4c8d1be32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab25a060f43bbb5ce9aec1f7f5a698220"><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
<tr class="memitem:ab25a060f43bbb5ce9aec1f7f5a698220"><td class="memTemplItemLeft" align="right" valign="top">Type *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ab25a060f43bbb5ce9aec1f7f5a698220">try_ctx</a> ()</td></tr>
<tr class="memdesc:ab25a060f43bbb5ce9aec1f7f5a698220"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to an object in the context of the registry. <a href="classentt_1_1basic__registry.html#ab25a060f43bbb5ce9aec1f7f5a698220">More...</a><br /></td></tr>
<tr class="separator:ab25a060f43bbb5ce9aec1f7f5a698220"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78855c78d8f558e959b1deb52d423c98"><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
<tr class="memitem:a78855c78d8f558e959b1deb52d423c98"><td class="memTemplItemLeft" align="right" valign="top">const Type &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a78855c78d8f558e959b1deb52d423c98">ctx</a> () const</td></tr>
<tr class="memdesc:a78855c78d8f558e959b1deb52d423c98"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to an object in the context of the registry. <a href="classentt_1_1basic__registry.html#a78855c78d8f558e959b1deb52d423c98">More...</a><br /></td></tr>
<tr class="separator:a78855c78d8f558e959b1deb52d423c98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a03031127c53abc80f8dcb835290fa765"><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
<tr class="memitem:a03031127c53abc80f8dcb835290fa765"><td class="memTemplItemLeft" align="right" valign="top">Type &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a03031127c53abc80f8dcb835290fa765">ctx</a> ()</td></tr>
<tr class="memdesc:a03031127c53abc80f8dcb835290fa765"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a reference to an object in the context of the registry. <a href="classentt_1_1basic__registry.html#a03031127c53abc80f8dcb835290fa765">More...</a><br /></td></tr>
<tr class="separator:a03031127c53abc80f8dcb835290fa765"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adebb39eff1162ede07bffded9528e710"><td class="memTemplParams" colspan="2">template&lt;typename Func &gt; </td></tr>
<tr class="memitem:adebb39eff1162ede07bffded9528e710"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#adebb39eff1162ede07bffded9528e710">ctx</a> (Func func) const</td></tr>
<tr class="memdesc:adebb39eff1162ede07bffded9528e710"><td class="mdescLeft">&#160;</td><td class="mdescRight">Visits a registry and returns the types for its context variables. <a href="classentt_1_1basic__registry.html#adebb39eff1162ede07bffded9528e710">More...</a><br /></td></tr>
<tr class="separator:adebb39eff1162ede07bffded9528e710"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:aafb56d442d5cf9a2b8ef02cae5735152"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) noexcept</td></tr>
<tr class="memdesc:aafb56d442d5cf9a2b8ef02cae5735152"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the entity identifier without the version. <a href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">More...</a><br /></td></tr>
<tr class="separator:aafb56d442d5cf9a2b8ef02cae5735152"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d5337d542648950173be95b47dcf9a5"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classentt_1_1basic__registry.html#aae2197c81e29459bbe3fa7984656a2b6">version_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a5d5337d542648950173be95b47dcf9a5">version</a> (const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a>) noexcept</td></tr>
<tr class="memdesc:a5d5337d542648950173be95b47dcf9a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the version stored along with an entity identifier. <a href="classentt_1_1basic__registry.html#a5d5337d542648950173be95b47dcf9a5">More...</a><br /></td></tr>
<tr class="separator:a5d5337d542648950173be95b47dcf9a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Entity&gt;<br />
class entt::basic_registry&lt; Entity &gt;</h3>
<p>Fast and reliable entity-component system. </p>
<p>The registry is the core class of the entity-component framework.<br />
It stores entities and arranges pools of components on a per request basis. By means of a registry, users can manage entities and components, then create views or groups to iterate them.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Entity</td><td>A valid entity type (see <a class="el" href="structentt_1_1entt__traits.html" title="Entity traits.">entt_traits</a> for more details). </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00043">43</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a7a42cddcb9bd14802bd597e789ff341f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a42cddcb9bd14802bd597e789ff341f">&#9670;&nbsp;</a></span>alive()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::alive </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of entities still in use. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of entities still in use. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00272">272</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ab0f856eae9b92a4c97689540968c6bde"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab0f856eae9b92a4c97689540968c6bde">&#9670;&nbsp;</a></span>any()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::any </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if an entity has at least one of the given components. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Components for which to perform the check. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the entity has at least one of the given components, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00892">892</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a8fe685b0635d51619b8c60f23e016e85"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fe685b0635d51619b8c60f23e016e85">&#9670;&nbsp;</a></span>assign()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename It &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::assign </td>
<td>(</td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns entities to an empty registry. </p>
<p>This function is intended for use in conjunction with <code>raw</code>.<br />
Don't try to inject ranges of randomly generated entities. There is no guarantee that a registry will continue to work properly in this case.</p>
<dl class="section warning"><dt>Warning</dt><dd>An assertion will abort the execution at runtime in debug mode if all pools aren't empty.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">It</td><td>Type of input iterator. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">first</td><td>An iterator to the first element of the range of entities. </td></tr>
<tr><td class="paramname">last</td><td>An iterator past the last element of the range of entities. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00556">556</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a40c4a407d4a7a74fec41d44e915c4d89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40c4a407d4a7a74fec41d44e915c4d89">&#9670;&nbsp;</a></span>capacity() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::capacity </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the capacity of the pool for the given component. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component in which one is interested. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Capacity of the pool of the given component. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00311">311</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a7e3608cf125ed2cf3260e73d60c32620"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7e3608cf125ed2cf3260e73d60c32620">&#9670;&nbsp;</a></span>capacity() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::capacity </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of entities that a registry has currently allocated space for. </p>
<dl class="section return"><dt>Returns</dt><dd>Capacity of the registry. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00320">320</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aa4b08ad282560ead88ceeeddba16f552"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4b08ad282560ead88ceeeddba16f552">&#9670;&nbsp;</a></span>clear()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::clear </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Clears a whole registry or the pools for the given components. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to remove from their entities. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01005">1005</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a91bfd7ec05e6d718e47da581a893cdc4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a91bfd7ec05e6d718e47da581a893cdc4">&#9670;&nbsp;</a></span>create() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::create </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new entity and returns it. </p>
<p>There are two kinds of possible entity identifiers:</p>
<ul>
<li>Newly created ones in case no entities have been previously destroyed.</li>
<li>Recycled ones with updated versions.</li>
</ul>
<dl class="section return"><dt>Returns</dt><dd>A valid entity identifier. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00473">473</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ab04ebcb3409a5e99a3a86a2f5b48e052"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab04ebcb3409a5e99a3a86a2f5b48e052">&#9670;&nbsp;</a></span>create() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::create </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>hint</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Creates a new entity and returns it. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a91bfd7ec05e6d718e47da581a893cdc4" title="Creates a new entity and returns it.">create</a></dd></dl>
<p>If the requested entity isn't in use, the suggested identifier is created and returned. Otherwise, a new one will be generated for this purpose.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hint</td><td>A desired entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A valid entity identifier. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00501">501</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a334768416fdf6372ecfdef9ec4f03e83"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a334768416fdf6372ecfdef9ec4f03e83">&#9670;&nbsp;</a></span>create() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename It &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::create </td>
<td>(</td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns each element in a range an entity. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a91bfd7ec05e6d718e47da581a893cdc4" title="Creates a new entity and returns it.">create</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">It</td><td>Type of forward iterator. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">first</td><td>An iterator to the first element of the range to generate. </td></tr>
<tr><td class="paramname">last</td><td>An iterator past the last element of the range to generate. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00536">536</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a03031127c53abc80f8dcb835290fa765"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a03031127c53abc80f8dcb835290fa765">&#9670;&nbsp;</a></span>ctx() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Type&amp; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::ctx </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a reference to an object in the context of the registry. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to get a context variable that doesn't exist results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid requests.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Type</td><td>Type of object to get. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A valid reference to the object in the context of the registry. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01674">1674</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a78855c78d8f558e959b1deb52d423c98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78855c78d8f558e959b1deb52d423c98">&#9670;&nbsp;</a></span>ctx() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const Type&amp; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::ctx </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a reference to an object in the context of the registry. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to get a context variable that doesn't exist results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid requests.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Type</td><td>Type of object to get. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A valid reference to the object in the context of the registry. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01666">1666</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="adebb39eff1162ede07bffded9528e710"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adebb39eff1162ede07bffded9528e710">&#9670;&nbsp;</a></span>ctx() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Func &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::ctx </td>
<td>(</td>
<td class="paramtype">Func&#160;</td>
<td class="paramname"><em>func</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Visits a registry and returns the types for its context variables. </p>
<p>The signature of the function should be equivalent to the following:</p>
<div class="fragment"><div class="line">void(<span class="keyword">const</span> <a class="code" href="namespaceentt.html#a13e040e7b38a8f86d1ab2f096f37b627">id_type</a>);</div>
</div><!-- fragment --><p>Returned identifiers are those of the context variables currently set.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structentt_1_1type__info.html" title="Type info.">type_info</a></dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>It's not specified whether a context variable created during the visit is returned or not to the caller.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Func</td><td>Type of the function object to invoke. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td>A valid function object. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01699">1699</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a16f2019558eb620c5054dc8f2e312b9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a16f2019558eb620c5054dc8f2e312b9e">&#9670;&nbsp;</a></span>ctx_or_set()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Type , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Type&amp; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::ctx_or_set </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Binds an object to the context of the registry. </p>
<p>In case the context doesn't contain the given object, the parameters provided are used to construct it.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Type</td><td>Type of object to set. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to construct the object. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Parameters to use to initialize the object. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to the object in the context of the registry. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01630">1630</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a199babc787d6baa6f7ccce761228a5f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a199babc787d6baa6f7ccce761228a5f6">&#9670;&nbsp;</a></span>current()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#aae2197c81e29459bbe3fa7984656a2b6">version_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::current </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the actual version for an entity identifier. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the registry results in undefined behavior. An entity belongs to the registry even if it has been previously destroyed and/or recycled.<br />
An assertion will abort the execution at runtime in debug mode if the registry doesn't own the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Actual version for the given entity identifier. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00457">457</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a1db6c4749dda201f7f74004ea22de193"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1db6c4749dda201f7f74004ea22de193">&#9670;&nbsp;</a></span>data() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>* <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the list of entities of a given pool. </p>
<p>The returned pointer is such that range <code>[data&lt;Component&gt;(), data&lt;Component&gt;() + size&lt;Component&gt;()]</code> is always a valid range, even if the container is empty.</p>
<p>Entities are in the reverse order as imposed by the sorting functionalities.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component in which one is interested. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of entities. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00396">396</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a62001aa75a17144bf3f78e43f1c28be7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a62001aa75a17144bf3f78e43f1c28be7">&#9670;&nbsp;</a></span>data() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>* <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::data </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the list of entities of a registry. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1basic__registry.html#a1db6c4749dda201f7f74004ea22de193" title="Direct access to the list of entities of a given pool.">data()</a>, <a class="el" href="classentt_1_1basic__registry.html#a1db6c4749dda201f7f74004ea22de193" title="Direct access to the list of entities of a given pool.">data()</a> + <a class="el" href="classentt_1_1basic__registry.html#a747d182de87516a3445f8df77d65e815" title="Returns the number of existing components of the given type.">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section warning"><dt>Warning</dt><dd>This list contains both valid and destroyed entities and isn't suitable for direct use.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of entities. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00412">412</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="af58f3add442cfb3f1fa470402db072bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af58f3add442cfb3f1fa470402db072bd">&#9670;&nbsp;</a></span>destroy() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::destroy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys an entity. </p>
<p>When an entity is destroyed, its version is updated and the identifier can be recycled at any time.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a46d948137afacbb1e4e79b72c917c5ea" title="Removes all the components from an entity and makes it orphaned.">remove_all</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00580">580</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="add41f14182d13fd3c70811dd08cdde41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add41f14182d13fd3c70811dd08cdde41">&#9670;&nbsp;</a></span>destroy() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::destroy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#aae2197c81e29459bbe3fa7984656a2b6">version_type</a>&#160;</td>
<td class="paramname"><em>version</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys an entity. </p>
<p>If the entity isn't already destroyed, the suggested version is used instead of the implicitly generated one.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a46d948137afacbb1e4e79b72c917c5ea" title="Removes all the components from an entity and makes it orphaned.">remove_all</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">version</td><td>A desired version upon destruction. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00595">595</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a6c163dcc335da90e727e2f40e67973b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c163dcc335da90e727e2f40e67973b7">&#9670;&nbsp;</a></span>destroy() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename It &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::destroy </td>
<td>(</td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Destroys all the entities in a range. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#af58f3add442cfb3f1fa470402db072bd" title="Destroys an entity.">destroy</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">It</td><td>Type of input iterator. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">first</td><td>An iterator to the first element of the range of entities. </td></tr>
<tr><td class="paramname">last</td><td>An iterator past the last element of the range of entities. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00613">613</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a86d2b035f54225d82548e8f03de28754"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86d2b035f54225d82548e8f03de28754">&#9670;&nbsp;</a></span>each()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Func &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::each </td>
<td>(</td>
<td class="paramtype">Func&#160;</td>
<td class="paramname"><em>func</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Iterates all the entities that are still in use. </p>
<p>The function object is invoked for each entity that is still in use.<br />
The signature of the function should be equivalent to the following:</p>
<div class="fragment"><div class="line">void(<span class="keyword">const</span> Entity);</div>
</div><!-- fragment --><p>This function is fairly slow and should not be used frequently. However, it's useful for iterating all the entities still in use, regardless of their components.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Func</td><td>Type of the function object to invoke. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td>A valid function object. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01034">1034</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ac138930f54716e2b31907586e45367be"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac138930f54716e2b31907586e45367be">&#9670;&nbsp;</a></span>emplace()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">decltype(auto) <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::emplace </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns the given component to an entity. </p>
<p>A new instance of the given component is created and initialized with the arguments provided (the component must have a proper constructor or be of aggregate type). Then the component is assigned to the given entity.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity or to assign a component to an entity that already owns it results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity or if the entity already owns an instance of the given component.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to create. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to construct the component. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">args</td><td>Parameters to use to initialize the component. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to the newly created component. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00638">638</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a5c768fb13e23109823e1dc217eee100a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c768fb13e23109823e1dc217eee100a">&#9670;&nbsp;</a></span>emplace_or_replace()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">decltype(auto) <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::emplace_or_replace </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns or replaces the given component for an entity. </p>
<p>Equivalent to the following snippet (pseudocode):</p>
<div class="fragment"><div class="line"><span class="keyword">auto</span> &amp;component = <a class="code" href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">registry</a>.has&lt;Component&gt;(<a class="code" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a>) ? <a class="code" href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">registry</a>.replace&lt;Component&gt;(<a class="code" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a>, args...) : <a class="code" href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">registry</a>.emplace&lt;Component&gt;(<a class="code" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a>, args...);</div>
</div><!-- fragment --><p>Prefer this function anyway because it has slightly better performance.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to assign or replace. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to construct the component. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">args</td><td>Parameters to use to initialize the component. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to the newly created component. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00703">703</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aba306a930c1a516cb9c9a764d2f4791f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba306a930c1a516cb9c9a764d2f4791f">&#9670;&nbsp;</a></span>empty()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::empty </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether the registry or the pools of the given components are empty. </p>
<p>A registry is considered empty when it doesn't contain entities that are still in use.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components in which one is interested. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the registry or the pools of the given components are empty, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00346">346</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aafb56d442d5cf9a2b8ef02cae5735152"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aafb56d442d5cf9a2b8ef02cae5735152">&#9670;&nbsp;</a></span>entity()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a0b54e231d069e8a231e14b223388808a">entity</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the entity identifier without the version. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>An entity identifier, either valid or not. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The entity identifier without the version. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00431">431</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a0b1a73cf6349646adfd6a6715be93df1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0b1a73cf6349646adfd6a6715be93df1">&#9670;&nbsp;</a></span>get() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">decltype(auto) <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::get </td>
<td>(</td>
<td class="paramtype">[[maybe_unused] ] const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns references to the given components for an entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity or to get a component from an entity that doesn't own it results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity or if the entity doesn't own an instance of the given component.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to get. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>References to the components owned by the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00924">924</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a3a683bb33971cc5a0bbbf4a9409208df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3a683bb33971cc5a0bbbf4a9409208df">&#9670;&nbsp;</a></span>get() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">decltype(auto) <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::get </td>
<td>(</td>
<td class="paramtype">[[maybe_unused] ] const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns references to the given components for an entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity or to get a component from an entity that doesn't own it results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity or if the entity doesn't own an instance of the given component.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to get. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>References to the components owned by the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00912">912</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ae8b86324fa88b9162050daf599d0f094"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae8b86324fa88b9162050daf599d0f094">&#9670;&nbsp;</a></span>get_or_emplace()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">decltype(auto) <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::get_or_emplace </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a reference to the given component for an entity. </p>
<p>In case the entity doesn't own the component, the parameters provided are used to construct it.<br />
Equivalent to the following snippet (pseudocode):</p>
<div class="fragment"><div class="line"><span class="keyword">auto</span> &amp;component = <a class="code" href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">registry</a>.has&lt;Component&gt;(<a class="code" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a>) ? <a class="code" href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">registry</a>.get&lt;Component&gt;(<a class="code" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a>) : <a class="code" href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">registry</a>.emplace&lt;Component&gt;(<a class="code" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a>, args...);</div>
</div><!-- fragment --><p>Prefer this function anyway because it has slightly better performance.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to get. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to construct the component. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">args</td><td>Parameters to use to initialize the component. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to the component owned by the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00959">959</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aa05eacbf8368ae162fa4b7828fa26976"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa05eacbf8368ae162fa4b7828fa26976">&#9670;&nbsp;</a></span>group() <span class="overload">[1/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Owned, typename... Exclude&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt;Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;&gt;, Owned...&gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a010d1bbf234dbca47e6755fc278e36b5">group</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;&#160;</td>
<td class="paramname"> = <code>{}</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a group for the given components. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a716510eb0a63f8512ddc932381fa105f" title="Returns a group for the given components.">group</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Owned</td><td>Types of components owned by the group. </td></tr>
<tr><td class="paramname">Exclude</td><td>Types of components used to filter the group. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly created group. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01390">1390</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a831f89457e70109e4263cef8a4e93e73"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a831f89457e70109e4263cef8a4e93e73">&#9670;&nbsp;</a></span>group() <span class="overload">[2/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Owned, typename... Exclude&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt;Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;&gt;, Owned...&gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a010d1bbf234dbca47e6755fc278e36b5">group</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;&#160;</td>
<td class="paramname"> = <code>{}</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a group for the given components. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a716510eb0a63f8512ddc932381fa105f" title="Returns a group for the given components.">group</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Owned</td><td>Types of components owned by the group. </td></tr>
<tr><td class="paramname">Exclude</td><td>Types of components used to filter the group. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly created group. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01404">1404</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a716510eb0a63f8512ddc932381fa105f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a716510eb0a63f8512ddc932381fa105f">&#9670;&nbsp;</a></span>group() <span class="overload">[3/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt;Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;Get...&gt;, Owned...&gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a010d1bbf234dbca47e6755fc278e36b5">group</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; Get... &gt;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;&#160;</td>
<td class="paramname"> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a group for the given components. </p>
<p>This kind of objects are created on the fly and share with the registry its internal data structures.<br />
Feel free to discard a group after the use. Creating and destroying a group is an incredibly cheap operation because they do not require any type of initialization, but for the first time they are requested.<br />
As a rule of thumb, storing a group should never be an option.</p>
<p>Groups support exclusion lists and can own types of components. The more types are owned by a group, the faster it is to iterate entities and components.<br />
However, groups also affect some features of the registry such as the creation and destruction of components, which will consequently be slightly slower (nothing that can be noticed in most cases).</p>
<dl class="section note"><dt>Note</dt><dd>Pools of components that are owned by a group cannot be sorted anymore. The group takes the ownership of the pools and arrange components so as to iterate them as fast as possible.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Owned</td><td>Types of components owned by the group. </td></tr>
<tr><td class="paramname">Get</td><td>Types of components observed by the group. </td></tr>
<tr><td class="paramname">Exclude</td><td>Types of components used to filter the group. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly created group. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01281">1281</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a506c832fa36ceffecaff352ff03b7540"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a506c832fa36ceffecaff352ff03b7540">&#9670;&nbsp;</a></span>group() <span class="overload">[4/4]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt;Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;Get...&gt;, Owned...&gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a010d1bbf234dbca47e6755fc278e36b5">group</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; Get... &gt;&#160;</td>
<td class="paramname">, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;&#160;</td>
<td class="paramname"> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a group for the given components. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a716510eb0a63f8512ddc932381fa105f" title="Returns a group for the given components.">group</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Owned</td><td>Types of components owned by the group. </td></tr>
<tr><td class="paramname">Get</td><td>Types of components observed by the group. </td></tr>
<tr><td class="paramname">Exclude</td><td>Types of components used to filter the group. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly created group. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01375">1375</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ae0948bfee43711e2df12946a63a2b258"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae0948bfee43711e2df12946a63a2b258">&#9670;&nbsp;</a></span>has()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::has </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if an entity has all the given components. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Components for which to perform the check. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the entity has all the components, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00873">873</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a930803b0206798002a0bbae79d7dd82e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a930803b0206798002a0bbae79d7dd82e">&#9670;&nbsp;</a></span>insert() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component , typename EIt , typename CIt &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::insert </td>
<td>(</td>
<td class="paramtype">EIt&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">EIt&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CIt&#160;</td>
<td class="paramname"><em>from</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">CIt&#160;</td>
<td class="paramname"><em>to</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns each entity in a range the given components. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#ac138930f54716e2b31907586e45367be" title="Assigns the given component to an entity.">emplace</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to create. </td></tr>
<tr><td class="paramname">EIt</td><td>Type of input iterator. </td></tr>
<tr><td class="paramname">CIt</td><td>Type of input iterator. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">first</td><td>An iterator to the first element of the range of entities. </td></tr>
<tr><td class="paramname">last</td><td>An iterator past the last element of the range of entities. </td></tr>
<tr><td class="paramname">from</td><td>An iterator to the first element of the range of components. </td></tr>
<tr><td class="paramname">to</td><td>An iterator past the last element of the range of components. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00674">674</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a3587004bdab85280c2a2a1b6371fd4c5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3587004bdab85280c2a2a1b6371fd4c5">&#9670;&nbsp;</a></span>insert() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component , typename It &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::insert </td>
<td>(</td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const Component &amp;&#160;</td>
<td class="paramname"><em>value</em> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Assigns each entity in a range the given component. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#ac138930f54716e2b31907586e45367be" title="Assigns the given component to an entity.">emplace</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to create. </td></tr>
<tr><td class="paramname">It</td><td>Type of input iterator. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">first</td><td>An iterator to the first element of the range of entities. </td></tr>
<tr><td class="paramname">last</td><td>An iterator past the last element of the range of entities. </td></tr>
<tr><td class="paramname">value</td><td>An instance of the component to assign. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00655">655</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="adc3cd847e65843f936824cd7d45984a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc3cd847e65843f936824cd7d45984a5">&#9670;&nbsp;</a></span>on_construct()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::on_construct </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a sink object for the given component. </p>
<p>A sink is an opaque object used to connect listeners to components.<br />
The sink returned by this function can be used to receive notifications whenever a new instance of the given component is created and assigned to an entity.</p>
<p>The function type for a listener is equivalent to:</p>
<div class="fragment"><div class="line">void(registry&lt;Entity&gt; &amp;, Entity);</div>
</div><!-- fragment --><p>Listeners are invoked <b>after</b> the component has been assigned to the entity.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1sink.html" title="Sink class.">sink</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component of which to get the sink. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A temporary sink object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01106">1106</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ad87a72c6d1e49a2fd992ddb7fd9d5a93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad87a72c6d1e49a2fd992ddb7fd9d5a93">&#9670;&nbsp;</a></span>on_destroy()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::on_destroy </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a sink object for the given component. </p>
<p>A sink is an opaque object used to connect listeners to components.<br />
The sink returned by this function can be used to receive notifications whenever an instance of the given component is removed from an entity and thus destroyed.</p>
<p>The function type for a listener is equivalent to:</p>
<div class="fragment"><div class="line">void(registry&lt;Entity&gt; &amp;, Entity);</div>
</div><!-- fragment --><p>Listeners are invoked <b>before</b> the component has been removed from the entity.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1sink.html" title="Sink class.">sink</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component of which to get the sink. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A temporary sink object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01158">1158</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aaaf474d42df7b8852c4656152cc4a295"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaf474d42df7b8852c4656152cc4a295">&#9670;&nbsp;</a></span>on_update()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::on_update </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a sink object for the given component. </p>
<p>A sink is an opaque object used to connect listeners to components.<br />
The sink returned by this function can be used to receive notifications whenever an instance of the given component is explicitly updated.</p>
<p>The function type for a listener is equivalent to:</p>
<div class="fragment"><div class="line">void(registry&lt;Entity&gt; &amp;, Entity);</div>
</div><!-- fragment --><p>Listeners are invoked <b>after</b> the component has been updated.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1sink.html" title="Sink class.">sink</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component of which to get the sink. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A temporary sink object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01131">1131</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a70f7acd3a0e9a8dc4ef7e85172f93a59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70f7acd3a0e9a8dc4ef7e85172f93a59">&#9670;&nbsp;</a></span>operator=()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html">basic_registry</a>&amp; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::operator= </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1basic__registry.html">basic_registry</a>&lt; Entity &gt; &amp;&amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Default move assignment operator. </p>
<dl class="section return"><dt>Returns</dt><dd>This registry. </dd></dl>
</div>
</div>
<a id="a10f5e61d4cabab9e9c1e87edc30de551"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a10f5e61d4cabab9e9c1e87edc30de551">&#9670;&nbsp;</a></span>orphan()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::orphan </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if an entity has components assigned. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the entity has no components assigned, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01053">1053</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ae337ceb77e75c10c73ffa671e09bfff8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae337ceb77e75c10c73ffa671e09bfff8">&#9670;&nbsp;</a></span>orphans()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Func &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::orphans </td>
<td>(</td>
<td class="paramtype">Func&#160;</td>
<td class="paramname"><em>func</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Iterates orphans and applies them the given function object. </p>
<p>The function object is invoked for each entity that is still in use and has no components assigned.<br />
The signature of the function should be equivalent to the following:</p>
<div class="fragment"><div class="line">void(<span class="keyword">const</span> Entity);</div>
</div><!-- fragment --><p>This function can be very slow and should not be used frequently.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Func</td><td>Type of the function object to invoke. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td>A valid function object. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01075">1075</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a4e83139f8d6774092bb4e0d14446f875"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e83139f8d6774092bb4e0d14446f875">&#9670;&nbsp;</a></span>patch()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component , typename... Func&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">decltype(auto) <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::patch </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Func &amp;&amp;...&#160;</td>
<td class="paramname"><em>func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Patches the given component for an entity. </p>
<p>The signature of the functions should be equivalent to the following:</p>
<div class="fragment"><div class="line">void(Component &amp;);</div>
</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>Empty types aren't explicitly instantiated and therefore they are never returned. However, this function can be used to trigger an update signal for them.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity or to patch a component of an entity that doesn't own it results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity or if the entity doesn't own an instance of the given component.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to patch. </td></tr>
<tr><td class="paramname">Func</td><td>Types of the function objects to invoke. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">func</td><td>Valid function objects. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to the patched component. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00740">740</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aad398e6279c6bbee2068b94c74bf83d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad398e6279c6bbee2068b94c74bf83d6">&#9670;&nbsp;</a></span>prepare()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::prepare </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Prepares a pool for the given type if required. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component for which to prepare a pool. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00245">245</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a51d3d20f21633c0269213807d02cca55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51d3d20f21633c0269213807d02cca55">&#9670;&nbsp;</a></span>raw() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Component* <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the list of components of a given pool. </p>
<p>The returned pointer is such that range <code>[raw&lt;Component&gt;(), raw&lt;Component&gt;() + size&lt;Component&gt;()]</code> is always a valid range, even if the container is empty.</p>
<p>Components are in the reverse order as imposed by the sorting functionalities.</p>
<dl class="section note"><dt>Note</dt><dd>Empty components aren't explicitly instantiated. Therefore, this function isn't available for them. A compilation error will occur if invoked.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component in which one is interested. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of components of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00378">378</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a195a60b85fe32562541dc5139cdc7f94"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a195a60b85fe32562541dc5139cdc7f94">&#9670;&nbsp;</a></span>raw() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const Component* <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the list of components of a given pool. </p>
<p>The returned pointer is such that range <code>[raw&lt;Component&gt;(), raw&lt;Component&gt;() + size&lt;Component&gt;()]</code> is always a valid range, even if the container is empty.</p>
<p>Components are in the reverse order as imposed by the sorting functionalities.</p>
<dl class="section note"><dt>Note</dt><dd>Empty components aren't explicitly instantiated. Therefore, this function isn't available for them. A compilation error will occur if invoked.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component in which one is interested. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of components of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00372">372</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a44f5eac6fa4d1999a121f55e67a36c24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a44f5eac6fa4d1999a121f55e67a36c24">&#9670;&nbsp;</a></span>remove() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::remove </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes the given components from an entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity or to remove a component from an entity that doesn't own it results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity or if the entity doesn't own an instance of the given component.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to remove. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00784">784</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a2791083341e009b7d7e8745dc52e26d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2791083341e009b7d7e8745dc52e26d8">&#9670;&nbsp;</a></span>remove() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component, typename It &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::remove </td>
<td>(</td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">It&#160;</td>
<td class="paramname"><em>last</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes the given components from all the entities in a range. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a44f5eac6fa4d1999a121f55e67a36c24" title="Removes the given components from an entity.">remove</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to remove. </td></tr>
<tr><td class="paramname">It</td><td>Type of input iterator. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">first</td><td>An iterator to the first element of the range of entities. </td></tr>
<tr><td class="paramname">last</td><td>An iterator past the last element of the range of entities. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00800">800</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a46d948137afacbb1e4e79b72c917c5ea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a46d948137afacbb1e4e79b72c917c5ea">&#9670;&nbsp;</a></span>remove_all()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::remove_all </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes all the components from an entity and makes it orphaned. </p>
<dl class="section warning"><dt>Warning</dt><dd>In case there are listeners that observe the destruction of components and assign other components to the entity in their bodies, the result of invoking this function may not be as expected. In the worst case, it could lead to undefined behavior.</dd>
<dd>
Attempting to use an invalid entity results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00850">850</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ad2c2d2f9d5f79186215919e3d0c00565"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2c2d2f9d5f79186215919e3d0c00565">&#9670;&nbsp;</a></span>remove_if_exists()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::remove_if_exists </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Removes the given components from an entity. </p>
<p>Equivalent to the following snippet (pseudocode):</p>
<div class="fragment"><div class="line"><span class="keywordflow">if</span>(<a class="code" href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">registry</a>.has&lt;Component&gt;(<a class="code" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a>)) { <a class="code" href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">registry</a>.remove&lt;Component&gt;(<a class="code" href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entity</a>) }</div>
</div><!-- fragment --><p>Prefer this function anyway because it has slightly better performance.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to remove. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The number of components actually removed. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00826">826</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a0411735fcddcc942613463c5401dd661"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0411735fcddcc942613463c5401dd661">&#9670;&nbsp;</a></span>replace()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">decltype(auto) <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::replace </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Replaces the given component for an entity. </p>
<p>A new instance of the given component is created and initialized with the arguments provided (the component must have a proper constructor or be of aggregate type). Then the component is assigned to the given entity.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity or to replace a component of an entity that doesn't own it results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity or if the entity doesn't own an instance of the given component.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to replace. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to construct the component. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">args</td><td>Parameters to use to initialize the component. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to the component being replaced. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00766">766</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a632adf32f7b23f1dae8bf4f8800a0bbe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a632adf32f7b23f1dae8bf4f8800a0bbe">&#9670;&nbsp;</a></span>reserve()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::reserve </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a>&#160;</td>
<td class="paramname"><em>cap</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Increases the capacity of the registry or of the pools for the given components. </p>
<p>If no components are specified, the capacity of the registry is increased, that is the number of entities it contains. Otherwise the capacity of the pools for the given components is increased.<br />
In both cases, if the new capacity is greater than the current capacity, new storage is allocated, otherwise the method does nothing.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components for which to reserve storage. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">cap</td><td>Desired capacity. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00297">297</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="af1d54beb5ae95d5f867c60c05319d1eb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1d54beb5ae95d5f867c60c05319d1eb">&#9670;&nbsp;</a></span>runtime_view()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename ItComp , typename ItExcl = id_type *&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__runtime__view.html">basic_runtime_view</a>&lt;Entity&gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a85d470a55d982d87388e899c322e9ddc">runtime_view</a> </td>
<td>(</td>
<td class="paramtype">ItComp&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ItComp&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ItExcl&#160;</td>
<td class="paramname"><em>from</em> = <code>{}</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">ItExcl&#160;</td>
<td class="paramname"><em>to</em> = <code>{}</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a runtime view for the given components. </p>
<p>This kind of objects are created on the fly and share with the registry its internal data structures.<br />
Users should throw away the view after use. Fortunately, creating and destroying a runtime view is an incredibly cheap operation because they do not require any type of initialization.<br />
As a rule of thumb, storing a view should never be an option.</p>
<p>Runtime views are to be used when users want to construct a view from some external inputs and don't know at compile-time what are the required components.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">ItComp</td><td>Type of input iterator for the components to use to construct the view. </td></tr>
<tr><td class="paramname">ItExcl</td><td>Type of input iterator for the components to use to filter the view. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">first</td><td>An iterator to the first element of the range of components to use to construct the view. </td></tr>
<tr><td class="paramname">last</td><td>An iterator past the last element of the range of components to use to construct the view. </td></tr>
<tr><td class="paramname">from</td><td>An iterator to the first element of the range of components to use to filter the view. </td></tr>
<tr><td class="paramname">to</td><td>An iterator past the last element of the range of components to use to filter the view. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly created runtime view. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01236">1236</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a7d771eee6e8e573bf1b8e4e8501ea7f1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7d771eee6e8e573bf1b8e4e8501ea7f1">&#9670;&nbsp;</a></span>set()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Type , typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Type&amp; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::set </td>
<td>(</td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Binds an object to the context of the registry. </p>
<p>If the value already exists it is overwritten, otherwise a new instance of the given type is created and initialized with the arguments provided.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Type</td><td>Type of object to set. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to use to construct the object. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">args</td><td>Parameters to use to initialize the value. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to the newly created object. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01601">1601</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a63aa387e557553d61483a58807cd785e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a63aa387e557553d61483a58807cd785e">&#9670;&nbsp;</a></span>shrink_to_fit()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::shrink_to_fit </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Requests the removal of unused capacity for the given components. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components for which to reclaim unused capacity. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00330">330</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a747d182de87516a3445f8df77d65e815"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a747d182de87516a3445f8df77d65e815">&#9670;&nbsp;</a></span>size() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of existing components of the given type. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component of which to return the size. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Number of existing components of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00256">256</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a58f71029ea074358486a0214677a786e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a58f71029ea074358486a0214677a786e">&#9670;&nbsp;</a></span>size() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::size </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the number of entities created so far. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of entities created so far. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00264">264</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a2907f89b80fb692b16727e5e67a91c5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2907f89b80fb692b16727e5e67a91c5d">&#9670;&nbsp;</a></span>sort() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename To , typename From &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::sort </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sorts two pools of components in the same way. </p>
<p>The order of the elements in a pool is highly affected by assignments of components to entities and deletions. Components are arranged to maximize the performance during iterations and users should not make any assumption on the order.</p>
<p>It happens that different pools of components must be sorted the same way because of runtime and/or performance constraints. This function can be used to order a pool of components according to the order between the entities in another pool of components.</p>
<p><b>How</b> <b>it</b> <b>works</b> </p>
<p>Being <code>A</code> and <code>B</code> the two sets where <code>B</code> is the master (the one the order of which rules) and <code>A</code> is the slave (the one to sort), after a call to this function an iterator for <code>A</code> will return the entities according to the following rules:</p>
<ul>
<li>All the entities in <code>A</code> that are also in <code>B</code> are returned first according to the order they have in <code>B</code>.</li>
<li>All the entities in <code>A</code> that are not in <code>B</code> are returned in no particular order after all the other entities.</li>
</ul>
<p>Any subsequent change to <code>B</code> won't affect the order in <code>A</code>.</p>
<dl class="section warning"><dt>Warning</dt><dd>Pools of components owned by a group cannot be sorted.<br />
An assertion will abort the execution at runtime in debug mode in case the pool is owned by a group.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">To</td><td>Type of components to sort. </td></tr>
<tr><td class="paramname">From</td><td>Type of components to use to sort. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01525">1525</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a38ac2a883e3d881c6ae5a05a0252b7ae"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38ac2a883e3d881c6ae5a05a0252b7ae">&#9670;&nbsp;</a></span>sort() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Component , typename Compare , typename Sort = std_sort, typename... Args&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::sort </td>
<td>(</td>
<td class="paramtype">Compare&#160;</td>
<td class="paramname"><em>compare</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Sort&#160;</td>
<td class="paramname"><em>algo</em> = <code>Sort{}</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Args &amp;&amp;...&#160;</td>
<td class="paramname"><em>args</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Sorts the pool of entities for the given component. </p>
<p>The order of the elements in a pool is highly affected by assignments of components to entities and deletions. Components are arranged to maximize the performance during iterations and users should not make any assumption on the order.<br />
This function can be used to impose an order to the elements in the pool of the given component. The order is kept valid until a component of the given type is assigned or removed from an entity.</p>
<p>The comparison function object must return <code>true</code> if the first element is <em>less</em> than the second one, <code>false</code> otherwise. The signature of the comparison function should be equivalent to one of the following:</p>
<div class="fragment"><div class="line">bool(<span class="keyword">const</span> Entity, <span class="keyword">const</span> Entity);</div>
<div class="line">bool(<span class="keyword">const</span> Component &amp;, <span class="keyword">const</span> Component &amp;);</div>
</div><!-- fragment --><p>Moreover, the comparison function object shall induce a <em>strict weak ordering</em> on the values.</p>
<p>The sort function oject must offer a member function template <code>operator()</code> that accepts three arguments:</p>
<ul>
<li>An iterator to the first element of the range to sort.</li>
<li>An iterator past the last element of the range to sort.</li>
<li>A comparison function to use to compare the elements.</li>
</ul>
<p>The comparison funtion object received by the sort function object hasn't necessarily the type of the one passed along with the other parameters to this member function.</p>
<dl class="section warning"><dt>Warning</dt><dd>Pools of components owned by a group cannot be sorted.<br />
An assertion will abort the execution at runtime in debug mode in case the pool is owned by a group.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of components to sort. </td></tr>
<tr><td class="paramname">Compare</td><td>Type of comparison function object. </td></tr>
<tr><td class="paramname">Sort</td><td>Type of sort function object. </td></tr>
<tr><td class="paramname">Args</td><td>Types of arguments to forward to the sort function object. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">compare</td><td>A valid comparison function object. </td></tr>
<tr><td class="paramname">algo</td><td>A valid sort function object. </td></tr>
<tr><td class="paramname">args</td><td>Arguments to forward to the sort function object, if any. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01483">1483</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a5f7af56d6b9fca94a6ebd6ab13896b27"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5f7af56d6b9fca94a6ebd6ab13896b27">&#9670;&nbsp;</a></span>sortable() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::sortable </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether the given components belong to any group. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components in which one is interested. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the pools of the given components are sortable, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01416">1416</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a471ce703c5f53fae1ffd4bc3543b1e95"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a471ce703c5f53fae1ffd4bc3543b1e95">&#9670;&nbsp;</a></span>sortable() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::sortable </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt; Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; Get... &gt;, Owned... &gt; &amp;&#160;</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks whether a group can be sorted. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Owned</td><td>Types of components owned by the group. </td></tr>
<tr><td class="paramname">Get</td><td>Types of components observed by the group. </td></tr>
<tr><td class="paramname">Exclude</td><td>Types of components used to filter the group. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the group can be sorted, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01428">1428</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ab25a060f43bbb5ce9aec1f7f5a698220"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab25a060f43bbb5ce9aec1f7f5a698220">&#9670;&nbsp;</a></span>try_ctx() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">Type* <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::try_ctx </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a pointer to an object in the context of the registry. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Type</td><td>Type of object to get. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the object if it exists in the context of the registry, a null pointer otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01649">1649</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aaa2092312ca7c3ac588d4ef4c8d1be32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa2092312ca7c3ac588d4ef4c8d1be32">&#9670;&nbsp;</a></span>try_ctx() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const Type* <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::try_ctx </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a pointer to an object in the context of the registry. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Type</td><td>Type of object to get. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the object if it exists in the context of the registry, a null pointer otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01642">1642</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="acc3f7f2d48549f2386b065988bc372b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc3f7f2d48549f2386b065988bc372b7">&#9670;&nbsp;</a></span>try_get() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::try_get </td>
<td>(</td>
<td class="paramtype">[[maybe_unused] ] const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns pointers to the given components for an entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to get. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointers to the components owned by the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00990">990</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a9a01c958149b6c0d5b233a1a7c3c3bb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9a01c958149b6c0d5b233a1a7c3c3bb3">&#9670;&nbsp;</a></span>try_get() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">auto <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::try_get </td>
<td>(</td>
<td class="paramtype">[[maybe_unused] ] const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns pointers to the given components for an entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode in case of invalid entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to get. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Pointers to the components owned by the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00978">978</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aaa23b74e76b1749bb510a86e9d31b9cd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa23b74e76b1749bb510a86e9d31b9cd">&#9670;&nbsp;</a></span>unset()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Type &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::unset </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Unsets a context variable if it exists. </p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Type</td><td>Type of object to set. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01612">1612</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a1795b1221d728f806319a685930f520d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1795b1221d728f806319a685930f520d">&#9670;&nbsp;</a></span>valid()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">bool <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::valid </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks if an entity identifier refers to a valid entity. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>An entity identifier, either valid or not. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the identifier is valid, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00421">421</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a5d5337d542648950173be95b47dcf9a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d5337d542648950173be95b47dcf9a5">&#9670;&nbsp;</a></span>version()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">static <a class="el" href="classentt_1_1basic__registry.html#aae2197c81e29459bbe3fa7984656a2b6">version_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::version </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span><span class="mlabel">noexcept</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns the version stored along with an entity identifier. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>An entity identifier, either valid or not. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The version stored along with the given entity identifier. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00440">440</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a49034a5ead1dda9c7c436413b172f33f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49034a5ead1dda9c7c436413b172f33f">&#9670;&nbsp;</a></span>view() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component, typename... Exclude&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__view.html">basic_view</a>&lt;Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt;, Component...&gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#af2118c00dea16193aee017d1408beb53">view</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;&#160;</td>
<td class="paramname"> = <code>{}</code></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a view for the given components. </p>
<p>This kind of objects are created on the fly and share with the registry its internal data structures.<br />
Feel free to discard a view after the use. Creating and destroying a view is an incredibly cheap operation because they do not require any type of initialization.<br />
As a rule of thumb, storing a view should never be an option.</p>
<p>Views do their best to iterate the smallest set of candidate entities. In particular:</p>
<ul>
<li>Single component views are incredibly fast and iterate a packed array of entities, all of which has the given component.</li>
<li>Multi component views look at the number of entities available for each component and pick up a reference to the smallest set of candidates to test for the given components.</li>
</ul>
<p>Views in no way affect the functionalities of the registry nor those of the underlying pools.</p>
<dl class="section note"><dt>Note</dt><dd>Multi component views are pretty fast. However their performance tend to degenerate when the number of components to iterate grows up and the most of the entities have all the given components.<br />
To get a performance boost, consider using a group instead.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of components used to construct the view. </td></tr>
<tr><td class="paramname">Exclude</td><td>Types of components used to filter the view. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly created view. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01202">1202</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a4548ffa2a57879370a543988a6e43ea9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4548ffa2a57879370a543988a6e43ea9">&#9670;&nbsp;</a></span>view() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename... Component, typename... Exclude&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1basic__view.html">basic_view</a>&lt;Entity, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt;, Component...&gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#af2118c00dea16193aee017d1408beb53">view</a> </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;&#160;</td>
<td class="paramname"> = <code>{}</code></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Returns a view for the given components. </p>
<p>This kind of objects are created on the fly and share with the registry its internal data structures.<br />
Feel free to discard a view after the use. Creating and destroying a view is an incredibly cheap operation because they do not require any type of initialization.<br />
As a rule of thumb, storing a view should never be an option.</p>
<p>Views do their best to iterate the smallest set of candidate entities. In particular:</p>
<ul>
<li>Single component views are incredibly fast and iterate a packed array of entities, all of which has the given component.</li>
<li>Multi component views look at the number of entities available for each component and pick up a reference to the smallest set of candidates to test for the given components.</li>
</ul>
<p>Views in no way affect the functionalities of the registry nor those of the underlying pools.</p>
<dl class="section note"><dt>Note</dt><dd>Multi component views are pretty fast. However their performance tend to degenerate when the number of components to iterate grows up and the most of the entities have all the given components.<br />
To get a performance boost, consider using a group instead.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of components used to construct the view. </td></tr>
<tr><td class="paramname">Exclude</td><td>Types of components used to filter the view. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A newly created view. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01195">1195</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aef8bac41fdb48e3c8c589dee21b96980"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aef8bac41fdb48e3c8c589dee21b96980">&#9670;&nbsp;</a></span>visit() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Func &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::visit </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a>&#160;</td>
<td class="paramname"><em>entity</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">Func&#160;</td>
<td class="paramname"><em>func</em>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Visits an entity and returns the types for its components. </p>
<p>The signature of the function should be equivalent to the following:</p>
<div class="fragment"><div class="line">void(<span class="keyword">const</span> <a class="code" href="namespaceentt.html#a13e040e7b38a8f86d1ab2f096f37b627">id_type</a>);</div>
</div><!-- fragment --><p>Returned identifiers are those of the components owned by the entity.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structentt_1_1type__info.html" title="Type info.">type_info</a></dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>It's not specified whether a component attached to or removed from the given entity during the visit is returned or not to the caller.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Func</td><td>Type of the function object to invoke. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">func</td><td>A valid function object. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01552">1552</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aedc179d58adaab31202fc000a0bee068"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aedc179d58adaab31202fc000a0bee068">&#9670;&nbsp;</a></span>visit() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity &gt; </div>
<div class="memtemplate">
template&lt;typename Func &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">void <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::visit </td>
<td>(</td>
<td class="paramtype">Func&#160;</td>
<td class="paramname"><em>func</em></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Visits a registry and returns the types for its components. </p>
<p>The signature of the function should be equivalent to the following:</p>
<div class="fragment"><div class="line">void(<span class="keyword">const</span> <a class="code" href="namespaceentt.html#a13e040e7b38a8f86d1ab2f096f37b627">id_type</a>);</div>
</div><!-- fragment --><p>Returned identifiers are those of the components managed by the registry.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structentt_1_1type__info.html" title="Type info.">type_info</a></dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>It's not specified whether a component for which a pool is created during the visit is returned or not to the caller.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Func</td><td>Type of the function object to invoke. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">func</td><td>A valid function object. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l01581">1581</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/entt/entity/<a class="el" href="entity_2fwd_8hpp_source.html">fwd.hpp</a></li>
<li>src/entt/entity/<a class="el" href="registry_8hpp_source.html">registry.hpp</a></li>
</ul>
</div><!-- contents -->
<div class="ttc" id="aclassentt_1_1basic__registry_html_aafb56d442d5cf9a2b8ef02cae5735152"><div class="ttname"><a href="classentt_1_1basic__registry.html#aafb56d442d5cf9a2b8ef02cae5735152">entt::basic_registry::entity</a></div><div class="ttdeci">static entity_type entity(const entity_type entity) noexcept</div><div class="ttdoc">Returns the entity identifier without the version.</div><div class="ttdef"><b>Definition:</b> <a href="registry_8hpp_source.html#l00431">registry.hpp:431</a></div></div>
<div class="ttc" id="anamespaceentt_html_a292643317d1dbb13e45824f757bd1086"><div class="ttname"><a href="namespaceentt.html#a292643317d1dbb13e45824f757bd1086">entt::registry</a></div><div class="ttdeci">basic_registry&lt; entity &gt; registry</div><div class="ttdoc">Alias declaration for the most common use case.</div><div class="ttdef"><b>Definition:</b> <a href="entity_2fwd_8hpp_source.html#l00056">fwd.hpp:56</a></div></div>
<div class="ttc" id="anamespaceentt_html_a13e040e7b38a8f86d1ab2f096f37b627"><div class="ttname"><a href="namespaceentt.html#a13e040e7b38a8f86d1ab2f096f37b627">entt::id_type</a></div><div class="ttdeci">std::uint32_t id_type</div><div class="ttdoc">Alias declaration for type identifiers.</div><div class="ttdef"><b>Definition:</b> <a href="core_2fwd_8hpp_source.html#l00012">fwd.hpp:12</a></div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="http://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.8.20
</small></address>
</body>
</html>