Micro template library A library for building device drivers
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 
 

162 lignes
68 KiB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=9"/>
  6. <meta name="generator" content="Doxygen 1.8.14"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>uTL: include/utl/container/id.h Source File</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="navtree.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="resize.js"></script>
  14. <script type="text/javascript" src="navtreedata.js"></script>
  15. <script type="text/javascript" src="navtree.js"></script>
  16. <script type="text/javascript">
  17. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  18. $(document).ready(initResizable);
  19. /* @license-end */</script>
  20. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  21. <script type="text/javascript" src="search/searchdata.js"></script>
  22. <script type="text/javascript" src="search/search.js"></script>
  23. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  24. </head>
  25. <body>
  26. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  27. <div id="titlearea">
  28. <table cellspacing="0" cellpadding="0">
  29. <tbody>
  30. <tr style="height: 56px;">
  31. <td id="projectalign" style="padding-left: 0.5em;">
  32. <div id="projectname">uTL
  33. </div>
  34. <div id="projectbrief">micro Template library</div>
  35. </td>
  36. </tr>
  37. </tbody>
  38. </table>
  39. </div>
  40. <!-- end header part -->
  41. <!-- Generated by Doxygen 1.8.14 -->
  42. <script type="text/javascript">
  43. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  44. var searchBox = new SearchBox("searchBox", "search",false,'Search');
  45. /* @license-end */
  46. </script>
  47. <script type="text/javascript" src="menudata.js"></script>
  48. <script type="text/javascript" src="menu.js"></script>
  49. <script type="text/javascript">
  50. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  51. $(function() {
  52. initMenu('',true,false,'search.php','Search');
  53. $(document).ready(function() { init_search(); });
  54. });
  55. /* @license-end */</script>
  56. <div id="main-nav"></div>
  57. </div><!-- top -->
  58. <div id="side-nav" class="ui-resizable side-nav-resizable">
  59. <div id="nav-tree">
  60. <div id="nav-tree-contents">
  61. <div id="nav-sync" class="sync"></div>
  62. </div>
  63. </div>
  64. <div id="splitbar" style="-moz-user-select:none;"
  65. class="ui-resizable-handle">
  66. </div>
  67. </div>
  68. <script type="text/javascript">
  69. /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  70. $(document).ready(function(){initNavTree('id_8h_source.html','');});
  71. /* @license-end */
  72. </script>
  73. <div id="doc-content">
  74. <!-- window showing the filter options -->
  75. <div id="MSearchSelectWindow"
  76. onmouseover="return searchBox.OnSearchSelectShow()"
  77. onmouseout="return searchBox.OnSearchSelectHide()"
  78. onkeydown="return searchBox.OnSearchSelectKey(event)">
  79. </div>
  80. <!-- iframe showing the search results (closed by default) -->
  81. <div id="MSearchResultsWindow">
  82. <iframe src="javascript:void(0)" frameborder="0"
  83. name="MSearchResults" id="MSearchResults">
  84. </iframe>
  85. </div>
  86. <div class="header">
  87. <div class="headertitle">
  88. <div class="title">id.h</div> </div>
  89. </div><!--header-->
  90. <div class="contents">
  91. <a href="id_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#ifndef __utl_container_id_h__</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define __utl_container_id_h__</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="impl_8h.html">utl/core/impl.h</a>&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="array_8h.html">utl/container/array.h</a>&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;algorithm&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceutl.html">utl</a> {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keywordtype">size_t</span> _Nm&gt;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structutl_1_1id__traits.html"> 38</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structutl_1_1id__traits.html">id_traits</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8"> 39</a></span>&#160; <span class="keyword">typedef</span> _Tp <a class="code" href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8">type</a>[_Nm];</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13"> 41</a></span>&#160; <span class="keyword">static</span> constexpr _Tp&amp; <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">Ref</a> (<span class="keyword">const</span> <a class="code" href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8">type</a>&amp; t, <span class="keywordtype">size_t</span> n) noexcept {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>_Tp&amp;<span class="keyword">&gt;</span> (t[n]);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="structutl_1_1id__traits.html#a570679371037d3f6716f2bb87f9e67d5"> 45</a></span>&#160; <span class="keyword">static</span> constexpr _Tp* <a class="code" href="structutl_1_1id__traits.html#a570679371037d3f6716f2bb87f9e67d5">Ptr</a>(<span class="keyword">const</span> <a class="code" href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8">type</a>&amp; t) noexcept {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>_Tp*<span class="keyword">&gt;</span> (t);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; };</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp&gt;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structutl_1_1id__traits_3_01___tp_00_010_01_4.html"> 51</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structutl_1_1id__traits.html">id_traits</a>&lt;_Tp, 0&gt; {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structutl_1_1id__traits_3_01___tp_00_010_01_4_1_1type.html"> 52</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8">type</a> { };</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structutl_1_1id__traits_3_01___tp_00_010_01_4.html#a578c8ad9389e23cfb3322ebe67875f4c"> 54</a></span>&#160; <span class="keyword">static</span> constexpr _Tp&amp; <a class="code" href="structutl_1_1id__traits_3_01___tp_00_010_01_4.html#a578c8ad9389e23cfb3322ebe67875f4c">Ref</a>(<span class="keyword">const</span> <a class="code" href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8">type</a>&amp; t, <span class="keywordtype">size_t</span> n) noexcept {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">static_cast&lt;</span>_Tp*<span class="keyword">&gt;</span>(<span class="keyword">nullptr</span>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structutl_1_1id__traits_3_01___tp_00_010_01_4.html#a4d66c1e3f4bf6b06bbe030a28cd5e878"> 58</a></span>&#160; <span class="keyword">static</span> constexpr _Tp* <a class="code" href="structutl_1_1id__traits_3_01___tp_00_010_01_4.html#a4d66c1e3f4bf6b06bbe030a28cd5e878">Ptr</a>(<span class="keyword">const</span> <a class="code" href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8">type</a>&amp; t) noexcept {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; };</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keywordtype">size_t</span> _Nm&gt;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html"> 78</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structutl_1_1id__t.html">id_t</a> {</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429"> 79</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a> = _Tp;</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#ab93692ef0c67737db55a38d658375ce3"> 80</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#ab93692ef0c67737db55a38d658375ce3">pointer</a> = <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a>*;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a6fbd7a944a981e0cc293319e25d77220"> 81</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#a6fbd7a944a981e0cc293319e25d77220">const_pointer</a> = <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a>*;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a7c0de57bc3065501a953f4811bd9e183"> 82</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#a7c0de57bc3065501a953f4811bd9e183">reference</a> = <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a>&amp;;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#aa7a965a5bb74490f5a999d5fa08cee2c"> 83</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#aa7a965a5bb74490f5a999d5fa08cee2c">const_reference</a> = <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a>&amp;;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#acbcdd4547bde10bbbab7a72ad1adbf21"> 84</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#acbcdd4547bde10bbbab7a72ad1adbf21">iterator</a> = <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a>*;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350"> 85</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> = <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a>*;</div><div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb"> 86</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb">size_type</a> = <a class="code" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a7341366f60f8ecd4a1e8dcefa33a4018"> 87</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#a7341366f60f8ecd4a1e8dcefa33a4018">difference_type</a> = <a class="code" href="namespaceutl.html#a1b83655ba00b548af9b51f169c6c567a">std::ptrdiff_t</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a708f6a3b9b85d211f933bbe66db26a2b"> 88</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#a708f6a3b9b85d211f933bbe66db26a2b">reverse_iterator</a> = std::reverse_iterator &lt;iterator&gt;;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a></div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6"> 90</a></span>&#160; = std::reverse_iterator &lt;const_iterator&gt;;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// type and data</span></div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a9951b895fb9cd9d9b40871ba95df98a0"> 93</a></span>&#160; <span class="keyword">using</span> <a class="code" href="structutl_1_1id__traits.html">traits_t</a> = <a class="code" href="structutl_1_1id__traits.html">id_traits&lt;_Tp, _Nm&gt;</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6"> 94</a></span>&#160; <span class="keyword">typename</span> <a class="code" href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8">traits_t::type</a> <a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// No explicit construct/copy/destroy for aggregate type.</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// DR 776 (std::array)</span></div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a99464dc25ccbc124e3c1a21f6889b23a"> 99</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="structutl_1_1id__t.html#a99464dc25ccbc124e3c1a21f6889b23a">fill</a> (<span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a>&amp; v) { std::fill_n (<a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a>(), <a class="code" href="structutl_1_1id__t.html#aff09cfb8c3d106dd24a7107f7c9a68f3">size</a>(), v); }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#af2d4fabd51c5e3aabbb828d356354977"> 101</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="structutl_1_1id__t.html#af2d4fabd51c5e3aabbb828d356354977">swap</a> (<a class="code" href="structutl_1_1id__t.html">id_t</a>&amp; other) noexcept {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::swap_ranges (<a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a>(), <a class="code" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">end</a>(), other.begin());</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df"> 107</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#acbcdd4547bde10bbbab7a72ad1adbf21">iterator</a> <a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a>() noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#acbcdd4547bde10bbbab7a72ad1adbf21">iterator</a> (<a class="code" href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6">data</a>()); }</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a6a38ff9b9efdc99120dd4ce852813e8a"> 108</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> <a class="code" href="structutl_1_1id__t.html#a6a38ff9b9efdc99120dd4ce852813e8a">begin</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> (<a class="code" href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6">data</a>()); }</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148"> 109</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#acbcdd4547bde10bbbab7a72ad1adbf21">iterator</a> <a class="code" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">end</a>() noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#acbcdd4547bde10bbbab7a72ad1adbf21">iterator</a> (<a class="code" href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6">data</a>() + _Nm); }</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a82bef2fee2dfad5d895af2b01b888c54"> 110</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> <a class="code" href="structutl_1_1id__t.html#a82bef2fee2dfad5d895af2b01b888c54">end</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> (<a class="code" href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6">data</a>() + _Nm); }</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a1e753829714d8782eab69249cc61a2ce"> 111</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> <a class="code" href="structutl_1_1id__t.html#a1e753829714d8782eab69249cc61a2ce">cbegin</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> (<a class="code" href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6">data</a>()); }</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#aa2e98b11c236e1dda8decedbe18d283e"> 112</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> <a class="code" href="structutl_1_1id__t.html#aa2e98b11c236e1dda8decedbe18d283e">cend</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">const_iterator</a> (<a class="code" href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6">data</a>() + _Nm); }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a96ed68f02faf9800e93113bef1e30182"> 114</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#a708f6a3b9b85d211f933bbe66db26a2b">reverse_iterator</a> <a class="code" href="structutl_1_1id__t.html#a96ed68f02faf9800e93113bef1e30182">rbegin</a>() noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#a708f6a3b9b85d211f933bbe66db26a2b">reverse_iterator</a> (<a class="code" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">end</a>()); }</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a14050fe2cdcdd4a524d5e3f46f9d51f9"> 115</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#a708f6a3b9b85d211f933bbe66db26a2b">reverse_iterator</a> <a class="code" href="structutl_1_1id__t.html#a14050fe2cdcdd4a524d5e3f46f9d51f9">rend</a>() noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#a708f6a3b9b85d211f933bbe66db26a2b">reverse_iterator</a> (<a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a>()); }</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a52f0a2de4ae90137d40a645389a6ec53"> 116</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a> <a class="code" href="structutl_1_1id__t.html#a52f0a2de4ae90137d40a645389a6ec53">rbegin</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a> (<a class="code" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">end</a>()); }</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#ae04946523c0131b6fb73f1de369c2558"> 117</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a> <a class="code" href="structutl_1_1id__t.html#ae04946523c0131b6fb73f1de369c2558">rend</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a> (<a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a>()); }</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a9ba9d37208f8c4c964574b1a4e3e285a"> 118</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a> <a class="code" href="structutl_1_1id__t.html#a9ba9d37208f8c4c964574b1a4e3e285a">crbegin</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a> (<a class="code" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">end</a>()); }</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a5b358a67cec1f283e1685ddf7af5d8bd"> 119</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a> <a class="code" href="structutl_1_1id__t.html#a5b358a67cec1f283e1685ddf7af5d8bd">crend</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">const_reverse_iterator</a> (<a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a>()); }</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#aff09cfb8c3d106dd24a7107f7c9a68f3"> 123</a></span>&#160; constexpr <a class="code" href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb">size_type</a> <a class="code" href="structutl_1_1id__t.html#aff09cfb8c3d106dd24a7107f7c9a68f3">size</a>() const noexcept { <span class="keywordflow">return</span> _Nm; }</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#abeaee41b9ae199fe6f4b40ada1ca9ffa"> 124</a></span>&#160; constexpr <a class="code" href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb">size_type</a> <a class="code" href="structutl_1_1id__t.html#abeaee41b9ae199fe6f4b40ada1ca9ffa">max_size</a>() const noexcept { <span class="keywordflow">return</span> _Nm; }</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a5052e5dd26342349236eff91766e332e"> 125</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="structutl_1_1id__t.html#a5052e5dd26342349236eff91766e332e">empty</a>() const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__t.html#aff09cfb8c3d106dd24a7107f7c9a68f3">size</a>() == 0; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#acc2df57ec1921165238adc13f1a2ad7d"> 132</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#a7c0de57bc3065501a953f4811bd9e183">reference</a> <a class="code" href="structutl_1_1id__t.html#acc2df57ec1921165238adc13f1a2ad7d">operator[] </a>(<a class="code" href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb">size_type</a> n) noexcept {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, n);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a70f4ed6c1efda0d4098ba2e3177da329"> 136</a></span>&#160; constexpr <a class="code" href="structutl_1_1id__t.html#aa7a965a5bb74490f5a999d5fa08cee2c">const_reference</a> <a class="code" href="structutl_1_1id__t.html#acc2df57ec1921165238adc13f1a2ad7d">operator[] </a>(<a class="code" href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb">size_type</a> n) <span class="keyword">const</span> noexcept {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, n);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#abb17fc36dd256093e265985e68e25f32"> 144</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#a7c0de57bc3065501a953f4811bd9e183">reference</a> <a class="code" href="structutl_1_1id__t.html#abb17fc36dd256093e265985e68e25f32">at</a> (<a class="code" href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb">size_type</a> n) noexcept {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span> (n &lt; _Nm)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, n);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; abort ();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#aa965355792d724f40260bce7d855aae7"> 151</a></span>&#160; constexpr <a class="code" href="structutl_1_1id__t.html#aa7a965a5bb74490f5a999d5fa08cee2c">const_reference</a> <a class="code" href="structutl_1_1id__t.html#aa965355792d724f40260bce7d855aae7">at</a> (<a class="code" href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb">size_type</a> n) <span class="keyword">const</span> noexcept {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; static_assert ((n &lt; _Nm), <span class="stringliteral">&quot;id_t::at: out of range&quot;</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, n);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d"> 159</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a> (uint8_t <a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a>) <span class="keyword">const</span> noexcept {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, <a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a>/(8*<span class="keyword">sizeof</span>(_Tp))) &amp;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; (<span class="keyword">static_cast&lt;</span><a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a><span class="keyword">&gt;</span>(0x01) &lt;&lt; ((<a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a> % (8*<span class="keyword">sizeof</span>(_Tp)))-1));</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#af6b5f41a6367c32c4087be3d7a8f5fde"> 169</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="structutl_1_1id__t.html#af6b5f41a6367c32c4087be3d7a8f5fde">bit</a> (uint8_t <a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a>, <span class="keywordtype">bool</span> v) noexcept {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">value_type</a> one = 1;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; uint8_t den = 8*<span class="keyword">sizeof</span>(_Tp)/<span class="keyword">sizeof</span>(uint8_t);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span> (v) <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, <a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a>/den) |= one &lt;&lt; ((<a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a> % den)-1);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">else</span> <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, <a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a>/den) &amp;= ~one &lt;&lt; ((<a class="code" href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">bit</a> % den)-1);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// first item</span></div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a00d98ffd688e3c146b7dca509487b821"> 176</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#a7c0de57bc3065501a953f4811bd9e183">reference</a> <a class="code" href="structutl_1_1id__t.html#a00d98ffd688e3c146b7dca509487b821">front</a> () noexcept {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> *<a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a> ();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a01a1945e5d9ee1b926bb305d65dbc28b"> 179</a></span>&#160; constexpr <a class="code" href="structutl_1_1id__t.html#aa7a965a5bb74490f5a999d5fa08cee2c">const_reference</a> <a class="code" href="structutl_1_1id__t.html#a01a1945e5d9ee1b926bb305d65dbc28b">front</a> () const noexcept {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, 0);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// Last item</span></div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a9a289ddc68f8ceec5368bf63334a2829"> 184</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#a7c0de57bc3065501a953f4811bd9e183">reference</a> <a class="code" href="structutl_1_1id__t.html#a9a289ddc68f8ceec5368bf63334a2829">back</a> () noexcept {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> _Nm ? *(<a class="code" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">end</a>() - 1) : *<a class="code" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">end</a>();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a5a87967bad104213150f3dedf7e0291f"> 187</a></span>&#160; constexpr <a class="code" href="structutl_1_1id__t.html#aa7a965a5bb74490f5a999d5fa08cee2c">const_reference</a> <a class="code" href="structutl_1_1id__t.html#a5a87967bad104213150f3dedf7e0291f">back</a> () const noexcept {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> _Nm ? <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, _Nm - 1)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; : <a class="code" href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">traits_t::Ref</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>, 0);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// Pointer to data</span></div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6"> 193</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#ab93692ef0c67737db55a38d658375ce3">pointer</a> <a class="code" href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6">data</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__traits.html#a570679371037d3f6716f2bb87f9e67d5">traits_t::Ptr</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>); }</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="structutl_1_1id__t.html#a67c50e2f7c4d7108023ea1e6ca4263eb"> 194</a></span>&#160; <a class="code" href="structutl_1_1id__t.html#a6fbd7a944a981e0cc293319e25d77220">const_pointer</a> <a class="code" href="structutl_1_1id__t.html#a67c50e2f7c4d7108023ea1e6ca4263eb">data</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="structutl_1_1id__traits.html#a570679371037d3f6716f2bb87f9e67d5">traits_t::Ptr</a> (<a class="code" href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">_data</a>); }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; };</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keywordtype">size_t</span> _Nm&gt;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespaceutl.html#a2e319bae5449ee07261f547a94c31f87"> 201</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceutl.html#a841f326020eb98fa4b8f764bf35442c0">operator== </a>(<span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; rhs) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">return</span> std::equal (lhs.<a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a>(), lhs.<a class="code" href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">end</a>(), rhs.<a class="code" href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">begin</a>());</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keywordtype">size_t</span> _Nm&gt;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="namespaceutl.html#a7f05cda5b7a37dea074df55db31aefb6"> 206</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceutl.html#a45cd30dab2ec904b6fd64641d777b35e">operator!= </a>(<span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; rhs) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> !(lhs == rhs);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keywordtype">size_t</span> _Nm&gt;</div><div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="namespaceutl.html#a64bc464138b386821977a0c4ac43fddf"> 211</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator&lt; (const id_t&lt;_Tp, _Nm&gt;&amp; lhs, <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; rhs) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// MSB plays bigger role in comparison</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> std::lexicographical_compare(lhs.rbegin(), lhs.rend(), rhs.rbegin(), rhs.rend());</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keywordtype">size_t</span> _Nm&gt;</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="namespaceutl.html#aa88fd098a89e4477ff55319be1d44a64"> 217</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceutl.html#a1d5c761bf59037aeed9157e4f63bed9e">operator&gt; </a>(<span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; rhs) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> rhs &lt; lhs;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keywordtype">size_t</span> _Nm&gt;</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="namespaceutl.html#aa2c449f74d1214cb7406b1648d2caf6f"> 222</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator&lt;= (const id_t&lt;_Tp, _Nm&gt;&amp; lhs, <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; rhs) {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> !(lhs &gt; rhs);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keywordtype">size_t</span> _Nm&gt;</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="namespaceutl.html#a3f53717133a73715f387ebac4b6f22b3"> 227</a></span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespaceutl.html#a942cac675f6dd1313807eccb407ebec6">operator&gt;= </a>(<span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="structutl_1_1id__t.html">id_t&lt;_Tp, _Nm&gt;</a>&amp; rhs) {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> !(lhs &lt; rhs);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;} <span class="comment">// namespace utl</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* __utl_container_id_h__ */</span><span class="preprocessor"></span></div><div class="ttc" id="namespaceutl_html_a841f326020eb98fa4b8f764bf35442c0"><div class="ttname"><a href="namespaceutl.html#a841f326020eb98fa4b8f764bf35442c0">utl::operator==</a></div><div class="ttdeci">bool operator==(const array&lt; _Tp, _Nm &gt; &amp;lhs, const array&lt; _Tp, _Nm &gt; &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="array_8h_source.html#l00181">array.h:181</a></div></div>
  92. <div class="ttc" id="structutl_1_1id__t_html_a9a289ddc68f8ceec5368bf63334a2829"><div class="ttname"><a href="structutl_1_1id__t.html#a9a289ddc68f8ceec5368bf63334a2829">utl::id_t::back</a></div><div class="ttdeci">reference back() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00184">id.h:184</a></div></div>
  93. <div class="ttc" id="structutl_1_1id__t_html_aa7a965a5bb74490f5a999d5fa08cee2c"><div class="ttname"><a href="structutl_1_1id__t.html#aa7a965a5bb74490f5a999d5fa08cee2c">utl::id_t&lt; uint8_t, 8 &gt;::const_reference</a></div><div class="ttdeci">const value_type &amp; const_reference</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00083">id.h:83</a></div></div>
  94. <div class="ttc" id="structutl_1_1id__t_html_a52f0a2de4ae90137d40a645389a6ec53"><div class="ttname"><a href="structutl_1_1id__t.html#a52f0a2de4ae90137d40a645389a6ec53">utl::id_t::rbegin</a></div><div class="ttdeci">const_reverse_iterator rbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00116">id.h:116</a></div></div>
  95. <div class="ttc" id="structutl_1_1id__traits_html_adcca147b5e6dd495ce61272257867a13"><div class="ttname"><a href="structutl_1_1id__traits.html#adcca147b5e6dd495ce61272257867a13">utl::id_traits::Ref</a></div><div class="ttdeci">static constexpr _Tp &amp; Ref(const type &amp;t, size_t n) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00041">id.h:41</a></div></div>
  96. <div class="ttc" id="structutl_1_1id__t_html_ad3e1553b24e43c71b64d080922c42148"><div class="ttname"><a href="structutl_1_1id__t.html#ad3e1553b24e43c71b64d080922c42148">utl::id_t::end</a></div><div class="ttdeci">iterator end() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00109">id.h:109</a></div></div>
  97. <div class="ttc" id="structutl_1_1id__traits_3_01___tp_00_010_01_4_html_a4d66c1e3f4bf6b06bbe030a28cd5e878"><div class="ttname"><a href="structutl_1_1id__traits_3_01___tp_00_010_01_4.html#a4d66c1e3f4bf6b06bbe030a28cd5e878">utl::id_traits&lt; _Tp, 0 &gt;::Ptr</a></div><div class="ttdeci">static constexpr _Tp * Ptr(const type &amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00058">id.h:58</a></div></div>
  98. <div class="ttc" id="structutl_1_1id__t_html_a6a38ff9b9efdc99120dd4ce852813e8a"><div class="ttname"><a href="structutl_1_1id__t.html#a6a38ff9b9efdc99120dd4ce852813e8a">utl::id_t::begin</a></div><div class="ttdeci">const_iterator begin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00108">id.h:108</a></div></div>
  99. <div class="ttc" id="structutl_1_1id__t_html_aa4bd898906751aa7d77fb78bcf6ee9bb"><div class="ttname"><a href="structutl_1_1id__t.html#aa4bd898906751aa7d77fb78bcf6ee9bb">utl::id_t&lt; uint8_t, 8 &gt;::size_type</a></div><div class="ttdeci">size_t size_type</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00086">id.h:86</a></div></div>
  100. <div class="ttc" id="structutl_1_1id__t_html_a00d98ffd688e3c146b7dca509487b821"><div class="ttname"><a href="structutl_1_1id__t.html#a00d98ffd688e3c146b7dca509487b821">utl::id_t::front</a></div><div class="ttdeci">reference front() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00176">id.h:176</a></div></div>
  101. <div class="ttc" id="structutl_1_1id__t_html_a5a87967bad104213150f3dedf7e0291f"><div class="ttname"><a href="structutl_1_1id__t.html#a5a87967bad104213150f3dedf7e0291f">utl::id_t::back</a></div><div class="ttdeci">constexpr const_reference back() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00187">id.h:187</a></div></div>
  102. <div class="ttc" id="structutl_1_1id__t_html_af45f6388a067b5e34f5c82c1ac2b32b6"><div class="ttname"><a href="structutl_1_1id__t.html#af45f6388a067b5e34f5c82c1ac2b32b6">utl::id_t::_data</a></div><div class="ttdeci">traits_t::type _data</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00094">id.h:94</a></div></div>
  103. <div class="ttc" id="structutl_1_1id__t_html_a99464dc25ccbc124e3c1a21f6889b23a"><div class="ttname"><a href="structutl_1_1id__t.html#a99464dc25ccbc124e3c1a21f6889b23a">utl::id_t::fill</a></div><div class="ttdeci">void fill(const value_type &amp;v)</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00099">id.h:99</a></div></div>
  104. <div class="ttc" id="structutl_1_1id__t_html_adac2f02dfe10ad607f5b226fd98bd0d6"><div class="ttname"><a href="structutl_1_1id__t.html#adac2f02dfe10ad607f5b226fd98bd0d6">utl::id_t&lt; uint8_t, 8 &gt;::const_reverse_iterator</a></div><div class="ttdeci">std::reverse_iterator&lt; const_iterator &gt; const_reverse_iterator</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00090">id.h:90</a></div></div>
  105. <div class="ttc" id="structutl_1_1id__t_html_a1e753829714d8782eab69249cc61a2ce"><div class="ttname"><a href="structutl_1_1id__t.html#a1e753829714d8782eab69249cc61a2ce">utl::id_t::cbegin</a></div><div class="ttdeci">const_iterator cbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00111">id.h:111</a></div></div>
  106. <div class="ttc" id="structutl_1_1id__t_html_a6fbd7a944a981e0cc293319e25d77220"><div class="ttname"><a href="structutl_1_1id__t.html#a6fbd7a944a981e0cc293319e25d77220">utl::id_t&lt; uint8_t, 8 &gt;::const_pointer</a></div><div class="ttdeci">const value_type * const_pointer</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00081">id.h:81</a></div></div>
  107. <div class="ttc" id="structutl_1_1id__t_html_af6b5f41a6367c32c4087be3d7a8f5fde"><div class="ttname"><a href="structutl_1_1id__t.html#af6b5f41a6367c32c4087be3d7a8f5fde">utl::id_t::bit</a></div><div class="ttdeci">void bit(uint8_t bit, bool v) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00169">id.h:169</a></div></div>
  108. <div class="ttc" id="structutl_1_1id__t_html_aa2e98b11c236e1dda8decedbe18d283e"><div class="ttname"><a href="structutl_1_1id__t.html#aa2e98b11c236e1dda8decedbe18d283e">utl::id_t::cend</a></div><div class="ttdeci">const_iterator cend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00112">id.h:112</a></div></div>
  109. <div class="ttc" id="array_8h_html"><div class="ttname"><a href="array_8h.html">array.h</a></div></div>
  110. <div class="ttc" id="structutl_1_1id__traits_html"><div class="ttname"><a href="structutl_1_1id__traits.html">utl::id_traits</a></div><div class="ttdoc">id container traits helper </div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00038">id.h:38</a></div></div>
  111. <div class="ttc" id="structutl_1_1id__t_html_a5b358a67cec1f283e1685ddf7af5d8bd"><div class="ttname"><a href="structutl_1_1id__t.html#a5b358a67cec1f283e1685ddf7af5d8bd">utl::id_t::crend</a></div><div class="ttdeci">const_reverse_iterator crend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00119">id.h:119</a></div></div>
  112. <div class="ttc" id="structutl_1_1id__t_html_a7341366f60f8ecd4a1e8dcefa33a4018"><div class="ttname"><a href="structutl_1_1id__t.html#a7341366f60f8ecd4a1e8dcefa33a4018">utl::id_t&lt; uint8_t, 8 &gt;::difference_type</a></div><div class="ttdeci">std::ptrdiff_t difference_type</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00087">id.h:87</a></div></div>
  113. <div class="ttc" id="namespaceutl_html_a1b83655ba00b548af9b51f169c6c567a"><div class="ttname"><a href="namespaceutl.html#a1b83655ba00b548af9b51f169c6c567a">utl::ptrdiff_t</a></div><div class="ttdeci">std::ptrdiff_t ptrdiff_t</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00040">types.h:40</a></div></div>
  114. <div class="ttc" id="structutl_1_1id__t_html_ae04946523c0131b6fb73f1de369c2558"><div class="ttname"><a href="structutl_1_1id__t.html#ae04946523c0131b6fb73f1de369c2558">utl::id_t::rend</a></div><div class="ttdeci">const_reverse_iterator rend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00117">id.h:117</a></div></div>
  115. <div class="ttc" id="namespaceutl_html_a942cac675f6dd1313807eccb407ebec6"><div class="ttname"><a href="namespaceutl.html#a942cac675f6dd1313807eccb407ebec6">utl::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(const array&lt; _Tp, _Nm &gt; &amp;lhs, const array&lt; _Tp, _Nm &gt; &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="array_8h_source.html#l00207">array.h:207</a></div></div>
  116. <div class="ttc" id="structutl_1_1id__t_html_ab93692ef0c67737db55a38d658375ce3"><div class="ttname"><a href="structutl_1_1id__t.html#ab93692ef0c67737db55a38d658375ce3">utl::id_t&lt; uint8_t, 8 &gt;::pointer</a></div><div class="ttdeci">value_type * pointer</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00080">id.h:80</a></div></div>
  117. <div class="ttc" id="namespaceutl_html_a22cbecb50ee5c1032de66133e96cbac6"><div class="ttname"><a href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">utl::size_t</a></div><div class="ttdeci">std::size_t size_t</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00037">types.h:37</a></div></div>
  118. <div class="ttc" id="namespaceutl_html"><div class="ttname"><a href="namespaceutl.html">utl</a></div><div class="ttdoc">STL&amp;#39;s core language concepts. </div><div class="ttdef"><b>Definition:</b> <a href="__1wire_8h_source.html#l00030">_1wire.h:30</a></div></div>
  119. <div class="ttc" id="structutl_1_1id__t_html_a01a1945e5d9ee1b926bb305d65dbc28b"><div class="ttname"><a href="structutl_1_1id__t.html#a01a1945e5d9ee1b926bb305d65dbc28b">utl::id_t::front</a></div><div class="ttdeci">constexpr const_reference front() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00179">id.h:179</a></div></div>
  120. <div class="ttc" id="structutl_1_1id__t_html_a6b328d4c3175afaf9f22c8fa8b772eb6"><div class="ttname"><a href="structutl_1_1id__t.html#a6b328d4c3175afaf9f22c8fa8b772eb6">utl::id_t::data</a></div><div class="ttdeci">pointer data() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00193">id.h:193</a></div></div>
  121. <div class="ttc" id="structutl_1_1id__t_html_a14050fe2cdcdd4a524d5e3f46f9d51f9"><div class="ttname"><a href="structutl_1_1id__t.html#a14050fe2cdcdd4a524d5e3f46f9d51f9">utl::id_t::rend</a></div><div class="ttdeci">reverse_iterator rend() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00115">id.h:115</a></div></div>
  122. <div class="ttc" id="structutl_1_1id__t_html_a7c0de57bc3065501a953f4811bd9e183"><div class="ttname"><a href="structutl_1_1id__t.html#a7c0de57bc3065501a953f4811bd9e183">utl::id_t&lt; uint8_t, 8 &gt;::reference</a></div><div class="ttdeci">value_type &amp; reference</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00082">id.h:82</a></div></div>
  123. <div class="ttc" id="structutl_1_1id__t_html_abeaee41b9ae199fe6f4b40ada1ca9ffa"><div class="ttname"><a href="structutl_1_1id__t.html#abeaee41b9ae199fe6f4b40ada1ca9ffa">utl::id_t::max_size</a></div><div class="ttdeci">constexpr size_type max_size() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00124">id.h:124</a></div></div>
  124. <div class="ttc" id="namespaceutl_html_a1d5c761bf59037aeed9157e4f63bed9e"><div class="ttname"><a href="namespaceutl.html#a1d5c761bf59037aeed9157e4f63bed9e">utl::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const array&lt; _Tp, _Nm &gt; &amp;lhs, const array&lt; _Tp, _Nm &gt; &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="array_8h_source.html#l00196">array.h:196</a></div></div>
  125. <div class="ttc" id="structutl_1_1id__t_html_a82bef2fee2dfad5d895af2b01b888c54"><div class="ttname"><a href="structutl_1_1id__t.html#a82bef2fee2dfad5d895af2b01b888c54">utl::id_t::end</a></div><div class="ttdeci">const_iterator end() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00110">id.h:110</a></div></div>
  126. <div class="ttc" id="structutl_1_1id__t_html_ae27418faa4801ec414140df1bc422350"><div class="ttname"><a href="structutl_1_1id__t.html#ae27418faa4801ec414140df1bc422350">utl::id_t&lt; uint8_t, 8 &gt;::const_iterator</a></div><div class="ttdeci">const value_type * const_iterator</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00085">id.h:85</a></div></div>
  127. <div class="ttc" id="structutl_1_1id__t_html_af2d4fabd51c5e3aabbb828d356354977"><div class="ttname"><a href="structutl_1_1id__t.html#af2d4fabd51c5e3aabbb828d356354977">utl::id_t::swap</a></div><div class="ttdeci">void swap(id_t &amp;other) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00101">id.h:101</a></div></div>
  128. <div class="ttc" id="structutl_1_1id__t_html"><div class="ttname"><a href="structutl_1_1id__t.html">utl::id_t</a></div><div class="ttdoc">A standard container for storing IDs as a fixed size sequence of bytes. This type is based on etl::ar...</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00078">id.h:78</a></div></div>
  129. <div class="ttc" id="structutl_1_1id__t_html_a708f6a3b9b85d211f933bbe66db26a2b"><div class="ttname"><a href="structutl_1_1id__t.html#a708f6a3b9b85d211f933bbe66db26a2b">utl::id_t&lt; uint8_t, 8 &gt;::reverse_iterator</a></div><div class="ttdeci">std::reverse_iterator&lt; iterator &gt; reverse_iterator</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00088">id.h:88</a></div></div>
  130. <div class="ttc" id="structutl_1_1id__t_html_a96ed68f02faf9800e93113bef1e30182"><div class="ttname"><a href="structutl_1_1id__t.html#a96ed68f02faf9800e93113bef1e30182">utl::id_t::rbegin</a></div><div class="ttdeci">reverse_iterator rbegin() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00114">id.h:114</a></div></div>
  131. <div class="ttc" id="structutl_1_1id__t_html_a9ba9d37208f8c4c964574b1a4e3e285a"><div class="ttname"><a href="structutl_1_1id__t.html#a9ba9d37208f8c4c964574b1a4e3e285a">utl::id_t::crbegin</a></div><div class="ttdeci">const_reverse_iterator crbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00118">id.h:118</a></div></div>
  132. <div class="ttc" id="structutl_1_1id__t_html_a5052e5dd26342349236eff91766e332e"><div class="ttname"><a href="structutl_1_1id__t.html#a5052e5dd26342349236eff91766e332e">utl::id_t::empty</a></div><div class="ttdeci">constexpr bool empty() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00125">id.h:125</a></div></div>
  133. <div class="ttc" id="structutl_1_1id__t_html_abb17fc36dd256093e265985e68e25f32"><div class="ttname"><a href="structutl_1_1id__t.html#abb17fc36dd256093e265985e68e25f32">utl::id_t::at</a></div><div class="ttdeci">reference at(size_type n) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00144">id.h:144</a></div></div>
  134. <div class="ttc" id="namespaceutl_html_a45cd30dab2ec904b6fd64641d777b35e"><div class="ttname"><a href="namespaceutl.html#a45cd30dab2ec904b6fd64641d777b35e">utl::operator!=</a></div><div class="ttdeci">bool operator!=(const array&lt; _Tp, _Nm &gt; &amp;lhs, const array&lt; _Tp, _Nm &gt; &amp;rhs)</div><div class="ttdef"><b>Definition:</b> <a href="array_8h_source.html#l00186">array.h:186</a></div></div>
  135. <div class="ttc" id="structutl_1_1id__t_html_a9f1d9c9792705f9d358018d174f22429"><div class="ttname"><a href="structutl_1_1id__t.html#a9f1d9c9792705f9d358018d174f22429">utl::id_t&lt; uint8_t, 8 &gt;::value_type</a></div><div class="ttdeci">uint8_t value_type</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00079">id.h:79</a></div></div>
  136. <div class="ttc" id="structutl_1_1id__t_html_aa965355792d724f40260bce7d855aae7"><div class="ttname"><a href="structutl_1_1id__t.html#aa965355792d724f40260bce7d855aae7">utl::id_t::at</a></div><div class="ttdeci">constexpr const_reference at(size_type n) const noexcept</div><div class="ttdoc">Compile time boundary check dereference operator. </div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00151">id.h:151</a></div></div>
  137. <div class="ttc" id="structutl_1_1id__t_html_a67c50e2f7c4d7108023ea1e6ca4263eb"><div class="ttname"><a href="structutl_1_1id__t.html#a67c50e2f7c4d7108023ea1e6ca4263eb">utl::id_t::data</a></div><div class="ttdeci">const_pointer data() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00194">id.h:194</a></div></div>
  138. <div class="ttc" id="structutl_1_1id__t_html_acc2df57ec1921165238adc13f1a2ad7d"><div class="ttname"><a href="structutl_1_1id__t.html#acc2df57ec1921165238adc13f1a2ad7d">utl::id_t::operator[]</a></div><div class="ttdeci">reference operator[](size_type n) noexcept</div><div class="ttdoc">Operator []. </div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00132">id.h:132</a></div></div>
  139. <div class="ttc" id="structutl_1_1id__t_html_abf6354098b87ecd333bfb3a160e757df"><div class="ttname"><a href="structutl_1_1id__t.html#abf6354098b87ecd333bfb3a160e757df">utl::id_t::begin</a></div><div class="ttdeci">iterator begin() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00107">id.h:107</a></div></div>
  140. <div class="ttc" id="structutl_1_1id__traits_html_a570679371037d3f6716f2bb87f9e67d5"><div class="ttname"><a href="structutl_1_1id__traits.html#a570679371037d3f6716f2bb87f9e67d5">utl::id_traits::Ptr</a></div><div class="ttdeci">static constexpr _Tp * Ptr(const type &amp;t) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00045">id.h:45</a></div></div>
  141. <div class="ttc" id="structutl_1_1id__traits_html_ae8c2dc9bc8ff3284dc89e7760ef601f8"><div class="ttname"><a href="structutl_1_1id__traits.html#ae8c2dc9bc8ff3284dc89e7760ef601f8">utl::id_traits::type</a></div><div class="ttdeci">_Tp type[_Nm]</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00039">id.h:39</a></div></div>
  142. <div class="ttc" id="structutl_1_1id__t_html_acbcdd4547bde10bbbab7a72ad1adbf21"><div class="ttname"><a href="structutl_1_1id__t.html#acbcdd4547bde10bbbab7a72ad1adbf21">utl::id_t&lt; uint8_t, 8 &gt;::iterator</a></div><div class="ttdeci">value_type * iterator</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00084">id.h:84</a></div></div>
  143. <div class="ttc" id="impl_8h_html"><div class="ttname"><a href="impl_8h.html">impl.h</a></div><div class="ttdoc">Implementation detail main forward header. </div></div>
  144. <div class="ttc" id="structutl_1_1id__traits_3_01___tp_00_010_01_4_html_a578c8ad9389e23cfb3322ebe67875f4c"><div class="ttname"><a href="structutl_1_1id__traits_3_01___tp_00_010_01_4.html#a578c8ad9389e23cfb3322ebe67875f4c">utl::id_traits&lt; _Tp, 0 &gt;::Ref</a></div><div class="ttdeci">static constexpr _Tp &amp; Ref(const type &amp;t, size_t n) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00054">id.h:54</a></div></div>
  145. <div class="ttc" id="structutl_1_1id__t_html_aff09cfb8c3d106dd24a7107f7c9a68f3"><div class="ttname"><a href="structutl_1_1id__t.html#aff09cfb8c3d106dd24a7107f7c9a68f3">utl::id_t::size</a></div><div class="ttdeci">constexpr size_type size() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00123">id.h:123</a></div></div>
  146. <div class="ttc" id="structutl_1_1id__t_html_a870b1c8cc468c8b9d7e76fd4d4fb8b2d"><div class="ttname"><a href="structutl_1_1id__t.html#a870b1c8cc468c8b9d7e76fd4d4fb8b2d">utl::id_t::bit</a></div><div class="ttdeci">constexpr bool bit(uint8_t bit) const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="id_8h_source.html#l00159">id.h:159</a></div></div>
  147. </div><!-- fragment --></div><!-- contents -->
  148. </div><!-- doc-content -->
  149. <!-- start footer part -->
  150. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  151. <ul>
  152. <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_82754f54d9380477ef02477185c1f103.html">utl</a></li><li class="navelem"><a class="el" href="dir_2b272fa693f0990de7cf333b4d9023f8.html">container</a></li><li class="navelem"><a class="el" href="id_8h.html">id.h</a></li>
  153. <li class="footer">Generated by
  154. <a href="http://www.doxygen.org/index.html">
  155. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  156. </ul>
  157. </div>
  158. </body>
  159. </html>