Files
entt/classentt_1_1basic__registry.html
2021-12-21 13:20:51 +01:00

3621 lines
205 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.9.1"/>
<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.9.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<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','.html');
/* @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="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:a7f947b73e9c883ecf89af298eaefe7c1"><td class="memItemLeft" align="right" valign="top"><a id="a7f947b73e9c883ecf89af298eaefe7c1"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a> = typename <a class="el" href="classentt_1_1entt__traits.html#ad44954f9ad1b9a20bf997b9a8ba33c3a">entity_traits::version_type</a></td></tr>
<tr class="memdesc:a7f947b73e9c883ecf89af298eaefe7c1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying version type. <br /></td></tr>
<tr class="separator:a7f947b73e9c883ecf89af298eaefe7c1"><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>
<tr class="memitem:a70ffa0486e23004540f1655bdf46cef6"><td class="memItemLeft" align="right" valign="top"><a id="a70ffa0486e23004540f1655bdf46cef6"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a70ffa0486e23004540f1655bdf46cef6">base_type</a> = <a class="el" href="classentt_1_1basic__sparse__set.html">basic_common_type</a></td></tr>
<tr class="memdesc:a70ffa0486e23004540f1655bdf46cef6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Common type among all storage types. <br /></td></tr>
<tr class="separator:a70ffa0486e23004540f1655bdf46cef6"><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:ad53e4667abee7aeeef32b38eb5d21ad9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ad53e4667abee7aeeef32b38eb5d21ad9">basic_registry</a> (<a class="el" href="classentt_1_1basic__registry.html">basic_registry</a> &amp;&amp;other)</td></tr>
<tr class="memdesc:ad53e4667abee7aeeef32b38eb5d21ad9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move constructor. <a href="classentt_1_1basic__registry.html#ad53e4667abee7aeeef32b38eb5d21ad9">More...</a><br /></td></tr>
<tr class="separator:ad53e4667abee7aeeef32b38eb5d21ad9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a23d233b9e2c4a92395a60087891c52fe"><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#a23d233b9e2c4a92395a60087891c52fe">operator=</a> (<a class="el" href="classentt_1_1basic__registry.html">basic_registry</a> &amp;&amp;other)</td></tr>
<tr class="memdesc:a23d233b9e2c4a92395a60087891c52fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Move assignment operator. <a href="classentt_1_1basic__registry.html#a23d233b9e2c4a92395a60087891c52fe">More...</a><br /></td></tr>
<tr class="separator:a23d233b9e2c4a92395a60087891c52fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9cce13121f0ba615c290a48dedff53ad"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a9cce13121f0ba615c290a48dedff53ad">storage</a> ()</td></tr>
<tr class="memdesc:a9cce13121f0ba615c290a48dedff53ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterable object to use to <em>visit</em> a registry. <a href="classentt_1_1basic__registry.html#a9cce13121f0ba615c290a48dedff53ad">More...</a><br /></td></tr>
<tr class="separator:a9cce13121f0ba615c290a48dedff53ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a71b8b9cf2ceccd12bdb84fc92349f85a"><td class="memItemLeft" align="right" valign="top">auto&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a71b8b9cf2ceccd12bdb84fc92349f85a">storage</a> () const</td></tr>
<tr class="memdesc:a71b8b9cf2ceccd12bdb84fc92349f85a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterable object to use to <em>visit</em> a registry. <a href="classentt_1_1basic__registry.html#a71b8b9cf2ceccd12bdb84fc92349f85a">More...</a><br /></td></tr>
<tr class="separator:a71b8b9cf2ceccd12bdb84fc92349f85a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d4824660a8fcee9362b39e2de46e8ce"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:a9d4824660a8fcee9362b39e2de46e8ce"><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#a9d4824660a8fcee9362b39e2de46e8ce">storage</a> (const <a class="el" href="namespaceentt.html#a13e040e7b38a8f86d1ab2f096f37b627">id_type</a> id=<a class="el" href="structentt_1_1type__hash.html">type_hash</a>&lt; Component &gt;::value())</td></tr>
<tr class="memdesc:a9d4824660a8fcee9362b39e2de46e8ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the storage for a given component type. <a href="classentt_1_1basic__registry.html#a9d4824660a8fcee9362b39e2de46e8ce">More...</a><br /></td></tr>
<tr class="separator:a9d4824660a8fcee9362b39e2de46e8ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adbb78123b695ad38d8e6d120cc8908b1"><td class="memTemplParams" colspan="2">template&lt;typename Component &gt; </td></tr>
<tr class="memitem:adbb78123b695ad38d8e6d120cc8908b1"><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#adbb78123b695ad38d8e6d120cc8908b1">storage</a> (const <a class="el" href="namespaceentt.html#a13e040e7b38a8f86d1ab2f096f37b627">id_type</a> id=<a class="el" href="structentt_1_1type__hash.html">type_hash</a>&lt; Component &gt;::value()) const</td></tr>
<tr class="memdesc:adbb78123b695ad38d8e6d120cc8908b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterable object to use to <em>visit</em> a registry. <a href="classentt_1_1basic__registry.html#adbb78123b695ad38d8e6d120cc8908b1">More...</a><br /></td></tr>
<tr class="separator:adbb78123b695ad38d8e6d120cc8908b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5b056608b1723b73a001e20d2f2592bc"><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#a5b056608b1723b73a001e20d2f2592bc">size</a> () const</td></tr>
<tr class="memdesc:a5b056608b1723b73a001e20d2f2592bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of entities created so far. <a href="classentt_1_1basic__registry.html#a5b056608b1723b73a001e20d2f2592bc">More...</a><br /></td></tr>
<tr class="separator:a5b056608b1723b73a001e20d2f2592bc"><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:a97677776c466a310547be1fdfdf84ff9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a97677776c466a310547be1fdfdf84ff9">reserve</a> (const <a class="el" href="classentt_1_1basic__registry.html#a6a44260f861a699f1353097391c51636">size_type</a> cap)</td></tr>
<tr class="memdesc:a97677776c466a310547be1fdfdf84ff9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases the capacity (number of entities) of the registry. <a href="classentt_1_1basic__registry.html#a97677776c466a310547be1fdfdf84ff9">More...</a><br /></td></tr>
<tr class="separator:a97677776c466a310547be1fdfdf84ff9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05fd96006ea9f68b679507cdc67260ce"><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#a05fd96006ea9f68b679507cdc67260ce">capacity</a> () const</td></tr>
<tr class="memdesc:a05fd96006ea9f68b679507cdc67260ce"><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#a05fd96006ea9f68b679507cdc67260ce">More...</a><br /></td></tr>
<tr class="separator:a05fd96006ea9f68b679507cdc67260ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a519426ee64b3f6574b99e86b31acca14"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a519426ee64b3f6574b99e86b31acca14">empty</a> () const</td></tr>
<tr class="memdesc:a519426ee64b3f6574b99e86b31acca14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether the registry is empty (no entities still in use). <a href="classentt_1_1basic__registry.html#a519426ee64b3f6574b99e86b31acca14">More...</a><br /></td></tr>
<tr class="separator:a519426ee64b3f6574b99e86b31acca14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abd873a2d0dfb67f3fd27ce9ed23f61c2"><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#abd873a2d0dfb67f3fd27ce9ed23f61c2">data</a> () const</td></tr>
<tr class="memdesc:abd873a2d0dfb67f3fd27ce9ed23f61c2"><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#abd873a2d0dfb67f3fd27ce9ed23f61c2">More...</a><br /></td></tr>
<tr class="separator:abd873a2d0dfb67f3fd27ce9ed23f61c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a48630f103bc6448af1f2b2928df4f488"><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#a48630f103bc6448af1f2b2928df4f488">released</a> () const</td></tr>
<tr class="memdesc:a48630f103bc6448af1f2b2928df4f488"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the head of the list of released entities. <a href="classentt_1_1basic__registry.html#a48630f103bc6448af1f2b2928df4f488">More...</a><br /></td></tr>
<tr class="separator:a48630f103bc6448af1f2b2928df4f488"><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 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#a7f947b73e9c883ecf89af298eaefe7c1">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 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 or recycles a destroyed one. <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 or recycles a destroyed one. <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 identifier. <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:a35d217b9bc09235d55388941de380f72"><td class="memTemplParams" colspan="2">template&lt;typename It &gt; </td></tr>
<tr class="memitem:a35d217b9bc09235d55388941de380f72"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a35d217b9bc09235d55388941de380f72">assign</a> (It first, It last, const <a class="el" href="classentt_1_1basic__registry.html#a7df39ef4ca62af9540f593dfb5550138">entity_type</a> destroyed)</td></tr>
<tr class="memdesc:a35d217b9bc09235d55388941de380f72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns identifiers to an empty registry. <a href="classentt_1_1basic__registry.html#a35d217b9bc09235d55388941de380f72">More...</a><br /></td></tr>
<tr class="separator:a35d217b9bc09235d55388941de380f72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d9cb2368384b0952cb54848e777359e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a3d9cb2368384b0952cb54848e777359e">release</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:a3d9cb2368384b0952cb54848e777359e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases an identifier. <a href="classentt_1_1basic__registry.html#a3d9cb2368384b0952cb54848e777359e">More...</a><br /></td></tr>
<tr class="separator:a3d9cb2368384b0952cb54848e777359e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9c919867fc93a7e1a2d0762ac3a9877"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#af9c919867fc93a7e1a2d0762ac3a9877">release</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#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a> version)</td></tr>
<tr class="memdesc:af9c919867fc93a7e1a2d0762ac3a9877"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases an identifier. <a href="classentt_1_1basic__registry.html#af9c919867fc93a7e1a2d0762ac3a9877">More...</a><br /></td></tr>
<tr class="separator:af9c919867fc93a7e1a2d0762ac3a9877"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69fa71876716487256ac47e19f27c553"><td class="memTemplParams" colspan="2">template&lt;typename It &gt; </td></tr>
<tr class="memitem:a69fa71876716487256ac47e19f27c553"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a69fa71876716487256ac47e19f27c553">release</a> (It first, It last)</td></tr>
<tr class="memdesc:a69fa71876716487256ac47e19f27c553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Releases all identifiers in a range. <a href="classentt_1_1basic__registry.html#a69fa71876716487256ac47e19f27c553">More...</a><br /></td></tr>
<tr class="separator:a69fa71876716487256ac47e19f27c553"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b2c0368d508a6af2d094a9fc592a4a0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a7b2c0368d508a6af2d094a9fc592a4a0">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:a7b2c0368d508a6af2d094a9fc592a4a0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys an entity and releases its identifier. <a href="classentt_1_1basic__registry.html#a7b2c0368d508a6af2d094a9fc592a4a0">More...</a><br /></td></tr>
<tr class="separator:a7b2c0368d508a6af2d094a9fc592a4a0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc175a0d3bcf83a133c63890c674ceb3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1basic__registry.html#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#adc175a0d3bcf83a133c63890c674ceb3">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#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a> version)</td></tr>
<tr class="memdesc:adc175a0d3bcf83a133c63890c674ceb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys an entity and releases its identifier. <a href="classentt_1_1basic__registry.html#adc175a0d3bcf83a133c63890c674ceb3">More...</a><br /></td></tr>
<tr class="separator:adc175a0d3bcf83a133c63890c674ceb3"><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 entities in a range and releases their identifiers. <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:a4c9c0532972adc7a930a50888a97efdf"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Args&gt; </td></tr>
<tr class="memitem:a4c9c0532972adc7a930a50888a97efdf"><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#a4c9c0532972adc7a930a50888a97efdf">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:a4c9c0532972adc7a930a50888a97efdf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns the given component to an entity. <a href="classentt_1_1basic__registry.html#a4c9c0532972adc7a930a50888a97efdf">More...</a><br /></td></tr>
<tr class="separator:a4c9c0532972adc7a930a50888a97efdf"><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:a1a37b2a842fd3877bc25e3217a01ee11"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename EIt , typename CIt , typename = std::enable_if_t&lt;std::is_same_v&lt;std::decay_t&lt;typename std::iterator_traits&lt;CIt&gt;::value_type&gt;, Component&gt;&gt;&gt; </td></tr>
<tr class="memitem:a1a37b2a842fd3877bc25e3217a01ee11"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a1a37b2a842fd3877bc25e3217a01ee11">insert</a> (EIt first, EIt last, CIt from)</td></tr>
<tr class="memdesc:a1a37b2a842fd3877bc25e3217a01ee11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns each entity in a range the given components. <a href="classentt_1_1basic__registry.html#a1a37b2a842fd3877bc25e3217a01ee11">More...</a><br /></td></tr>
<tr class="separator:a1a37b2a842fd3877bc25e3217a01ee11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3bbaebbb9365eef262453e42a8f7dc4b"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Args&gt; </td></tr>
<tr class="memitem:a3bbaebbb9365eef262453e42a8f7dc4b"><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#a3bbaebbb9365eef262453e42a8f7dc4b">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:a3bbaebbb9365eef262453e42a8f7dc4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns or replaces the given component for an entity. <a href="classentt_1_1basic__registry.html#a3bbaebbb9365eef262453e42a8f7dc4b">More...</a><br /></td></tr>
<tr class="separator:a3bbaebbb9365eef262453e42a8f7dc4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22454253689ff77e41326f849bfea976"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Func&gt; </td></tr>
<tr class="memitem:a22454253689ff77e41326f849bfea976"><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#a22454253689ff77e41326f849bfea976">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:a22454253689ff77e41326f849bfea976"><td class="mdescLeft">&#160;</td><td class="mdescRight">Patches the given component for an entity. <a href="classentt_1_1basic__registry.html#a22454253689ff77e41326f849bfea976">More...</a><br /></td></tr>
<tr class="separator:a22454253689ff77e41326f849bfea976"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0501ff5a96a3421f3eec427bf5d62380"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Args&gt; </td></tr>
<tr class="memitem:a0501ff5a96a3421f3eec427bf5d62380"><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#a0501ff5a96a3421f3eec427bf5d62380">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:a0501ff5a96a3421f3eec427bf5d62380"><td class="mdescLeft">&#160;</td><td class="mdescRight">Replaces the given component for an entity. <a href="classentt_1_1basic__registry.html#a0501ff5a96a3421f3eec427bf5d62380">More...</a><br /></td></tr>
<tr class="separator:a0501ff5a96a3421f3eec427bf5d62380"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa66ca71c5eb6c2e1b3bde6ff86a268c7"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Other&gt; </td></tr>
<tr class="memitem:aa66ca71c5eb6c2e1b3bde6ff86a268c7"><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#aa66ca71c5eb6c2e1b3bde6ff86a268c7">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:aa66ca71c5eb6c2e1b3bde6ff86a268c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the given components from an entity. <a href="classentt_1_1basic__registry.html#aa66ca71c5eb6c2e1b3bde6ff86a268c7">More...</a><br /></td></tr>
<tr class="separator:aa66ca71c5eb6c2e1b3bde6ff86a268c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a597e4d37d39c02801f7b244148d5e4af"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Other, typename It &gt; </td></tr>
<tr class="memitem:a597e4d37d39c02801f7b244148d5e4af"><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#a597e4d37d39c02801f7b244148d5e4af">remove</a> (It first, It last)</td></tr>
<tr class="memdesc:a597e4d37d39c02801f7b244148d5e4af"><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#a597e4d37d39c02801f7b244148d5e4af">More...</a><br /></td></tr>
<tr class="separator:a597e4d37d39c02801f7b244148d5e4af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7a51ade7ff181d7aa0b35915d0a4f2b"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Other&gt; </td></tr>
<tr class="memitem:ad7a51ade7ff181d7aa0b35915d0a4f2b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#ad7a51ade7ff181d7aa0b35915d0a4f2b">erase</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:ad7a51ade7ff181d7aa0b35915d0a4f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases the given components from an entity. <a href="classentt_1_1basic__registry.html#ad7a51ade7ff181d7aa0b35915d0a4f2b">More...</a><br /></td></tr>
<tr class="separator:ad7a51ade7ff181d7aa0b35915d0a4f2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a887809806fd5188fe141525aad138a6c"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Other, typename It &gt; </td></tr>
<tr class="memitem:a887809806fd5188fe141525aad138a6c"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a887809806fd5188fe141525aad138a6c">erase</a> (It first, It last)</td></tr>
<tr class="memdesc:a887809806fd5188fe141525aad138a6c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Erases the given components from all the entities in a range. <a href="classentt_1_1basic__registry.html#a887809806fd5188fe141525aad138a6c">More...</a><br /></td></tr>
<tr class="separator:a887809806fd5188fe141525aad138a6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a27f61f6b3347811854b7d1c2bd97db99"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a27f61f6b3347811854b7d1c2bd97db99"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a27f61f6b3347811854b7d1c2bd97db99">compact</a> ()</td></tr>
<tr class="memdesc:a27f61f6b3347811854b7d1c2bd97db99"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes all tombstones from a registry or only the pools for the given components. <a href="classentt_1_1basic__registry.html#a27f61f6b3347811854b7d1c2bd97db99">More...</a><br /></td></tr>
<tr class="separator:a27f61f6b3347811854b7d1c2bd97db99"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a40072eca607846f43f47d0e3f11dd196"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a40072eca607846f43f47d0e3f11dd196"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a40072eca607846f43f47d0e3f11dd196">all_of</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:a40072eca607846f43f47d0e3f11dd196"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if an entity has all the given components. <a href="classentt_1_1basic__registry.html#a40072eca607846f43f47d0e3f11dd196">More...</a><br /></td></tr>
<tr class="separator:a40072eca607846f43f47d0e3f11dd196"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08f819276fd2d8b2b2b6d01357f61a42"><td class="memTemplParams" colspan="2">template&lt;typename... Component&gt; </td></tr>
<tr class="memitem:a08f819276fd2d8b2b2b6d01357f61a42"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a08f819276fd2d8b2b2b6d01357f61a42">any_of</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:a08f819276fd2d8b2b2b6d01357f61a42"><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#a08f819276fd2d8b2b2b6d01357f61a42">More...</a><br /></td></tr>
<tr class="separator:a08f819276fd2d8b2b2b6d01357f61a42"><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:a9c355683752313135c209bc7ba9820bc"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Args&gt; </td></tr>
<tr class="memitem:a9c355683752313135c209bc7ba9820bc"><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#a9c355683752313135c209bc7ba9820bc">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:a9c355683752313135c209bc7ba9820bc"><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#a9c355683752313135c209bc7ba9820bc">More...</a><br /></td></tr>
<tr class="separator:a9c355683752313135c209bc7ba9820bc"><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: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:aa50c2d25f9b9c7108ced52534e10d9d0"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Other, typename... Exclude&gt; </td></tr>
<tr class="memitem:aa50c2d25f9b9c7108ced52534e10d9d0"><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_1get__t.html">get_t</a>&lt; std::add_const_t&lt; Component &gt;, std::add_const_t&lt; Other &gt;... &gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aa50c2d25f9b9c7108ced52534e10d9d0">view</a> (<a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={}) const</td></tr>
<tr class="memdesc:aa50c2d25f9b9c7108ced52534e10d9d0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a view for the given components. <a href="classentt_1_1basic__registry.html#aa50c2d25f9b9c7108ced52534e10d9d0">More...</a><br /></td></tr>
<tr class="separator:aa50c2d25f9b9c7108ced52534e10d9d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a7b8466273429c44efdba1ada88afc1"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename... Other, typename... Exclude&gt; </td></tr>
<tr class="memitem:a5a7b8466273429c44efdba1ada88afc1"><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_1get__t.html">get_t</a>&lt; Component, Other... &gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a5a7b8466273429c44efdba1ada88afc1">view</a> (<a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={})</td></tr>
<tr class="memdesc:a5a7b8466273429c44efdba1ada88afc1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a view for the given components. <a href="classentt_1_1basic__registry.html#a5a7b8466273429c44efdba1ada88afc1">More...</a><br /></td></tr>
<tr class="separator:a5a7b8466273429c44efdba1ada88afc1"><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:afcbbbd8a765fa8133d384806d60d5828"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </td></tr>
<tr class="memitem:afcbbbd8a765fa8133d384806d60d5828"><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_1owned__t.html">owned_t</a>&lt; Owned... &gt;, <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; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#afcbbbd8a765fa8133d384806d60d5828">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:afcbbbd8a765fa8133d384806d60d5828"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a group for the given components. <a href="classentt_1_1basic__registry.html#afcbbbd8a765fa8133d384806d60d5828">More...</a><br /></td></tr>
<tr class="separator:afcbbbd8a765fa8133d384806d60d5828"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af6565c2b50a938f6a594f6a28bbfd804"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </td></tr>
<tr class="memitem:af6565c2b50a938f6a594f6a28bbfd804"><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_1owned__t.html">owned_t</a>&lt; std::add_const_t&lt; Owned &gt;... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt; std::add_const_t&lt; Get &gt;... &gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#af6565c2b50a938f6a594f6a28bbfd804">group_if_exists</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:af6565c2b50a938f6a594f6a28bbfd804"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a group for the given components. <a href="classentt_1_1basic__registry.html#af6565c2b50a938f6a594f6a28bbfd804">More...</a><br /></td></tr>
<tr class="separator:af6565c2b50a938f6a594f6a28bbfd804"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51b8e8123331de142d031953a847ac3b"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Exclude&gt; </td></tr>
<tr class="memitem:a51b8e8123331de142d031953a847ac3b"><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_1owned__t.html">owned_t</a>&lt; Owned... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;&gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a51b8e8123331de142d031953a847ac3b">group</a> (<a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={})</td></tr>
<tr class="memdesc:a51b8e8123331de142d031953a847ac3b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a group for the given components. <a href="classentt_1_1basic__registry.html#a51b8e8123331de142d031953a847ac3b">More...</a><br /></td></tr>
<tr class="separator:a51b8e8123331de142d031953a847ac3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa53e065b954c58908db7eb87e8863612"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Exclude&gt; </td></tr>
<tr class="memitem:aa53e065b954c58908db7eb87e8863612"><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_1owned__t.html">owned_t</a>&lt; std::add_const_t&lt; Owned &gt;... &gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;&gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt; &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aa53e065b954c58908db7eb87e8863612">group_if_exists</a> (<a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt; Exclude... &gt;={}) const</td></tr>
<tr class="memdesc:aa53e065b954c58908db7eb87e8863612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a group for the given components. <a href="classentt_1_1basic__registry.html#aa53e065b954c58908db7eb87e8863612">More...</a><br /></td></tr>
<tr class="separator:aa53e065b954c58908db7eb87e8863612"><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:a965ab1b09f078e4494ebc3962d16e0bb"><td class="memTemplParams" colspan="2">template&lt;typename... Owned, typename... Get, typename... Exclude&gt; </td></tr>
<tr class="memitem:a965ab1b09f078e4494ebc3962d16e0bb"><td class="memTemplItemLeft" align="right" valign="top">bool&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a965ab1b09f078e4494ebc3962d16e0bb">sortable</a> (const <a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt; Entity, <a class="el" href="structentt_1_1owned__t.html">owned_t</a>&lt; Owned... &gt;, <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;&gt; &amp;)</td></tr>
<tr class="memdesc:a965ab1b09f078e4494ebc3962d16e0bb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a group can be sorted. <a href="classentt_1_1basic__registry.html#a965ab1b09f078e4494ebc3962d16e0bb">More...</a><br /></td></tr>
<tr class="separator:a965ab1b09f078e4494ebc3962d16e0bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a413fa9d1dbe15b8043358ea9cdba6ba1"><td class="memTemplParams" colspan="2">template&lt;typename Component , typename Compare , typename Sort = std_sort, typename... Args&gt; </td></tr>
<tr class="memitem:a413fa9d1dbe15b8043358ea9cdba6ba1"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a413fa9d1dbe15b8043358ea9cdba6ba1">sort</a> (Compare compare, Sort algo=Sort{}, Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:a413fa9d1dbe15b8043358ea9cdba6ba1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sorts the elements of a given component. <a href="classentt_1_1basic__registry.html#a413fa9d1dbe15b8043358ea9cdba6ba1">More...</a><br /></td></tr>
<tr class="separator:a413fa9d1dbe15b8043358ea9cdba6ba1"><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:a9f04ea21a04ad05937274de518da705f"><td class="memTemplParams" colspan="2">template&lt;typename Type , typename... Args&gt; </td></tr>
<tr class="memitem:a9f04ea21a04ad05937274de518da705f"><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#a9f04ea21a04ad05937274de518da705f">set</a> (Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:a9f04ea21a04ad05937274de518da705f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds an object to the context of the registry. <a href="classentt_1_1basic__registry.html#a9f04ea21a04ad05937274de518da705f">More...</a><br /></td></tr>
<tr class="separator:a9f04ea21a04ad05937274de518da705f"><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:af68ea0a0b8e51794df74e1e378e9526d"><td class="memTemplParams" colspan="2">template&lt;typename Type , typename... Args&gt; </td></tr>
<tr class="memitem:af68ea0a0b8e51794df74e1e378e9526d"><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#af68ea0a0b8e51794df74e1e378e9526d">ctx_or_set</a> (Args &amp;&amp;...args)</td></tr>
<tr class="memdesc:af68ea0a0b8e51794df74e1e378e9526d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Binds an object to the context of the registry. <a href="classentt_1_1basic__registry.html#af68ea0a0b8e51794df74e1e378e9526d">More...</a><br /></td></tr>
<tr class="separator:af68ea0a0b8e51794df74e1e378e9526d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8554b6cb789387d30ab3a42c26b06c72"><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
<tr class="memitem:a8554b6cb789387d30ab3a42c26b06c72"><td class="memTemplItemLeft" align="right" valign="top">std::add_const_t&lt; Type &gt; *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#a8554b6cb789387d30ab3a42c26b06c72">try_ctx</a> () const</td></tr>
<tr class="memdesc:a8554b6cb789387d30ab3a42c26b06c72"><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#a8554b6cb789387d30ab3a42c26b06c72">More...</a><br /></td></tr>
<tr class="separator:a8554b6cb789387d30ab3a42c26b06c72"><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:aa7b72e3bdb0b072439afb85fe8af6ced"><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
<tr class="memitem:aa7b72e3bdb0b072439afb85fe8af6ced"><td class="memTemplItemLeft" align="right" valign="top">std::add_const_t&lt; Type &gt; &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1basic__registry.html#aa7b72e3bdb0b072439afb85fe8af6ced">ctx</a> () const</td></tr>
<tr class="memdesc:aa7b72e3bdb0b072439afb85fe8af6ced"><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#aa7b72e3bdb0b072439afb85fe8af6ced">More...</a><br /></td></tr>
<tr class="separator:aa7b72e3bdb0b072439afb85fe8af6ced"><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 type info 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>
<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>
<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="classentt_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#l00173">173</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ad53e4667abee7aeeef32b38eb5d21ad9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad53e4667abee7aeeef32b38eb5d21ad9">&#9670;&nbsp;</a></span>basic_registry()</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">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="classentt_1_1basic__registry.html">basic_registry</a> </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"><em>other</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>Move constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>The instance to move from. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00290">290</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</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#l00376">376</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a40072eca607846f43f47d0e3f11dd196"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a40072eca607846f43f47d0e3f11dd196">&#9670;&nbsp;</a></span>all_of()</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;::all_of </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.</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 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#l00893">893</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a08f819276fd2d8b2b2b6d01357f61a42"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a08f819276fd2d8b2b2b6d01357f61a42">&#9670;&nbsp;</a></span>any_of()</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_of </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.</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 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#l00910">910</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a35d217b9bc09235d55388941de380f72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a35d217b9bc09235d55388941de380f72">&#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>, </td>
</tr>
<tr>
<td class="paramkey"></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>destroyed</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 identifiers to an empty registry. </p>
<p>This function is intended for use in conjunction with <code>data</code>, <code>size</code> and <code>destroyed</code>.<br />
Don't try to inject ranges of randomly generated entities nor the <em>wrong</em> head for the list of destroyed 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>There must be no entities still alive for this to work properly.</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>
<tr><td class="paramname">destroyed</td><td>The head of the list of destroyed entities. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00541">541</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a05fd96006ea9f68b679507cdc67260ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05fd96006ea9f68b679507cdc67260ce">&#9670;&nbsp;</a></span>capacity()</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> </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#l00399">399</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#l01001">1001</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a27f61f6b3347811854b7d1c2bd97db99"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a27f61f6b3347811854b7d1c2bd97db99">&#9670;&nbsp;</a></span>compact()</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;::compact </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>Removes all tombstones from a registry or only 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 for which to clear all tombstones. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00872">872</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 or recycles a destroyed one. </p>
<dl class="section return"><dt>Returns</dt><dd>A valid identifier. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00464">464</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 or recycles a destroyed one. </p>
<p>If the requested entity isn't in use, the suggested identifier is used. Otherwise, a new identifier is generated.</p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hint</td><td>Required identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A valid identifier. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00477">477</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 identifier. </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 or recycles a destroyed one.">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#l00510">510</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.</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#l01508">1508</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aa7b72e3bdb0b072439afb85fe8af6ced"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa7b72e3bdb0b072439afb85fe8af6ced">&#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">std::add_const_t&lt;Type&gt;&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.</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#l01500">1500</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 type info 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> type_info &amp;);</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="classentt_1_1type__info.html" title="Implementation specific information about a type.">type_info</a></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#l01532">1532</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="af68ea0a0b8e51794df74e1e378e9526d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af68ea0a0b8e51794df74e1e378e9526d">&#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#l01461">1461</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#a7f947b73e9c883ecf89af298eaefe7c1">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 identifier. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The version for the given identifier if valid, the tombstone version otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00455">455</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="abd873a2d0dfb67f3fd27ce9ed23f61c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abd873a2d0dfb67f3fd27ce9ed23f61c2">&#9670;&nbsp;</a></span>data()</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> </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#abd873a2d0dfb67f3fd27ce9ed23f61c2" title="Direct access to the list of entities of a registry.">data()</a>, <a class="el" href="classentt_1_1basic__registry.html#abd873a2d0dfb67f3fd27ce9ed23f61c2" title="Direct access to the list of entities of a registry.">data()</a> + <a class="el" href="classentt_1_1basic__registry.html#a5b056608b1723b73a001e20d2f2592bc" title="Returns the number of entities created so far.">size()</a>)</code> is always a valid range, even if the registry 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#l00423">423</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a7b2c0368d508a6af2d094a9fc592a4a0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b2c0368d508a6af2d094a9fc592a4a0">&#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"><a class="el" href="classentt_1_1basic__registry.html#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a> <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 and releases its identifier. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a3d9cb2368384b0952cb54848e777359e" title="Releases an identifier.">release</a></dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Adding or removing components to an entity that is being destroyed can result in undefined behavior. Attempting to use an invalid entity results in undefined behavior.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The version of the recycled entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00608">608</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="adc175a0d3bcf83a133c63890c674ceb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc175a0d3bcf83a133c63890c674ceb3">&#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"><a class="el" href="classentt_1_1basic__registry.html#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a> <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#a7f947b73e9c883ecf89af298eaefe7c1">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 and releases its identifier. </p>
<p>The suggested version or the valid version closest to the suggested one is used instead of the implicitly generated version.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a7b2c0368d508a6af2d094a9fc592a4a0" title="Destroys an entity and releases its identifier.">destroy</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid identifier. </td></tr>
<tr><td class="paramname">version</td><td>A desired version upon destruction. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The version actually assigned to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00624">624</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 entities in a range and releases their identifiers. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a7b2c0368d508a6af2d094a9fc592a4a0" title="Destroys an entity and releases its identifier.">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#l00644">644</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 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>It's not defined whether entities created during iteration are returned.</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#l01028">1028</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a4c9c0532972adc7a930a50888a97efdf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4c9c0532972adc7a930a50888a97efdf">&#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>The component must have a proper constructor or be of aggregate type.</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.</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 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#l00674">674</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a3bbaebbb9365eef262453e42a8f7dc4b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3bbaebbb9365eef262453e42a8f7dc4b">&#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>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.</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 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#l00727">727</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a519426ee64b3f6574b99e86b31acca14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a519426ee64b3f6574b99e86b31acca14">&#9670;&nbsp;</a></span>empty()</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;::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 is empty (no entities still in use). </p>
<dl class="section return"><dt>Returns</dt><dd>True if the registry is empty, false otherwise. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00407">407</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="ad7a51ade7ff181d7aa0b35915d0a4f2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad7a51ade7ff181d7aa0b35915d0a4f2b">&#9670;&nbsp;</a></span>erase() <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... Other&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;::erase </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>Erases the given components from an entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity or to erase a component from an entity that doesn't own it results in undefined behavior.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Types of components to erase. </td></tr>
<tr><td class="paramname">Other</td><td>Other types of components to erase. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid identifier. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00841">841</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a887809806fd5188fe141525aad138a6c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a887809806fd5188fe141525aad138a6c">&#9670;&nbsp;</a></span>erase() <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... Other, 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;::erase </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>Erases 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#ad7a51ade7ff181d7aa0b35915d0a4f2b" title="Erases the given components from an entity.">erase</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 erase. </td></tr>
<tr><td class="paramname">Other</td><td>Other types of components to erase. </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#l00858">858</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.</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 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#l00934">934</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.</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 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#l00927">927</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a9c355683752313135c209bc7ba9820bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9c355683752313135c209bc7ba9820bc">&#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.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.</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 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#l00955">955</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a51b8e8123331de142d031953a847ac3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a51b8e8123331de142d031953a847ac3b">&#9670;&nbsp;</a></span>group() <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... 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_1owned__t.html">owned_t</a>&lt;Owned...&gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;&gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt; &gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a2628e82fa8042f75d817c58fc09c7aaf">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>
<p>Groups are created on the fly and share with the registry its internal data structures. Feel free to discard them after the use.<br />
Creating and destroying a group is an incredibly cheap operation. 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.</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#l01314">1314</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="afcbbbd8a765fa8133d384806d60d5828"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afcbbbd8a765fa8133d384806d60d5828">&#9670;&nbsp;</a></span>group() <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"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt;Entity, <a class="el" href="structentt_1_1owned__t.html">owned_t</a>&lt;Owned...&gt;, <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; &gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a2628e82fa8042f75d817c58fc09c7aaf">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>Groups are created on the fly and share with the registry its internal data structures. Feel free to discard them after the use.<br />
Creating and destroying a group is an incredibly cheap operation. 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.</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#l01214">1214</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aa53e065b954c58908db7eb87e8863612"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa53e065b954c58908db7eb87e8863612">&#9670;&nbsp;</a></span>group_if_exists() <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... 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_1owned__t.html">owned_t</a>&lt;std::add_const_t&lt;Owned&gt;...&gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;&gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt; &gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::group_if_exists </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>
<p>Groups are created on the fly and share with the registry its internal data structures. Feel free to discard them after the use.<br />
Creating and destroying a group is an incredibly cheap operation. 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.</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#l01320">1320</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="af6565c2b50a938f6a594f6a28bbfd804"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af6565c2b50a938f6a594f6a28bbfd804">&#9670;&nbsp;</a></span>group_if_exists() <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"><a class="el" href="classentt_1_1basic__group.html">basic_group</a>&lt;Entity, <a class="el" href="structentt_1_1owned__t.html">owned_t</a>&lt;std::add_const_t&lt;Owned&gt;...&gt;, <a class="el" href="structentt_1_1get__t.html">get_t</a>&lt;std::add_const_t&lt;Get&gt;...&gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt; &gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::group_if_exists </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>
<p>Groups are created on the fly and share with the registry its internal data structures. Feel free to discard them after the use.<br />
Creating and destroying a group is an incredibly cheap operation. 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.</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#l01296">1296</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a1a37b2a842fd3877bc25e3217a01ee11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1a37b2a842fd3877bc25e3217a01ee11">&#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 , typename = std::enable_if_t&lt;std::is_same_v&lt;std::decay_t&lt;typename std::iterator_traits&lt;CIt&gt;::value_type&gt;, Component&gt;&gt;&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>&#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#a4c9c0532972adc7a930a50888a97efdf" 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>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00709">709</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#a4c9c0532972adc7a930a50888a97efdf" 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#l00691">691</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>Use this function to receive notifications whenever a new instance of the given component is created and assigned to an entity.<br />
The function type for a listener is equivalent to:</p>
<div class="fragment"><div class="line">void(basic_registry&lt;Entity&gt; &amp;, Entity);</div>
</div><!-- fragment --><p>Listeners are invoked <b>after</b> assigning the component 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#l01071">1071</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>Use this function to receive notifications whenever an instance of the given component is removed from an entity and thus destroyed.<br />
The function type for a listener is equivalent to:</p>
<div class="fragment"><div class="line">void(basic_registry&lt;Entity&gt; &amp;, Entity);</div>
</div><!-- fragment --><p>Listeners are invoked <b>before</b> removing the component 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#l01117">1117</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>Use this function to receive notifications whenever an instance of the given component is explicitly updated.<br />
The function type for a listener is equivalent to:</p>
<div class="fragment"><div class="line">void(basic_registry&lt;Entity&gt; &amp;, Entity);</div>
</div><!-- fragment --><p>Listeners are invoked <b>after</b> updating the component.</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#l01094">1094</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a23d233b9e2c4a92395a60087891c52fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a23d233b9e2c4a92395a60087891c52fe">&#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"><em>other</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>Move assignment operator. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">other</td><td>The instance to move from. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>This registry. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00306">306</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</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 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#l01047">1047</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a22454253689ff77e41326f849bfea976"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22454253689ff77e41326f849bfea976">&#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 function 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.</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 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#l00761">761</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a3d9cb2368384b0952cb54848e777359e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3d9cb2368384b0952cb54848e777359e">&#9670;&nbsp;</a></span>release() <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#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::release </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>Releases an identifier. </p>
<p>The version is updated and the identifier can be recycled at any time.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an invalid entity results in undefined behavior.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The version of the recycled entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00558">558</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="af9c919867fc93a7e1a2d0762ac3a9877"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9c919867fc93a7e1a2d0762ac3a9877">&#9670;&nbsp;</a></span>release() <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#a7f947b73e9c883ecf89af298eaefe7c1">version_type</a> <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::release </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#a7f947b73e9c883ecf89af298eaefe7c1">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>Releases an identifier. </p>
<p>The suggested version or the valid version closest to the suggested one is used instead of the implicitly generated version.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a3d9cb2368384b0952cb54848e777359e" title="Releases an identifier.">release</a></dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entity</td><td>A valid identifier. </td></tr>
<tr><td class="paramname">version</td><td>A desired version upon destruction. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The version actually assigned to the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00574">574</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a69fa71876716487256ac47e19f27c553"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a69fa71876716487256ac47e19f27c553">&#9670;&nbsp;</a></span>release() <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;::release </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>Releases all identifiers in a range. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#a3d9cb2368384b0952cb54848e777359e" title="Releases an identifier.">release</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#l00589">589</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a48630f103bc6448af1f2b2928df4f488"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a48630f103bc6448af1f2b2928df4f488">&#9670;&nbsp;</a></span>released()</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;::released </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 head of the list of released entities. </p>
<p>This function is intended for use in conjunction with <code>assign</code>.<br />
The returned entity has an invalid identifier in all cases.</p>
<dl class="section return"><dt>Returns</dt><dd>The head of the list of released entities. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00435">435</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aa66ca71c5eb6c2e1b3bde6ff86a268c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa66ca71c5eb6c2e1b3bde6ff86a268c7">&#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 , typename... Other&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 </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 results in undefined behavior.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component to remove. </td></tr>
<tr><td class="paramname">Other</td><td>Other 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 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#l00799">799</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a597e4d37d39c02801f7b244148d5e4af"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a597e4d37d39c02801f7b244148d5e4af">&#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... Other, typename It &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 </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#aa66ca71c5eb6c2e1b3bde6ff86a268c7" 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">Other</td><td>Other 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>
<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#l00817">817</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a0501ff5a96a3421f3eec427bf5d62380"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0501ff5a96a3421f3eec427bf5d62380">&#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>The component must have a proper constructor or be of aggregate type.</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.</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 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#l00782">782</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a97677776c466a310547be1fdfdf84ff9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a97677776c466a310547be1fdfdf84ff9">&#9670;&nbsp;</a></span>reserve()</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;::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 (number of entities) of the registry. </p>
<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#l00390">390</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>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1basic__registry.html#aa50c2d25f9b9c7108ced52534e10d9d0" title="Returns a view for the given components.">view</a></dd></dl>
<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#l01169">1169</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a9f04ea21a04ad05937274de518da705f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9f04ea21a04ad05937274de518da705f">&#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#l01434">1434</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a5b056608b1723b73a001e20d2f2592bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5b056608b1723b73a001e20d2f2592bc">&#9670;&nbsp;</a></span>size()</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> </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#l00368">368</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>Being <code>To</code> and <code>From</code> the two sets, after invoking this function an iterator for <code>To</code> returns elements according to the following rules:</p>
<ul>
<li>All entities in <code>To</code> that are also in <code>From</code> are returned first according to the order they have in <code>From</code>.</li>
<li>All entities in <code>To</code> that are not in <code>From</code> are returned in no particular order after all the other entities.</li>
</ul>
<p>Any subsequent change to <code>From</code> won't affect the order in <code>To</code>.</p>
<dl class="section warning"><dt>Warning</dt><dd>Pools of components owned by a group cannot be sorted.</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#l01417">1417</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a413fa9d1dbe15b8043358ea9cdba6ba1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a413fa9d1dbe15b8043358ea9cdba6ba1">&#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 elements of a given component. </p>
<p>The order remains valid until a component of the given type is assigned to or removed from an entity.<br />
The comparison function object returns <code>true</code> if the first element is <em>less</em> than the second one, <code>false</code> otherwise. Its signature is also 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, it shall induce a <em>strict weak ordering</em> on the values.<br />
The sort function object offers an <code>operator()</code> that accepts:</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 object to use to compare the elements.</li>
</ul>
<p>The comparison 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.</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#l01385">1385</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#l01331">1331</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a965ab1b09f078e4494ebc3962d16e0bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a965ab1b09f078e4494ebc3962d16e0bb">&#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_1owned__t.html">owned_t</a>&lt; Owned... &gt;, <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;&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> </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#l01343">1343</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a9cce13121f0ba615c290a48dedff53ad"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cce13121f0ba615c290a48dedff53ad">&#9670;&nbsp;</a></span>storage() <span class="overload">[1/4]</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">auto <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#abcedb8f29753130e2bf3185bca211f05">storage</a> </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 an iterable object to use to <em>visit</em> a registry. </p>
<p>The iterable object returns a pair that contains the name and a reference to the current storage.</p>
<dl class="section return"><dt>Returns</dt><dd>An iterable object to use to <em>visit</em> the registry. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00328">328</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a71b8b9cf2ceccd12bdb84fc92349f85a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a71b8b9cf2ceccd12bdb84fc92349f85a">&#9670;&nbsp;</a></span>storage() <span class="overload">[2/4]</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">auto <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#abcedb8f29753130e2bf3185bca211f05">storage</a> </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 an iterable object to use to <em>visit</em> a registry. </p>
<p>The iterable object returns a pair that contains the name and a reference to the current storage.</p>
<dl class="section return"><dt>Returns</dt><dd>An iterable object to use to <em>visit</em> the registry. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00333">333</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a9d4824660a8fcee9362b39e2de46e8ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d4824660a8fcee9362b39e2de46e8ce">&#9670;&nbsp;</a></span>storage() <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 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;::<a class="el" href="namespaceentt.html#abcedb8f29753130e2bf3185bca211f05">storage</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceentt.html#a13e040e7b38a8f86d1ab2f096f37b627">id_type</a>&#160;</td>
<td class="paramname"><em>id</em> = <code><a class="el" href="structentt_1_1type__hash.html">type_hash</a>&lt;Component&gt;::value()</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 the storage for a given component 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 storage. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Optional name used to map the storage for a given component. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The storage for the given component type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00344">344</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="adbb78123b695ad38d8e6d120cc8908b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adbb78123b695ad38d8e6d120cc8908b1">&#9670;&nbsp;</a></span>storage() <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 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;::<a class="el" href="namespaceentt.html#abcedb8f29753130e2bf3185bca211f05">storage</a> </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="namespaceentt.html#a13e040e7b38a8f86d1ab2f096f37b627">id_type</a>&#160;</td>
<td class="paramname"><em>id</em> = <code><a class="el" href="structentt_1_1type__hash.html">type_hash</a>&lt;Component&gt;::value()</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 an iterable object to use to <em>visit</em> a registry. </p>
<dl class="section warning"><dt>Warning</dt><dd>If a storage for the given component doesn't exist yet, a temporary placeholder is returned instead.</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 return the storage. </td></tr>
</table>
</dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">id</td><td>Optional name used to map the storage for a given component. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The storage for the given component type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="registry_8hpp_source.html#l00360">360</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#l01480">1480</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a8554b6cb789387d30ab3a42c26b06c72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8554b6cb789387d30ab3a42c26b06c72">&#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">std::add_const_t&lt;Type&gt;* <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#l01473">1473</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.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The registry retains ownership of the pointed-to components.</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 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#l00988">988</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.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>The registry retains ownership of the pointed-to components.</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 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#l00975">975</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#l01445">1445</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 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 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#l00444">444</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="a5a7b8466273429c44efdba1ada88afc1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a7b8466273429c44efdba1ada88afc1">&#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... Other, 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_1get__t.html">get_t</a>&lt;Component, Other...&gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt; &gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a87b7ba6bd51a290113765bc97188d247">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>Views are created on the fly and share with the registry its internal data structures. Feel free to discard them after the use.<br />
Creating and destroying a view is an incredibly cheap operation. As a rule of thumb, storing a view should never be an option.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component used to construct the view. </td></tr>
<tr><td class="paramname">Other</td><td>Other types 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#l01141">1141</a> of file <a class="el" href="registry_8hpp_source.html">registry.hpp</a>.</p>
</div>
</div>
<a id="aa50c2d25f9b9c7108ced52534e10d9d0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa50c2d25f9b9c7108ced52534e10d9d0">&#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... Other, 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_1get__t.html">get_t</a>&lt;std::add_const_t&lt;Component&gt;, std::add_const_t&lt;Other&gt;...&gt;, <a class="el" href="structentt_1_1exclude__t.html">exclude_t</a>&lt;Exclude...&gt; &gt; <a class="el" href="classentt_1_1basic__registry.html">entt::basic_registry</a>&lt; Entity &gt;::<a class="el" href="namespaceentt.html#a87b7ba6bd51a290113765bc97188d247">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>Views are created on the fly and share with the registry its internal data structures. Feel free to discard them after the use.<br />
Creating and destroying a view is an incredibly cheap operation. As a rule of thumb, storing a view should never be an option.</p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Component</td><td>Type of component used to construct the view. </td></tr>
<tr><td class="paramname">Other</td><td>Other types 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#l01135">1135</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 -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1
</small></address>
</body>
</html>