Files
entt/classentt_1_1storage.html
2020-03-07 18:44:24 +01:00

1170 lines
91 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>EnTT: entt::storage&lt; Entity, Type, typename &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.3.2</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespaceentt.html">entt</a></li><li class="navelem"><a class="el" href="classentt_1_1storage.html">storage</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_1storage-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">entt::storage&lt; Entity, Type, typename &gt; Class Template Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Basic storage implementation.
<a href="classentt_1_1storage.html#details">More...</a></p>
<p><code>#include &lt;<a class="el" href="storage_8hpp_source.html">storage.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for entt::storage&lt; Entity, Type, typename &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classentt_1_1storage__inherit__graph.png" border="0" usemap="#entt_1_1storage_3_01Entity_00_01Type_00_01typename_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="entt_1_1storage_3_01Entity_00_01Type_00_01typename_01_4_inherit__map" id="entt_1_1storage_3_01Entity_00_01Type_00_01typename_01_4_inherit__map">
<area shape="rect" title="Basic storage implementation." alt="" coords="20,80,165,121"/>
<area shape="rect" href="classentt_1_1sparse__set.html" title="Basic sparse set implementation." alt="" coords="5,5,180,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for entt::storage&lt; Entity, Type, typename &gt;:</div>
<div class="dyncontent">
<div class="center"><img src="classentt_1_1storage__coll__graph.png" border="0" usemap="#entt_1_1storage_3_01Entity_00_01Type_00_01typename_01_4_coll__map" alt="Collaboration graph"/></div>
<map name="entt_1_1storage_3_01Entity_00_01Type_00_01typename_01_4_coll__map" id="entt_1_1storage_3_01Entity_00_01Type_00_01typename_01_4_coll__map">
<area shape="rect" title="Basic storage implementation." alt="" coords="20,80,165,121"/>
<area shape="rect" href="classentt_1_1sparse__set.html" title="Basic sparse set implementation." alt="" coords="5,5,180,32"/>
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<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:a631919f749405616e64372326052a285"><td class="memItemLeft" align="right" valign="top"><a id="a631919f749405616e64372326052a285"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a> = Type</td></tr>
<tr class="memdesc:a631919f749405616e64372326052a285"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type of the objects associated with the entities. <br /></td></tr>
<tr class="separator:a631919f749405616e64372326052a285"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ace2fc5e7d2c2a24e1fc5c43e49aab332"><td class="memItemLeft" align="right" valign="top"><a id="ace2fc5e7d2c2a24e1fc5c43e49aab332"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#ace2fc5e7d2c2a24e1fc5c43e49aab332">entity_type</a> = Entity</td></tr>
<tr class="memdesc:ace2fc5e7d2c2a24e1fc5c43e49aab332"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:ace2fc5e7d2c2a24e1fc5c43e49aab332"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91479f00657aa72597c95a393833218b"><td class="memItemLeft" align="right" valign="top"><a id="a91479f00657aa72597c95a393833218b"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a91479f00657aa72597c95a393833218b">size_type</a> = std::size_t</td></tr>
<tr class="memdesc:a91479f00657aa72597c95a393833218b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:a91479f00657aa72597c95a393833218b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9e6d32daa9e57e53101564361af4d11a"><td class="memItemLeft" align="right" valign="top"><a id="a9e6d32daa9e57e53101564361af4d11a"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a9e6d32daa9e57e53101564361af4d11a">iterator_type</a> = iterator&lt; false &gt;</td></tr>
<tr class="memdesc:a9e6d32daa9e57e53101564361af4d11a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Random access iterator type. <br /></td></tr>
<tr class="separator:a9e6d32daa9e57e53101564361af4d11a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab61632730f4e72277cfd120d177a199f"><td class="memItemLeft" align="right" valign="top"><a id="ab61632730f4e72277cfd120d177a199f"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a> = iterator&lt; true &gt;</td></tr>
<tr class="memdesc:ab61632730f4e72277cfd120d177a199f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constant random access iterator type. <br /></td></tr>
<tr class="separator:ab61632730f4e72277cfd120d177a199f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classentt_1_1sparse__set"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classentt_1_1sparse__set')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classentt_1_1sparse__set.html">entt::sparse_set&lt; Entity &gt;</a></td></tr>
<tr class="memitem:a9a1dbe5ab2dbb098beae0bff56bbf780 inherit pub_types_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a id="a9a1dbe5ab2dbb098beae0bff56bbf780"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> = Entity</td></tr>
<tr class="memdesc:a9a1dbe5ab2dbb098beae0bff56bbf780 inherit pub_types_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Underlying entity identifier. <br /></td></tr>
<tr class="separator:a9a1dbe5ab2dbb098beae0bff56bbf780 inherit pub_types_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3d2138b0eb8c7ac968e9e38a9e981ec1 inherit pub_types_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a id="a3d2138b0eb8c7ac968e9e38a9e981ec1"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a3d2138b0eb8c7ac968e9e38a9e981ec1">size_type</a> = std::size_t</td></tr>
<tr class="memdesc:a3d2138b0eb8c7ac968e9e38a9e981ec1 inherit pub_types_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unsigned integer type. <br /></td></tr>
<tr class="separator:a3d2138b0eb8c7ac968e9e38a9e981ec1 inherit pub_types_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a580b210d5a24c49ca8c255646f3bb469 inherit pub_types_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a id="a580b210d5a24c49ca8c255646f3bb469"></a>
using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> = iterator</td></tr>
<tr class="memdesc:a580b210d5a24c49ca8c255646f3bb469 inherit pub_types_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Random access iterator type. <br /></td></tr>
<tr class="separator:a580b210d5a24c49ca8c255646f3bb469 inherit pub_types_classentt_1_1sparse__set"><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:a41cfa5ae2ebe7bd85045c5e609b90809"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a41cfa5ae2ebe7bd85045c5e609b90809">reserve</a> (const <a class="el" href="classentt_1_1sparse__set.html#a3d2138b0eb8c7ac968e9e38a9e981ec1">size_type</a> cap)</td></tr>
<tr class="memdesc:a41cfa5ae2ebe7bd85045c5e609b90809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases the capacity of a storage. <a href="classentt_1_1storage.html#a41cfa5ae2ebe7bd85045c5e609b90809">More...</a><br /></td></tr>
<tr class="separator:a41cfa5ae2ebe7bd85045c5e609b90809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5cd0e1e611348790e093c0a87355dd95"><td class="memItemLeft" align="right" valign="top"><a id="a5cd0e1e611348790e093c0a87355dd95"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a5cd0e1e611348790e093c0a87355dd95">shrink_to_fit</a> ()</td></tr>
<tr class="memdesc:a5cd0e1e611348790e093c0a87355dd95"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests the removal of unused capacity. <br /></td></tr>
<tr class="separator:a5cd0e1e611348790e093c0a87355dd95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a70cf6fc039da20cc004219e2922a9946"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a70cf6fc039da20cc004219e2922a9946">raw</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a70cf6fc039da20cc004219e2922a9946"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the array of objects. <a href="classentt_1_1storage.html#a70cf6fc039da20cc004219e2922a9946">More...</a><br /></td></tr>
<tr class="separator:a70cf6fc039da20cc004219e2922a9946"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac64d0e41e0044b96760eb01cd7d7fbfa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#ac64d0e41e0044b96760eb01cd7d7fbfa">raw</a> () ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:ac64d0e41e0044b96760eb01cd7d7fbfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the array of objects. <a href="classentt_1_1storage.html#ac64d0e41e0044b96760eb01cd7d7fbfa">More...</a><br /></td></tr>
<tr class="separator:ac64d0e41e0044b96760eb01cd7d7fbfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00610b3c266d840927b1b26fb7dc031f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a00610b3c266d840927b1b26fb7dc031f">cbegin</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a00610b3c266d840927b1b26fb7dc031f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the beginning. <a href="classentt_1_1storage.html#a00610b3c266d840927b1b26fb7dc031f">More...</a><br /></td></tr>
<tr class="separator:a00610b3c266d840927b1b26fb7dc031f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5307467dd2f5dcf589e418ffd3913e7b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a5307467dd2f5dcf589e418ffd3913e7b">begin</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a5307467dd2f5dcf589e418ffd3913e7b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the beginning. <a href="classentt_1_1storage.html#a5307467dd2f5dcf589e418ffd3913e7b">More...</a><br /></td></tr>
<tr class="separator:a5307467dd2f5dcf589e418ffd3913e7b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5d7c3258f6741b986bb815874834109f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a5d7c3258f6741b986bb815874834109f">begin</a> () ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a5d7c3258f6741b986bb815874834109f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the beginning. <a href="classentt_1_1storage.html#a5d7c3258f6741b986bb815874834109f">More...</a><br /></td></tr>
<tr class="separator:a5d7c3258f6741b986bb815874834109f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e4a367a999c01bc91f2c2fa2f45b223"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a6e4a367a999c01bc91f2c2fa2f45b223">cend</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a6e4a367a999c01bc91f2c2fa2f45b223"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the end. <a href="classentt_1_1storage.html#a6e4a367a999c01bc91f2c2fa2f45b223">More...</a><br /></td></tr>
<tr class="separator:a6e4a367a999c01bc91f2c2fa2f45b223"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa8f20c208a24568bf7e961be97ca9f45"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#aa8f20c208a24568bf7e961be97ca9f45">end</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:aa8f20c208a24568bf7e961be97ca9f45"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the end. <a href="classentt_1_1storage.html#aa8f20c208a24568bf7e961be97ca9f45">More...</a><br /></td></tr>
<tr class="separator:aa8f20c208a24568bf7e961be97ca9f45"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a491ac1f1adcef2778244e4f3e8eb186c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a491ac1f1adcef2778244e4f3e8eb186c">end</a> () ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a491ac1f1adcef2778244e4f3e8eb186c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the end. <a href="classentt_1_1storage.html#a491ac1f1adcef2778244e4f3e8eb186c">More...</a><br /></td></tr>
<tr class="separator:a491ac1f1adcef2778244e4f3e8eb186c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af022285c82a3a8f1a018cba13ac9c67c"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#af022285c82a3a8f1a018cba13ac9c67c">get</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt) const</td></tr>
<tr class="memdesc:af022285c82a3a8f1a018cba13ac9c67c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object associated with an entity. <a href="classentt_1_1storage.html#af022285c82a3a8f1a018cba13ac9c67c">More...</a><br /></td></tr>
<tr class="separator:af022285c82a3a8f1a018cba13ac9c67c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85a33d689ada64a6d78c19e020ed38c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a85a33d689ada64a6d78c19e020ed38c0">get</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt)</td></tr>
<tr class="memdesc:a85a33d689ada64a6d78c19e020ed38c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the object associated with an entity. <a href="classentt_1_1storage.html#a85a33d689ada64a6d78c19e020ed38c0">More...</a><br /></td></tr>
<tr class="separator:a85a33d689ada64a6d78c19e020ed38c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a267639f029a1a4ffab876e3a47c78a62"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a267639f029a1a4ffab876e3a47c78a62">try_get</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt) const</td></tr>
<tr class="memdesc:a267639f029a1a4ffab876e3a47c78a62"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the object associated with an entity, if any. <a href="classentt_1_1storage.html#a267639f029a1a4ffab876e3a47c78a62">More...</a><br /></td></tr>
<tr class="separator:a267639f029a1a4ffab876e3a47c78a62"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cc1f951e78e7678f19fb8b3cf7065d1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a7cc1f951e78e7678f19fb8b3cf7065d1">try_get</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt)</td></tr>
<tr class="memdesc:a7cc1f951e78e7678f19fb8b3cf7065d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a pointer to the object associated with an entity, if any. <a href="classentt_1_1storage.html#a7cc1f951e78e7678f19fb8b3cf7065d1">More...</a><br /></td></tr>
<tr class="separator:a7cc1f951e78e7678f19fb8b3cf7065d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a649509ba225d8ddc583c965036327b5f"><td class="memTemplParams" colspan="2">template&lt;typename... Args&gt; </td></tr>
<tr class="memitem:a649509ba225d8ddc583c965036327b5f"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a649509ba225d8ddc583c965036327b5f">construct</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a649509ba225d8ddc583c965036327b5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns an entity to a storage and constructs its object. <a href="classentt_1_1storage.html#a649509ba225d8ddc583c965036327b5f">More...</a><br /></td></tr>
<tr class="separator:a649509ba225d8ddc583c965036327b5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a913b64ff22aa8c338fef691cb867e1cb"><td class="memTemplParams" colspan="2">template&lt;typename It &gt; </td></tr>
<tr class="memitem:a913b64ff22aa8c338fef691cb867e1cb"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if_t&lt; std::is_same_v&lt; typename std::iterator_traits&lt; It &gt;::value_type, <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> &gt;, void &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a913b64ff22aa8c338fef691cb867e1cb">construct</a> (It first, It last, const <a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a> &amp;value={})</td></tr>
<tr class="memdesc:a913b64ff22aa8c338fef691cb867e1cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns one or more entities to a storage and constructs their objects from a given instance. <a href="classentt_1_1storage.html#a913b64ff22aa8c338fef691cb867e1cb">More...</a><br /></td></tr>
<tr class="separator:a913b64ff22aa8c338fef691cb867e1cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaa48abd2dc99fcbed4766e3f5a8e91b1"><td class="memTemplParams" colspan="2">template&lt;typename EIt , typename CIt &gt; </td></tr>
<tr class="memitem:aaa48abd2dc99fcbed4766e3f5a8e91b1"><td class="memTemplItemLeft" align="right" valign="top">std::enable_if_t&lt; std::is_same_v&lt; typename std::iterator_traits&lt; EIt &gt;::value_type, <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> &gt;, void &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#aaa48abd2dc99fcbed4766e3f5a8e91b1">construct</a> (EIt first, EIt last, CIt value)</td></tr>
<tr class="memdesc:aaa48abd2dc99fcbed4766e3f5a8e91b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns one or more entities to a storage and constructs their objects from a given range. <a href="classentt_1_1storage.html#aaa48abd2dc99fcbed4766e3f5a8e91b1">More...</a><br /></td></tr>
<tr class="separator:aaa48abd2dc99fcbed4766e3f5a8e91b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a200938ea3867e3637c3c703f91ec0106"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#a200938ea3867e3637c3c703f91ec0106">destroy</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt)</td></tr>
<tr class="memdesc:a200938ea3867e3637c3c703f91ec0106"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an entity from a storage and destroys its object. <a href="classentt_1_1storage.html#a200938ea3867e3637c3c703f91ec0106">More...</a><br /></td></tr>
<tr class="separator:a200938ea3867e3637c3c703f91ec0106"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad98116de758a54b3b6df89f19d968e40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#ad98116de758a54b3b6df89f19d968e40">swap</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> lhs, const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> rhs) override</td></tr>
<tr class="memdesc:ad98116de758a54b3b6df89f19d968e40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps entities and objects in the internal packed arrays. <a href="classentt_1_1storage.html#ad98116de758a54b3b6df89f19d968e40">More...</a><br /></td></tr>
<tr class="separator:ad98116de758a54b3b6df89f19d968e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad2dabf6c46bea39d16204abdae2cfdfa"><td class="memTemplParams" colspan="2">template&lt;typename Compare , typename Sort = std_sort, typename... Args&gt; </td></tr>
<tr class="memitem:ad2dabf6c46bea39d16204abdae2cfdfa"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#ad2dabf6c46bea39d16204abdae2cfdfa">sort</a> (<a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> first, <a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> last, Compare compare, Sort algo=Sort{}, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:ad2dabf6c46bea39d16204abdae2cfdfa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort elements according to the given comparison function. <a href="classentt_1_1storage.html#ad2dabf6c46bea39d16204abdae2cfdfa">More...</a><br /></td></tr>
<tr class="separator:ad2dabf6c46bea39d16204abdae2cfdfa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae28ee0f55d7c3416e46945bd7926ab09"><td class="memItemLeft" align="right" valign="top"><a id="ae28ee0f55d7c3416e46945bd7926ab09"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1storage.html#ae28ee0f55d7c3416e46945bd7926ab09">clear</a> ()</td></tr>
<tr class="memdesc:ae28ee0f55d7c3416e46945bd7926ab09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears a storage. <br /></td></tr>
<tr class="separator:ae28ee0f55d7c3416e46945bd7926ab09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classentt_1_1sparse__set"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classentt_1_1sparse__set')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classentt_1_1sparse__set.html">entt::sparse_set&lt; Entity &gt;</a></td></tr>
<tr class="memitem:a8ef544aaed30126797f6f0b9a9f8b9e8 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a id="a8ef544aaed30126797f6f0b9a9f8b9e8"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a8ef544aaed30126797f6f0b9a9f8b9e8">sparse_set</a> ()=default</td></tr>
<tr class="memdesc:a8ef544aaed30126797f6f0b9a9f8b9e8 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
<tr class="separator:a8ef544aaed30126797f6f0b9a9f8b9e8 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af8f4f137b5ac0984599067d5408db5bf inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a id="af8f4f137b5ac0984599067d5408db5bf"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#af8f4f137b5ac0984599067d5408db5bf">sparse_set</a> (<a class="el" href="classentt_1_1sparse__set.html">sparse_set</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:af8f4f137b5ac0984599067d5408db5bf inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move constructor. <br /></td></tr>
<tr class="separator:af8f4f137b5ac0984599067d5408db5bf inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ea4731d5a2e22f4bd43f8e19ca39f58 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a id="a2ea4731d5a2e22f4bd43f8e19ca39f58"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a2ea4731d5a2e22f4bd43f8e19ca39f58">~sparse_set</a> ()=default</td></tr>
<tr class="memdesc:a2ea4731d5a2e22f4bd43f8e19ca39f58 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor. <br /></td></tr>
<tr class="separator:a2ea4731d5a2e22f4bd43f8e19ca39f58 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cb1c0bffe341b847537956075b398fa inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html">sparse_set</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a7cb1c0bffe341b847537956075b398fa">operator=</a> (<a class="el" href="classentt_1_1sparse__set.html">sparse_set</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a7cb1c0bffe341b847537956075b398fa inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default move assignment operator. <a href="classentt_1_1sparse__set.html#a7cb1c0bffe341b847537956075b398fa">More...</a><br /></td></tr>
<tr class="separator:a7cb1c0bffe341b847537956075b398fa inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b4b9dd989877bc333fdc455fcd068d7 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a8b4b9dd989877bc333fdc455fcd068d7">reserve</a> (const <a class="el" href="classentt_1_1sparse__set.html#a3d2138b0eb8c7ac968e9e38a9e981ec1">size_type</a> cap)</td></tr>
<tr class="memdesc:a8b4b9dd989877bc333fdc455fcd068d7 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increases the capacity of a sparse set. <a href="classentt_1_1sparse__set.html#a8b4b9dd989877bc333fdc455fcd068d7">More...</a><br /></td></tr>
<tr class="separator:a8b4b9dd989877bc333fdc455fcd068d7 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a30267005e552fce0d2a9b4e4d70d6656 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a3d2138b0eb8c7ac968e9e38a9e981ec1">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a30267005e552fce0d2a9b4e4d70d6656">capacity</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a30267005e552fce0d2a9b4e4d70d6656 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of elements that a sparse set has currently allocated space for. <a href="classentt_1_1sparse__set.html#a30267005e552fce0d2a9b4e4d70d6656">More...</a><br /></td></tr>
<tr class="separator:a30267005e552fce0d2a9b4e4d70d6656 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75f5d70148a149e4cbc485c7a7b00dda inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a id="a75f5d70148a149e4cbc485c7a7b00dda"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a75f5d70148a149e4cbc485c7a7b00dda">shrink_to_fit</a> ()</td></tr>
<tr class="memdesc:a75f5d70148a149e4cbc485c7a7b00dda inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests the removal of unused capacity. <br /></td></tr>
<tr class="separator:a75f5d70148a149e4cbc485c7a7b00dda inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af79345df59154e5ea9e58b7efa7ff8f0 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a3d2138b0eb8c7ac968e9e38a9e981ec1">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#af79345df59154e5ea9e58b7efa7ff8f0">extent</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:af79345df59154e5ea9e58b7efa7ff8f0 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the extent of a sparse set. <a href="classentt_1_1sparse__set.html#af79345df59154e5ea9e58b7efa7ff8f0">More...</a><br /></td></tr>
<tr class="separator:af79345df59154e5ea9e58b7efa7ff8f0 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a340dff7484f1e58feff58a5f0627e190 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a3d2138b0eb8c7ac968e9e38a9e981ec1">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a340dff7484f1e58feff58a5f0627e190">size</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a340dff7484f1e58feff58a5f0627e190 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the number of elements in a sparse set. <a href="classentt_1_1sparse__set.html#a340dff7484f1e58feff58a5f0627e190">More...</a><br /></td></tr>
<tr class="separator:a340dff7484f1e58feff58a5f0627e190 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae1a16cb354a9ed5ded92b6edcddce15e inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#ae1a16cb354a9ed5ded92b6edcddce15e">empty</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:ae1a16cb354a9ed5ded92b6edcddce15e inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks whether a sparse set is empty. <a href="classentt_1_1sparse__set.html#ae1a16cb354a9ed5ded92b6edcddce15e">More...</a><br /></td></tr>
<tr class="separator:ae1a16cb354a9ed5ded92b6edcddce15e inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2eafe4975271769b08fe7f7d4924992f inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a2eafe4975271769b08fe7f7d4924992f">data</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a2eafe4975271769b08fe7f7d4924992f inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Direct access to the internal packed array. <a href="classentt_1_1sparse__set.html#a2eafe4975271769b08fe7f7d4924992f">More...</a><br /></td></tr>
<tr class="separator:a2eafe4975271769b08fe7f7d4924992f inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a06743336f265989b48e106a3d3bd1562 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a06743336f265989b48e106a3d3bd1562">begin</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a06743336f265989b48e106a3d3bd1562 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the beginning. <a href="classentt_1_1sparse__set.html#a06743336f265989b48e106a3d3bd1562">More...</a><br /></td></tr>
<tr class="separator:a06743336f265989b48e106a3d3bd1562 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69d6c1288f673c6f92d2b1b028d6aa75 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a69d6c1288f673c6f92d2b1b028d6aa75">end</a> () const ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:a69d6c1288f673c6f92d2b1b028d6aa75 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns an iterator to the end. <a href="classentt_1_1sparse__set.html#a69d6c1288f673c6f92d2b1b028d6aa75">More...</a><br /></td></tr>
<tr class="separator:a69d6c1288f673c6f92d2b1b028d6aa75 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92f989fbb8b105e3c60d5c09c02b64c2 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a92f989fbb8b105e3c60d5c09c02b64c2">find</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt) const</td></tr>
<tr class="memdesc:a92f989fbb8b105e3c60d5c09c02b64c2 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Finds an entity. <a href="classentt_1_1sparse__set.html#a92f989fbb8b105e3c60d5c09c02b64c2">More...</a><br /></td></tr>
<tr class="separator:a92f989fbb8b105e3c60d5c09c02b64c2 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45740d20df28710b87783d814abee1f7 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a45740d20df28710b87783d814abee1f7">has</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt) const</td></tr>
<tr class="memdesc:a45740d20df28710b87783d814abee1f7 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks if a sparse set contains an entity. <a href="classentt_1_1sparse__set.html#a45740d20df28710b87783d814abee1f7">More...</a><br /></td></tr>
<tr class="separator:a45740d20df28710b87783d814abee1f7 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a17386e505ea87ccc100e23360c93aa46 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classentt_1_1sparse__set.html#a3d2138b0eb8c7ac968e9e38a9e981ec1">size_type</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a17386e505ea87ccc100e23360c93aa46">index</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt) const</td></tr>
<tr class="memdesc:a17386e505ea87ccc100e23360c93aa46 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the position of an entity in a sparse set. <a href="classentt_1_1sparse__set.html#a17386e505ea87ccc100e23360c93aa46">More...</a><br /></td></tr>
<tr class="separator:a17386e505ea87ccc100e23360c93aa46 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f6d293b9bc7227de22c86722881083f inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a4f6d293b9bc7227de22c86722881083f">construct</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt)</td></tr>
<tr class="memdesc:a4f6d293b9bc7227de22c86722881083f inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns an entity to a sparse set. <a href="classentt_1_1sparse__set.html#a4f6d293b9bc7227de22c86722881083f">More...</a><br /></td></tr>
<tr class="separator:a4f6d293b9bc7227de22c86722881083f inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a00e7d9777838f856ac4558a839d2069c inherit pub_methods_classentt_1_1sparse__set"><td class="memTemplParams" colspan="2">template&lt;typename It &gt; </td></tr>
<tr class="memitem:a00e7d9777838f856ac4558a839d2069c inherit pub_methods_classentt_1_1sparse__set"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a00e7d9777838f856ac4558a839d2069c">construct</a> (It first, It last)</td></tr>
<tr class="memdesc:a00e7d9777838f856ac4558a839d2069c inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assigns one or more entities to a sparse set. <a href="classentt_1_1sparse__set.html#a00e7d9777838f856ac4558a839d2069c">More...</a><br /></td></tr>
<tr class="separator:a00e7d9777838f856ac4558a839d2069c inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab69719626bee1add76096046db86a170 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#ab69719626bee1add76096046db86a170">destroy</a> (const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a> entt)</td></tr>
<tr class="memdesc:ab69719626bee1add76096046db86a170 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes an entity from a sparse set. <a href="classentt_1_1sparse__set.html#ab69719626bee1add76096046db86a170">More...</a><br /></td></tr>
<tr class="separator:ab69719626bee1add76096046db86a170 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afae939a408911c573256cf0299d76828 inherit pub_methods_classentt_1_1sparse__set"><td class="memTemplParams" colspan="2">template&lt;typename Compare , typename Sort = std_sort, typename... Args&gt; </td></tr>
<tr class="memitem:afae939a408911c573256cf0299d76828 inherit pub_methods_classentt_1_1sparse__set"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#afae939a408911c573256cf0299d76828">sort</a> (<a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> first, <a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> last, Compare compare, Sort algo=Sort{}, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:afae939a408911c573256cf0299d76828 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort elements according to the given comparison function. <a href="classentt_1_1sparse__set.html#afae939a408911c573256cf0299d76828">More...</a><br /></td></tr>
<tr class="separator:afae939a408911c573256cf0299d76828 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28b36afb6ae6f91d995ff259184d6515 inherit pub_methods_classentt_1_1sparse__set"><td class="memTemplParams" colspan="2">template&lt;typename Apply , typename Compare , typename Sort = std_sort, typename... Args&gt; </td></tr>
<tr class="memitem:a28b36afb6ae6f91d995ff259184d6515 inherit pub_methods_classentt_1_1sparse__set"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a28b36afb6ae6f91d995ff259184d6515">arrange</a> (<a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> first, <a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> last, Apply apply, Compare compare, Sort algo=Sort{}, Args &amp;&amp;... args)</td></tr>
<tr class="memdesc:a28b36afb6ae6f91d995ff259184d6515 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort elements according to the given comparison function. <a href="classentt_1_1sparse__set.html#a28b36afb6ae6f91d995ff259184d6515">More...</a><br /></td></tr>
<tr class="separator:a28b36afb6ae6f91d995ff259184d6515 inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a683d1f8f52b1083cddd9938536a74a inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#a1a683d1f8f52b1083cddd9938536a74a">respect</a> (const <a class="el" href="classentt_1_1sparse__set.html">sparse_set</a> &amp;other)</td></tr>
<tr class="memdesc:a1a683d1f8f52b1083cddd9938536a74a inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sort entities according to their order in another sparse set. <a href="classentt_1_1sparse__set.html#a1a683d1f8f52b1083cddd9938536a74a">More...</a><br /></td></tr>
<tr class="separator:a1a683d1f8f52b1083cddd9938536a74a inherit pub_methods_classentt_1_1sparse__set"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad9a691245be8914b0a2d3756a0fc02d9 inherit pub_methods_classentt_1_1sparse__set"><td class="memItemLeft" align="right" valign="top"><a id="ad9a691245be8914b0a2d3756a0fc02d9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classentt_1_1sparse__set.html#ad9a691245be8914b0a2d3756a0fc02d9">clear</a> () ENTT_NOEXCEPT</td></tr>
<tr class="memdesc:ad9a691245be8914b0a2d3756a0fc02d9 inherit pub_methods_classentt_1_1sparse__set"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clears a sparse set. <br /></td></tr>
<tr class="separator:ad9a691245be8914b0a2d3756a0fc02d9 inherit pub_methods_classentt_1_1sparse__set"><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, typename Type, typename = std::void_t&lt;&gt;&gt;<br />
class entt::storage&lt; Entity, Type, typename &gt;</h3>
<p>Basic storage implementation. </p>
<p>This class is a refinement of a sparse set that associates an object to an entity. The main purpose of this class is to extend sparse sets to store components in a registry. It guarantees fast access both to the elements and to the entities.</p>
<dl class="section note"><dt>Note</dt><dd>Entities and objects have the same order. It's guaranteed both in case of raw access (either to entities or objects) and when using random or input access iterators.</dd>
<dd>
Internal data structures arrange elements to maximize performance. Because of that, there are no guarantees that elements have the expected order when iterate directly the internal packed array (see <code>raw</code> and <code>size</code> member functions for that). Use <code>begin</code> and <code>end</code> instead.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Empty types aren't explicitly instantiated. Temporary objects are returned in place of the instances of the components and raw access isn't available for them.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1sparse__set.html#a8ef544aaed30126797f6f0b9a9f8b9e8" title="Default constructor.">sparse_set&lt;Entity&gt;</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<tr><td class="paramname">Entity</td><td>A valid entity type (see <a class="el" href="structentt_1_1entt__traits.html" title="Entity traits.">entt_traits</a> for more details). </td></tr>
<tr><td class="paramname">Type</td><td>Type of objects assigned to the entities. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00050">50</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a5307467dd2f5dcf589e418ffd3913e7b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5307467dd2f5dcf589e418ffd3913e7b">&#9670;&nbsp;</a></span>begin() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a> <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::begin </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 iterator to the beginning. </p>
<p>The returned iterator points to the first instance of the given type. If the storage is empty, the returned iterator will be equal to <code><a class="el" href="classentt_1_1storage.html#a491ac1f1adcef2778244e4f3e8eb186c" title="Returns an iterator to the end.">end()</a></code>.</p>
<dl class="section note"><dt>Note</dt><dd>Random access iterators stay true to the order imposed by a call to either <code>sort</code> or <code>respect</code>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the first instance of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00229">229</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a5d7c3258f6741b986bb815874834109f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5d7c3258f6741b986bb815874834109f">&#9670;&nbsp;</a></span>begin() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::begin </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 iterator to the beginning. </p>
<p>The returned iterator points to the first instance of the given type. If the storage is empty, the returned iterator will be equal to <code><a class="el" href="classentt_1_1storage.html#a491ac1f1adcef2778244e4f3e8eb186c" title="Returns an iterator to the end.">end()</a></code>.</p>
<dl class="section note"><dt>Note</dt><dd>Random access iterators stay true to the order imposed by a call to either <code>sort</code> or <code>respect</code>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the first instance of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00234">234</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a00610b3c266d840927b1b26fb7dc031f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a00610b3c266d840927b1b26fb7dc031f">&#9670;&nbsp;</a></span>cbegin()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a> <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::cbegin </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 iterator to the beginning. </p>
<p>The returned iterator points to the first instance of the given type. If the storage is empty, the returned iterator will be equal to <code><a class="el" href="classentt_1_1storage.html#a491ac1f1adcef2778244e4f3e8eb186c" title="Returns an iterator to the end.">end()</a></code>.</p>
<dl class="section note"><dt>Note</dt><dd>Random access iterators stay true to the order imposed by a call to either <code>sort</code> or <code>respect</code>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the first instance of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00223">223</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a6e4a367a999c01bc91f2c2fa2f45b223"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6e4a367a999c01bc91f2c2fa2f45b223">&#9670;&nbsp;</a></span>cend()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a> <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::cend </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 iterator to the end. </p>
<p>The returned iterator points to the element following the last instance of the given type. Attempting to dereference the returned iterator results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Random access iterators stay true to the order imposed by a call to either <code>sort</code> or <code>respect</code>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the element following the last instance of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00253">253</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a649509ba225d8ddc583c965036327b5f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a649509ba225d8ddc583c965036327b5f">&#9670;&nbsp;</a></span>construct() <span class="overload">[1/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<div class="memtemplate">
template&lt;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_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::construct </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&#160;</td>
<td class="paramname"><em>entt</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 an entity to a storage and constructs its object. </p>
<p>This version accept both types that can be constructed in place directly and types like aggregates that do not work well with a placement new as performed usually under the hood during an <em>emplace back</em>.</p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that already belongs to the storage results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the storage already contains the given entity.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<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">entt</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">args</td><td>Parameters to use to construct an object for the entity. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00320">320</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="aaa48abd2dc99fcbed4766e3f5a8e91b1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaa48abd2dc99fcbed4766e3f5a8e91b1">&#9670;&nbsp;</a></span>construct() <span class="overload">[2/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<div class="memtemplate">
template&lt;typename EIt , typename CIt &gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">std::enable_if_t&lt;std::is_same_v&lt;typename std::iterator_traits&lt;EIt&gt;::value_type, <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&gt;, void&gt; <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::construct </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>value</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 one or more entities to a storage and constructs their objects from a given range. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classentt_1_1storage.html#a649509ba225d8ddc583c965036327b5f" title="Assigns an entity to a storage and constructs its object.">construct</a></dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<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">value</td><td>An iterator to the first element of the range of objects. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00368">368</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a913b64ff22aa8c338fef691cb867e1cb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a913b64ff22aa8c338fef691cb867e1cb">&#9670;&nbsp;</a></span>construct() <span class="overload">[3/3]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&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">std::enable_if_t&lt;std::is_same_v&lt;typename std::iterator_traits&lt;It&gt;::value_type, <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&gt;, void&gt; <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::construct </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_1storage.html#a631919f749405616e64372326052a285">object_type</a> &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 one or more entities to a storage and constructs their objects from a given instance. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to assign an entity that already belongs to the storage results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the storage already contains the given entity.</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">value</td><td>An instance of the object to construct. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00348">348</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a200938ea3867e3637c3c703f91ec0106"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a200938ea3867e3637c3c703f91ec0106">&#9670;&nbsp;</a></span>destroy()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&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_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::destroy </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&#160;</td>
<td class="paramname"><em>entt</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 an entity from a storage and destroys its object. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the storage results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the storage doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entt</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00385">385</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="aa8f20c208a24568bf7e961be97ca9f45"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa8f20c208a24568bf7e961be97ca9f45">&#9670;&nbsp;</a></span>end() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1storage.html#ab61632730f4e72277cfd120d177a199f">const_iterator_type</a> <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::end </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 iterator to the end. </p>
<p>The returned iterator points to the element following the last instance of the given type. Attempting to dereference the returned iterator results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Random access iterators stay true to the order imposed by a call to either <code>sort</code> or <code>respect</code>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the element following the last instance of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00258">258</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a491ac1f1adcef2778244e4f3e8eb186c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a491ac1f1adcef2778244e4f3e8eb186c">&#9670;&nbsp;</a></span>end() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a> <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::end </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 iterator to the end. </p>
<p>The returned iterator points to the element following the last instance of the given type. Attempting to dereference the returned iterator results in undefined behavior.</p>
<dl class="section note"><dt>Note</dt><dd>Random access iterators stay true to the order imposed by a call to either <code>sort</code> or <code>respect</code>.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>An iterator to the element following the last instance of the given type. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00263">263</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a85a33d689ada64a6d78c19e020ed38c0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a85a33d689ada64a6d78c19e020ed38c0">&#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, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a>&amp; <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::get </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&#160;</td>
<td class="paramname"><em>entt</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 the object associated with an entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the storage results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the storage doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entt</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The object associated with the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00284">284</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="af022285c82a3a8f1a018cba13ac9c67c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af022285c82a3a8f1a018cba13ac9c67c">&#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, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a>&amp; <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::get </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&#160;</td>
<td class="paramname"><em>entt</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 object associated with an entity. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to use an entity that doesn't belong to the storage results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the storage doesn't contain the given entity.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entt</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The object associated with the entity. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00279">279</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a70cf6fc039da20cc004219e2922a9946"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a70cf6fc039da20cc004219e2922a9946">&#9670;&nbsp;</a></span>raw() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a>* <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td> const</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the array of objects. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1storage.html#ac64d0e41e0044b96760eb01cd7d7fbfa" title="Direct access to the array of objects.">raw()</a>, <a class="el" href="classentt_1_1storage.html#ac64d0e41e0044b96760eb01cd7d7fbfa" title="Direct access to the array of objects.">raw()</a> + <a class="el" href="classentt_1_1sparse__set.html#a340dff7484f1e58feff58a5f0627e190" title="Returns the number of elements in a sparse set.">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order, even though either <code>sort</code> or <code>respect</code> has been previously invoked. Internal data structures arrange elements to maximize performance. Accessing them directly gives a performance boost but less guarantees. Use <code>begin</code> and <code>end</code> if you want to iterate the storage in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of objects. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00202">202</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="ac64d0e41e0044b96760eb01cd7d7fbfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac64d0e41e0044b96760eb01cd7d7fbfa">&#9670;&nbsp;</a></span>raw() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a>* <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::raw </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Direct access to the array of objects. </p>
<p>The returned pointer is such that range <code>[<a class="el" href="classentt_1_1storage.html#ac64d0e41e0044b96760eb01cd7d7fbfa" title="Direct access to the array of objects.">raw()</a>, <a class="el" href="classentt_1_1storage.html#ac64d0e41e0044b96760eb01cd7d7fbfa" title="Direct access to the array of objects.">raw()</a> + <a class="el" href="classentt_1_1sparse__set.html#a340dff7484f1e58feff58a5f0627e190" title="Returns the number of elements in a sparse set.">size()</a>]</code> is always a valid range, even if the container is empty.</p>
<dl class="section note"><dt>Note</dt><dd>There are no guarantees on the order, even though either <code>sort</code> or <code>respect</code> has been previously invoked. Internal data structures arrange elements to maximize performance. Accessing them directly gives a performance boost but less guarantees. Use <code>begin</code> and <code>end</code> if you want to iterate the storage in the expected order.</dd></dl>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the array of objects. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00207">207</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a41cfa5ae2ebe7bd85045c5e609b90809"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a41cfa5ae2ebe7bd85045c5e609b90809">&#9670;&nbsp;</a></span>reserve()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&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_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::reserve </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a3d2138b0eb8c7ac968e9e38a9e981ec1">size_type</a>&#160;</td>
<td class="paramname"><em>cap</em></td><td>)</td>
<td></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Increases the capacity of a storage. </p>
<p>If the new capacity is greater than the current capacity, new storage is allocated, otherwise the method does nothing.</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="storage_8hpp_source.html#l00176">176</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="ad2dabf6c46bea39d16204abdae2cfdfa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad2dabf6c46bea39d16204abdae2cfdfa">&#9670;&nbsp;</a></span>sort()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<div class="memtemplate">
template&lt;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_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::sort </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a>&#160;</td>
<td class="paramname"><em>first</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classentt_1_1sparse__set.html#a580b210d5a24c49ca8c255646f3bb469">iterator_type</a>&#160;</td>
<td class="paramname"><em>last</em>, </td>
</tr>
<tr>
<td class="paramkey"></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>Sort elements according to the given comparison function. </p>
<p>Sort the elements so that iterating the range with a couple of iterators returns them in the expected order. See <code>begin</code> and <code>end</code> for more details.</p>
<p>The comparison function object must return <code>true</code> if the first element is <em>less</em> than the second one, <code>false</code> otherwise. The signature of the comparison function should be equivalent to one of the following:</p>
<div class="fragment"><div class="line">bool(<span class="keyword">const</span> Entity, <span class="keyword">const</span> Entity);</div>
<div class="line">bool(<span class="keyword">const</span> Type &amp;, <span class="keyword">const</span> Type &amp;);</div>
</div><!-- fragment --><p>Moreover, the comparison function object shall induce a <em>strict weak ordering</em> on the values.</p>
<p>The sort function oject must offer a member function template <code>operator()</code> that accepts three arguments:</p>
<ul>
<li>An iterator to the first element of the range to sort.</li>
<li>An iterator past the last element of the range to sort.</li>
<li>A comparison function to use to compare the elements.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>Attempting to iterate elements using a raw pointer returned by a call to either <code>data</code> or <code>raw</code> gives no guarantees on the order, even though <code>sort</code> has been invoked.</dd></dl>
<dl class="section warning"><dt>Warning</dt><dd>Empty types are never instantiated. Therefore, only comparison function objects that require to return entities rather than components are accepted.</dd></dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
<table class="tparams">
<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">first</td><td>An iterator to the first element of the range to sort. </td></tr>
<tr><td class="paramname">last</td><td>An iterator past the last element of the range to sort. </td></tr>
<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="storage_8hpp_source.html#l00455">455</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="ad98116de758a54b3b6df89f19d968e40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad98116de758a54b3b6df89f19d968e40">&#9670;&nbsp;</a></span>swap()</h2>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Entity, typename Type, typename = std::void_t&lt;&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_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::swap </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&#160;</td>
<td class="paramname"><em>lhs</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&#160;</td>
<td class="paramname"><em>rhs</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 class="mlabel">override</span><span class="mlabel">virtual</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Swaps entities and objects in the internal packed arrays. </p>
<dl class="section warning"><dt>Warning</dt><dd>Attempting to swap entities that don't belong to the sparse set results in undefined behavior.<br />
An assertion will abort the execution at runtime in debug mode if the sparse set doesn't contain the given entities.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">lhs</td><td>A valid entity identifier. </td></tr>
<tr><td class="paramname">rhs</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="classentt_1_1sparse__set.html#a7e6b341dd385fc5802f8ab5de2a2845c">entt::sparse_set&lt; Entity &gt;</a>.</p>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00404">404</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a7cc1f951e78e7678f19fb8b3cf7065d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cc1f951e78e7678f19fb8b3cf7065d1">&#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, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a>* <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::try_get </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&#160;</td>
<td class="paramname"><em>entt</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 a pointer to the object associated with an entity, if any. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entt</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The object associated with the entity, if any. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00298">298</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<a id="a267639f029a1a4ffab876e3a47c78a62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a267639f029a1a4ffab876e3a47c78a62">&#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, typename Type, typename = std::void_t&lt;&gt;&gt; </div>
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">const <a class="el" href="classentt_1_1storage.html#a631919f749405616e64372326052a285">object_type</a>* <a class="el" href="classentt_1_1storage.html">entt::storage</a>&lt; Entity, Type, typename &gt;::try_get </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classentt_1_1sparse__set.html#a9a1dbe5ab2dbb098beae0bff56bbf780">entity_type</a>&#160;</td>
<td class="paramname"><em>entt</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 a pointer to the object associated with an entity, if any. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">entt</td><td>A valid entity identifier. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The object associated with the entity, if any. </dd></dl>
<p class="definition">Definition at line <a class="el" href="storage_8hpp_source.html#l00293">293</a> of file <a class="el" href="storage_8hpp_source.html">storage.hpp</a>.</p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/entt/entity/<a class="el" href="storage_8hpp_source.html">storage.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>