Files
entt/hashed__string_8hpp_source.html
2025-03-19 15:49:42 +01:00

340 lines
52 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.2"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>EnTT: src/entt/core/hashed_string.hpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="cookie.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-awesome.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">EnTT<span id="projectnumber">&#160;3.15.0</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.13.2 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @license-end */
</script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',true,false,'search.php','Search',false);
$(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<!-- 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">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_66e9674e8206a335795995fa32a03c91.html">entt</a></li><li class="navelem"><a class="el" href="dir_de8f4e6ba3f54a2a21309f742e93a373.html">core</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="headertitle"><div class="title">hashed_string.hpp</div></div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="preprocessor">#ifndef ENTT_CORE_HASHED_STRING_HPP</span></div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="preprocessor">#define ENTT_CORE_HASHED_STRING_HPP</span></div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span> </div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="preprocessor">#include &lt;cstddef&gt;</span></div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="preprocessor">#include &lt;cstdint&gt;</span></div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="preprocessor">#include &lt;string_view&gt;</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="preprocessor">#include &quot;fwd.hpp&quot;</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span> </div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespaceentt.html">entt</a> {</div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span></div>
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="keyword">namespace </span>internal {</div>
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span> </div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> = <span class="keywordtype">id</span>_type&gt;</div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="keyword">struct </span>fnv_1a_params;</div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span> </div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="keyword">struct </span>fnv_1a_params&lt;std::uint32_t&gt; {</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> offset = 2166136261;</div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> prime = 16777619;</div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span>};</div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="keyword">template</span>&lt;&gt;</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="keyword">struct </span>fnv_1a_params&lt;std::uint64_t&gt; {</div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> offset = 14695981039346656037ull;</div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> prime = 1099511628211ull;</div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span>};</div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> </div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">struct </span><a class="code hl_function" href="namespaceentt.html#a14eb2a322b4bf420d74580c0dd71d4d9">basic_hashed_string</a> {</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> <span class="keyword">using </span>value_type = Char;</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> <span class="keyword">using </span>size_type = std::size_t;</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">using </span>hash_type = <a class="code hl_typedef" href="namespaceentt.html#a620d583c0e6d64acf3d394524bb72303">id_type</a>;</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> <span class="keyword">const</span> value_type *repr;</div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> size_type length;</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> hash_type hash;</div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span>};</div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span>} <span class="comment">// namespace internal</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="foldopen" id="foldopen00059" data-start="{" data-end="};">
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html"> 59</a></span><span class="keyword">class </span><a class="code hl_function" href="classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595">basic_hashed_string</a>: internal::basic_hashed_string&lt;Char&gt; {</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> <span class="keyword">using </span>base_type = internal::basic_hashed_string&lt;Char&gt;;</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> <span class="keyword">using </span>params = internal::fnv_1a_params&lt;&gt;;</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> </div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">struct </span>const_wrapper {</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> <span class="comment">// non-explicit constructor on purpose</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="keyword">constexpr</span> const_wrapper(<span class="keyword">const</span> Char *str) noexcept</div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> : repr{str} {}</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> </div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keyword">const</span> Char *repr;</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> };</div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <span class="comment">// FowlerNollVo hash function v. 1a - the good</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> [[nodiscard]] <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">auto</span> helper(<span class="keyword">const</span> std::basic_string_view&lt;Char&gt; <a class="code hl_typedef" href="namespaceentt.html#a3f86766cf81509c46f7009f90513d837">view</a>) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> base_type base{<a class="code hl_typedef" href="namespaceentt.html#a3f86766cf81509c46f7009f90513d837">view</a>.data(), <a class="code hl_typedef" href="namespaceentt.html#a3f86766cf81509c46f7009f90513d837">view</a>.size(), params::offset};</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> <span class="keywordflow">for</span>(<span class="keyword">auto</span> &amp;&amp;curr: <a class="code hl_typedef" href="namespaceentt.html#a3f86766cf81509c46f7009f90513d837">view</a>) {</div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> base.hash = (base.hash ^ <span class="keyword">static_cast&lt;</span><a class="code hl_typedef" href="namespaceentt.html#a620d583c0e6d64acf3d394524bb72303">id_type</a><span class="keyword">&gt;</span>(curr)) * params::prime;</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> }</div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> <span class="keywordflow">return</span> base;</div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> }</div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="keyword">public</span>:</div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0"> 84</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">value_type</a> = <span class="keyword">typename</span> base_type::value_type;</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015"> 86</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015">size_type</a> = <span class="keyword">typename</span> base_type::size_type;</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#a7b625799426407d8083f7d418e2c6a9e"> 88</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a7b625799426407d8083f7d418e2c6a9e">hash_type</a> = <span class="keyword">typename</span> base_type::hash_type;</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span></div>
<div class="foldopen" id="foldopen00096" data-start="{" data-end="}">
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#aee4121972ffa798e2cb755ae278c3d4e"> 96</a></span> [[nodiscard]] <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a7b625799426407d8083f7d418e2c6a9e">hash_type</a> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#aee4121972ffa798e2cb755ae278c3d4e">value</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">value_type</a> *str, <span class="keyword">const</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015">size_type</a> len) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595">basic_hashed_string</a>{str, len};</div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> }</div>
</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> <span class="keyword">template</span>&lt;std::<span class="keywordtype">size_t</span> N&gt;</div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <span class="comment">// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)</span></div>
<div class="foldopen" id="foldopen00108" data-start="{" data-end="}">
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#a4e3866531b504f05e804273188f1c0c0"> 108</a></span> [[nodiscard]] <span class="keyword">static</span> ENTT_CONSTEVAL <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a7b625799426407d8083f7d418e2c6a9e">hash_type</a> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#a4e3866531b504f05e804273188f1c0c0">value</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">value_type</a> (&amp;str)[N]) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595">basic_hashed_string</a>{str};</div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> }</div>
</div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span></div>
<div class="foldopen" id="foldopen00117" data-start="{" data-end="}">
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#a6309ed49417ab2c62b3190e5917f7fbb"> 117</a></span> [[nodiscard]] <span class="keyword">static</span> <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a7b625799426407d8083f7d418e2c6a9e">hash_type</a> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#a6309ed49417ab2c62b3190e5917f7fbb">value</a>(const_wrapper wrapper) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595">basic_hashed_string</a>{wrapper};</div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> }</div>
</div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span></div>
<div class="foldopen" id="foldopen00122" data-start="{" data-end="}">
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595"> 122</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595">basic_hashed_string</a>() noexcept</div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> : <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595">basic_hashed_string</a>{<span class="keyword">nullptr</span>, 0u} {}</div>
</div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span></div>
<div class="foldopen" id="foldopen00130" data-start="{" data-end="}">
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#aa4eb4386f94b4669624f7b404a6beb9e"> 130</a></span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#aa4eb4386f94b4669624f7b404a6beb9e">basic_hashed_string</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">value_type</a> *str, <span class="keyword">const</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015">size_type</a> len) noexcept</div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> : base_type{helper({str, len})} {}</div>
</div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <span class="keyword">template</span>&lt;std::<span class="keywordtype">size_t</span> N&gt;</div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> <span class="comment">// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)</span></div>
<div class="foldopen" id="foldopen00140" data-start="{" data-end="}">
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#aac71a88aea432d1928a57daa248b17bd"> 140</a></span> ENTT_CONSTEVAL <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#aac71a88aea432d1928a57daa248b17bd">basic_hashed_string</a>(<span class="keyword">const</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">value_type</a> (&amp;str)[N]) noexcept</div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> : base_type{helper({<span class="keyword">static_cast&lt;</span><span class="keyword">const </span><a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">value_type</a> *<span class="keyword">&gt;</span>(str)})} {}</div>
</div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span></div>
<div class="foldopen" id="foldopen00152" data-start="{" data-end="}">
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#af73ccc8ea097392a5ca14d1d8dfc13f0"> 152</a></span> <span class="keyword">explicit</span> <span class="keyword">constexpr</span> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#af73ccc8ea097392a5ca14d1d8dfc13f0">basic_hashed_string</a>(const_wrapper wrapper) noexcept</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> : base_type{helper({wrapper.repr})} {}</div>
</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span></div>
<div class="foldopen" id="foldopen00159" data-start="{" data-end="}">
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#ab91d2397b34deea041dd8bff77bc8824"> 159</a></span> [[nodiscard]] <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015">size_type</a> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#ab91d2397b34deea041dd8bff77bc8824">size</a>() const noexcept {</div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">return</span> base_type::length;</div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> }</div>
</div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span></div>
<div class="foldopen" id="foldopen00167" data-start="{" data-end="}">
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#a212de28c36ed21bd3a2747ed0a62b4cc"> 167</a></span> [[nodiscard]] <span class="keyword">constexpr</span> <span class="keyword">const</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">value_type</a> *<a class="code hl_function" href="classentt_1_1basic__hashed__string.html#a212de28c36ed21bd3a2747ed0a62b4cc">data</a>() const noexcept {</div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> <span class="keywordflow">return</span> base_type::repr;</div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> }</div>
</div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span></div>
<div class="foldopen" id="foldopen00175" data-start="{" data-end="}">
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#a3dfc8c9301c62d82add17de1cb4ffc7c"> 175</a></span> [[nodiscard]] <span class="keyword">constexpr</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a7b625799426407d8083f7d418e2c6a9e">hash_type</a> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#a3dfc8c9301c62d82add17de1cb4ffc7c">value</a>() const noexcept {</div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> <span class="keywordflow">return</span> base_type::hash;</div>
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> }</div>
</div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span></div>
<div class="foldopen" id="foldopen00180" data-start="{" data-end="}">
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#aea866875a9b05e5c01c9642766a5857f"> 180</a></span> [[nodiscard]] <span class="keyword">constexpr</span> <span class="keyword">operator</span> <span class="keyword">const</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">value_type</a> *() <span class="keyword">const</span> <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#a212de28c36ed21bd3a2747ed0a62b4cc">data</a>();</div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> }</div>
</div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span></div>
<div class="foldopen" id="foldopen00188" data-start="{" data-end="}">
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"><a class="line" href="classentt_1_1basic__hashed__string.html#af0018b378b254991675acc20ba2c600d"> 188</a></span> [[nodiscard]] <span class="keyword">constexpr</span> <span class="keyword">operator</span> <a class="code hl_typedef" href="classentt_1_1basic__hashed__string.html#a7b625799426407d8083f7d418e2c6a9e">hash_type</a>() const noexcept {</div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span> <span class="keywordflow">return</span> <a class="code hl_function" href="classentt_1_1basic__hashed__string.html#a3dfc8c9301c62d82add17de1cb4ffc7c">value</a>();</div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span> }</div>
</div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span>};</div>
</div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="namespaceentt.html#a14eb2a322b4bf420d74580c0dd71d4d9"> 200</a></span><a class="code hl_function" href="namespaceentt.html#a14eb2a322b4bf420d74580c0dd71d4d9">basic_hashed_string</a>(<span class="keyword">const</span> Char *str, std::size_t len) -&gt; <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a>;</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span></div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char, std::<span class="keywordtype">size_t</span> N&gt;</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment">// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays, modernize-avoid-c-arrays)</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"><a class="line" href="namespaceentt.html#aaa97361ef962166a4fc51a582d7c6392"> 210</a></span><a class="code hl_function" href="namespaceentt.html#a14eb2a322b4bf420d74580c0dd71d4d9">basic_hashed_string</a>(<span class="keyword">const</span> Char (&amp;str)[N]) -&gt; <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a>;</div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="foldopen" id="foldopen00220" data-start="{" data-end="}">
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"><a class="line" href="namespaceentt.html#af7c61951b721a1e3612cf536bd707501"> 220</a></span>[[nodiscard]] <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceentt.html#af7c61951b721a1e3612cf536bd707501">operator==</a>(<span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;lhs, <span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;rhs) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> <span class="keywordflow">return</span> lhs.value() == rhs.value();</div>
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span>}</div>
</div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span></div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="foldopen" id="foldopen00232" data-start="{" data-end="}">
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"><a class="line" href="namespaceentt.html#ad9accc71a383509ada028f7fa2b767bf"> 232</a></span>[[nodiscard]] <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceentt.html#ad9accc71a383509ada028f7fa2b767bf">operator!=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;lhs, <span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;rhs) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span> <span class="keywordflow">return</span> !(lhs == rhs);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span>}</div>
</div>
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span></div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="foldopen" id="foldopen00244" data-start="{" data-end="}">
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"><a class="line" href="namespaceentt.html#aa88e297d57dd5547afcde8dd291c4b8f"> 244</a></span>[[nodiscard]] <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceentt.html#aa88e297d57dd5547afcde8dd291c4b8f">operator&lt;</a>(<span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;lhs, <span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;rhs) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <span class="keywordflow">return</span> lhs.value() &lt; rhs.value();</div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span>}</div>
</div>
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span></div>
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="foldopen" id="foldopen00257" data-start="{" data-end="}">
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"><a class="line" href="namespaceentt.html#a8c763e890bb00479a6a6aeae3b2a75f0"> 257</a></span>[[nodiscard]] <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceentt.html#a8c763e890bb00479a6a6aeae3b2a75f0">operator&lt;=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;lhs, <span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;rhs) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> <span class="keywordflow">return</span> !(rhs &lt; lhs);</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span>}</div>
</div>
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span></div>
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"> 269</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="foldopen" id="foldopen00270" data-start="{" data-end="}">
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"><a class="line" href="namespaceentt.html#aec8131af000055ceab85646c14f234ad"> 270</a></span>[[nodiscard]] <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceentt.html#aec8131af000055ceab85646c14f234ad">operator&gt;</a>(<span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;lhs, <span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;rhs) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <span class="keywordflow">return</span> rhs &lt; lhs;</div>
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span>}</div>
</div>
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span></div>
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span><span class="keyword">template</span>&lt;<span class="keyword">typename</span> Char&gt;</div>
<div class="foldopen" id="foldopen00283" data-start="{" data-end="}">
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"><a class="line" href="namespaceentt.html#adadb88dfb4278df554e7ffec5361ece4"> 283</a></span>[[nodiscard]] <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="namespaceentt.html#adadb88dfb4278df554e7ffec5361ece4">operator&gt;=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;lhs, <span class="keyword">const</span> <a class="code hl_class" href="classentt_1_1basic__hashed__string.html">basic_hashed_string&lt;Char&gt;</a> &amp;rhs) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> <span class="keywordflow">return</span> !(lhs &lt; rhs);</div>
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span>}</div>
</div>
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> </div>
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span><span class="keyword">inline</span> <span class="keyword">namespace </span>literals {</div>
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span></div>
<div class="foldopen" id="foldopen00294" data-start="{" data-end="}">
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"><a class="line" href="namespaceentt.html#a6d5ebc5e9d0e87c18a22a72d2261bdf5"> 294</a></span>[[nodiscard]] ENTT_CONSTEVAL <a class="code hl_typedef" href="namespaceentt.html#a1a4c166c8989e0afebf8180e6c85683a">hashed_string</a> <span class="keyword">operator</span><span class="stringliteral">&quot;&quot;</span>_hs(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, std::size_t) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span> <span class="keywordflow">return</span> <a class="code hl_typedef" href="namespaceentt.html#a1a4c166c8989e0afebf8180e6c85683a">hashed_string</a>{str};</div>
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span>}</div>
</div>
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span></div>
<div class="foldopen" id="foldopen00303" data-start="{" data-end="}">
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"><a class="line" href="namespaceentt.html#a6fa5b29e7184fb8fe184417411792290"> 303</a></span>[[nodiscard]] ENTT_CONSTEVAL <a class="code hl_typedef" href="namespaceentt.html#ac577734cb888e132ce8d87efc5c28ec4">hashed_wstring</a> <span class="keyword">operator</span><span class="stringliteral">&quot;&quot;</span>_hws(<span class="keyword">const</span> <span class="keywordtype">wchar_t</span> *str, std::size_t) <span class="keyword">noexcept</span> {</div>
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> <span class="keywordflow">return</span> <a class="code hl_typedef" href="namespaceentt.html#ac577734cb888e132ce8d87efc5c28ec4">hashed_wstring</a>{str};</div>
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span>}</div>
</div>
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> </div>
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span>} <span class="comment">// namespace literals</span></div>
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> </div>
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span>} <span class="comment">// namespace entt</span></div>
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> </div>
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span><span class="preprocessor">#endif</span></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html">entt::basic_hashed_string</a></div><div class="ttdoc">Zero overhead unique identifier.</div><div class="ttdef"><b>Definition</b> <a href="#l00059">hashed_string.hpp:59</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_a0fa6c444b2d97cc14506cc509daef9b0"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#a0fa6c444b2d97cc14506cc509daef9b0">entt::basic_hashed_string&lt; char &gt;::value_type</a></div><div class="ttdeci">typename base_type::value_type value_type</div><div class="ttdef"><b>Definition</b> <a href="#l00084">hashed_string.hpp:84</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_a212de28c36ed21bd3a2747ed0a62b4cc"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#a212de28c36ed21bd3a2747ed0a62b4cc">entt::basic_hashed_string::data</a></div><div class="ttdeci">constexpr const value_type * data() const noexcept</div><div class="ttdoc">Returns the human-readable representation of a hashed string.</div><div class="ttdef"><b>Definition</b> <a href="#l00167">hashed_string.hpp:167</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_a3dfc8c9301c62d82add17de1cb4ffc7c"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#a3dfc8c9301c62d82add17de1cb4ffc7c">entt::basic_hashed_string::value</a></div><div class="ttdeci">constexpr hash_type value() const noexcept</div><div class="ttdoc">Returns the numeric representation of a hashed string.</div><div class="ttdef"><b>Definition</b> <a href="#l00175">hashed_string.hpp:175</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_a4550e2c6eb3ec63c72d6d831182bd015"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#a4550e2c6eb3ec63c72d6d831182bd015">entt::basic_hashed_string&lt; char &gt;::size_type</a></div><div class="ttdeci">typename base_type::size_type size_type</div><div class="ttdef"><b>Definition</b> <a href="#l00086">hashed_string.hpp:86</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_a4e3866531b504f05e804273188f1c0c0"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#a4e3866531b504f05e804273188f1c0c0">entt::basic_hashed_string::value</a></div><div class="ttdeci">static constexpr hash_type value(const value_type(&amp;str)[N]) noexcept</div><div class="ttdoc">Returns directly the numeric representation of a string.</div><div class="ttdef"><b>Definition</b> <a href="#l00108">hashed_string.hpp:108</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_a6309ed49417ab2c62b3190e5917f7fbb"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#a6309ed49417ab2c62b3190e5917f7fbb">entt::basic_hashed_string::value</a></div><div class="ttdeci">static constexpr hash_type value(const_wrapper wrapper) noexcept</div><div class="ttdoc">Returns directly the numeric representation of a string.</div><div class="ttdef"><b>Definition</b> <a href="#l00117">hashed_string.hpp:117</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_a7b625799426407d8083f7d418e2c6a9e"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#a7b625799426407d8083f7d418e2c6a9e">entt::basic_hashed_string&lt; char &gt;::hash_type</a></div><div class="ttdeci">typename base_type::hash_type hash_type</div><div class="ttdef"><b>Definition</b> <a href="#l00088">hashed_string.hpp:88</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_aa4eb4386f94b4669624f7b404a6beb9e"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#aa4eb4386f94b4669624f7b404a6beb9e">entt::basic_hashed_string::basic_hashed_string</a></div><div class="ttdeci">constexpr basic_hashed_string(const value_type *str, const size_type len) noexcept</div><div class="ttdoc">Constructs a hashed string from a string view.</div><div class="ttdef"><b>Definition</b> <a href="#l00130">hashed_string.hpp:130</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_aac71a88aea432d1928a57daa248b17bd"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#aac71a88aea432d1928a57daa248b17bd">entt::basic_hashed_string::basic_hashed_string</a></div><div class="ttdeci">constexpr basic_hashed_string(const value_type(&amp;str)[N]) noexcept</div><div class="ttdoc">Constructs a hashed string from an array of const characters.</div><div class="ttdef"><b>Definition</b> <a href="#l00140">hashed_string.hpp:140</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_ab91d2397b34deea041dd8bff77bc8824"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#ab91d2397b34deea041dd8bff77bc8824">entt::basic_hashed_string::size</a></div><div class="ttdeci">constexpr size_type size() const noexcept</div><div class="ttdoc">Returns the size a hashed string.</div><div class="ttdef"><b>Definition</b> <a href="#l00159">hashed_string.hpp:159</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_ad293de7f68f028a3e5bd8c5928cd2595"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#ad293de7f68f028a3e5bd8c5928cd2595">entt::basic_hashed_string::basic_hashed_string</a></div><div class="ttdeci">constexpr basic_hashed_string() noexcept</div><div class="ttdoc">Constructs an empty hashed string.</div><div class="ttdef"><b>Definition</b> <a href="#l00122">hashed_string.hpp:122</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_aee4121972ffa798e2cb755ae278c3d4e"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#aee4121972ffa798e2cb755ae278c3d4e">entt::basic_hashed_string::value</a></div><div class="ttdeci">static constexpr hash_type value(const value_type *str, const size_type len) noexcept</div><div class="ttdoc">Returns directly the numeric representation of a string view.</div><div class="ttdef"><b>Definition</b> <a href="#l00096">hashed_string.hpp:96</a></div></div>
<div class="ttc" id="aclassentt_1_1basic__hashed__string_html_af73ccc8ea097392a5ca14d1d8dfc13f0"><div class="ttname"><a href="classentt_1_1basic__hashed__string.html#af73ccc8ea097392a5ca14d1d8dfc13f0">entt::basic_hashed_string::basic_hashed_string</a></div><div class="ttdeci">constexpr basic_hashed_string(const_wrapper wrapper) noexcept</div><div class="ttdoc">Explicit constructor on purpose to avoid constructing a hashed string directly from a const value_typ...</div><div class="ttdef"><b>Definition</b> <a href="#l00152">hashed_string.hpp:152</a></div></div>
<div class="ttc" id="anamespaceentt_html"><div class="ttname"><a href="namespaceentt.html">entt</a></div><div class="ttdoc">EnTT default namespace.</div><div class="ttdef"><b>Definition</b> <a href="dense__map_8hpp_source.html#l00022">dense_map.hpp:22</a></div></div>
<div class="ttc" id="anamespaceentt_html_a14eb2a322b4bf420d74580c0dd71d4d9"><div class="ttname"><a href="namespaceentt.html#a14eb2a322b4bf420d74580c0dd71d4d9">entt::basic_hashed_string</a></div><div class="ttdeci">basic_hashed_string(const Char *str, std::size_t len) -&gt; basic_hashed_string&lt; Char &gt;</div><div class="ttdoc">Deduction guide.</div></div>
<div class="ttc" id="anamespaceentt_html_a1a4c166c8989e0afebf8180e6c85683a"><div class="ttname"><a href="namespaceentt.html#a1a4c166c8989e0afebf8180e6c85683a">entt::hashed_string</a></div><div class="ttdeci">basic_hashed_string&lt; char &gt; hashed_string</div><div class="ttdoc">Aliases for common character types.</div><div class="ttdef"><b>Definition</b> <a href="core_2fwd_8hpp_source.html#l00041">fwd.hpp:41</a></div></div>
<div class="ttc" id="anamespaceentt_html_a3f86766cf81509c46f7009f90513d837"><div class="ttname"><a href="namespaceentt.html#a3f86766cf81509c46f7009f90513d837">entt::view</a></div><div class="ttdeci">basic_view&lt; type_list_transform_t&lt; Get, storage_for &gt;, type_list_transform_t&lt; Exclude, storage_for &gt; &gt; view</div><div class="ttdoc">Alias declaration for the most common use case.</div><div class="ttdef"><b>Definition</b> <a href="entity_2fwd_8hpp_source.html#l00277">fwd.hpp:277</a></div></div>
<div class="ttc" id="anamespaceentt_html_a620d583c0e6d64acf3d394524bb72303"><div class="ttname"><a href="namespaceentt.html#a620d583c0e6d64acf3d394524bb72303">entt::id_type</a></div><div class="ttdeci">std::uint32_t id_type</div><div class="ttdoc">Alias declaration for type identifiers.</div><div class="ttdef"><b>Definition</b> <a href="core_2fwd_8hpp_source.html#l00029">fwd.hpp:29</a></div></div>
<div class="ttc" id="anamespaceentt_html_a8c763e890bb00479a6a6aeae3b2a75f0"><div class="ttname"><a href="namespaceentt.html#a8c763e890bb00479a6a6aeae3b2a75f0">entt::operator&lt;=</a></div><div class="ttdeci">constexpr bool operator&lt;=(const basic_hashed_string&lt; Char &gt; &amp;lhs, const basic_hashed_string&lt; Char &gt; &amp;rhs) noexcept</div><div class="ttdoc">Compares two hashed strings.</div><div class="ttdef"><b>Definition</b> <a href="#l00257">hashed_string.hpp:257</a></div></div>
<div class="ttc" id="anamespaceentt_html_aa88e297d57dd5547afcde8dd291c4b8f"><div class="ttname"><a href="namespaceentt.html#aa88e297d57dd5547afcde8dd291c4b8f">entt::operator&lt;</a></div><div class="ttdeci">constexpr bool operator&lt;(const basic_hashed_string&lt; Char &gt; &amp;lhs, const basic_hashed_string&lt; Char &gt; &amp;rhs) noexcept</div><div class="ttdoc">Compares two hashed strings.</div><div class="ttdef"><b>Definition</b> <a href="#l00244">hashed_string.hpp:244</a></div></div>
<div class="ttc" id="anamespaceentt_html_ac577734cb888e132ce8d87efc5c28ec4"><div class="ttname"><a href="namespaceentt.html#ac577734cb888e132ce8d87efc5c28ec4">entt::hashed_wstring</a></div><div class="ttdeci">basic_hashed_string&lt; wchar_t &gt; hashed_wstring</div><div class="ttdoc">Aliases for common character types.</div><div class="ttdef"><b>Definition</b> <a href="core_2fwd_8hpp_source.html#l00044">fwd.hpp:44</a></div></div>
<div class="ttc" id="anamespaceentt_html_ad9accc71a383509ada028f7fa2b767bf"><div class="ttname"><a href="namespaceentt.html#ad9accc71a383509ada028f7fa2b767bf">entt::operator!=</a></div><div class="ttdeci">constexpr bool operator!=(const basic_hashed_string&lt; Char &gt; &amp;lhs, const basic_hashed_string&lt; Char &gt; &amp;rhs) noexcept</div><div class="ttdoc">Compares two hashed strings.</div><div class="ttdef"><b>Definition</b> <a href="#l00232">hashed_string.hpp:232</a></div></div>
<div class="ttc" id="anamespaceentt_html_adadb88dfb4278df554e7ffec5361ece4"><div class="ttname"><a href="namespaceentt.html#adadb88dfb4278df554e7ffec5361ece4">entt::operator&gt;=</a></div><div class="ttdeci">constexpr bool operator&gt;=(const basic_hashed_string&lt; Char &gt; &amp;lhs, const basic_hashed_string&lt; Char &gt; &amp;rhs) noexcept</div><div class="ttdoc">Compares two hashed strings.</div><div class="ttdef"><b>Definition</b> <a href="#l00283">hashed_string.hpp:283</a></div></div>
<div class="ttc" id="anamespaceentt_html_aec8131af000055ceab85646c14f234ad"><div class="ttname"><a href="namespaceentt.html#aec8131af000055ceab85646c14f234ad">entt::operator&gt;</a></div><div class="ttdeci">constexpr bool operator&gt;(const basic_hashed_string&lt; Char &gt; &amp;lhs, const basic_hashed_string&lt; Char &gt; &amp;rhs) noexcept</div><div class="ttdoc">Compares two hashed strings.</div><div class="ttdef"><b>Definition</b> <a href="#l00270">hashed_string.hpp:270</a></div></div>
<div class="ttc" id="anamespaceentt_html_af7c61951b721a1e3612cf536bd707501"><div class="ttname"><a href="namespaceentt.html#af7c61951b721a1e3612cf536bd707501">entt::operator==</a></div><div class="ttdeci">constexpr bool operator==(const basic_hashed_string&lt; Char &gt; &amp;lhs, const basic_hashed_string&lt; Char &gt; &amp;rhs) noexcept</div><div class="ttdoc">Compares two hashed strings.</div><div class="ttdef"><b>Definition</b> <a href="#l00220">hashed_string.hpp:220</a></div></div>
</div><!-- fragment --></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.13.2
</small></address>
</div><!-- doc-content -->
</body>
</html>