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.

in__dev_8h_source.html 63 KiB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  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/dev/in_dev.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('in__dev_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">in_dev.h</div> </div>
  89. </div><!--header-->
  90. <div class="contents">
  91. <a href="in__dev_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="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifndef __utl_dev_in_dev_h__</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#define __utl_dev_in_dev_h__</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</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="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="crtp_8h.html">utl/core/crtp.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="dev__iterators_8h.html">utl/dev/dev_iterators.h</a>&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="meta_8h.html">utl/meta/meta.h</a>&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="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> impl_t, <span class="keyword">typename</span> data_t, <span class="keywordtype">size_t</span> streamsize =0&gt;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html"> 54</a></span>&#160; <span class="keyword">class </span><a class="code" href="classutl_1_1in__dev.html">in_dev</a> {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a370913d250e982328560b034adf227c0">_CRTP_IMPL</a>(impl_t);</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#a1bcb5426bf837e27c9fa6128f25d2857"> 56</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev.html">in_dev_t</a> = <a class="code" href="classutl_1_1in__dev.html">in_dev &lt;impl_t, data_t, streamsize&gt;</a>; </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#acb38742b242e8cf90323d46a9907863d"> 61</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev.html#acb38742b242e8cf90323d46a9907863d">data_type</a> = data_t;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#aef4b5c41ab91ef284cfc0cf6100c0828"> 62</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev.html#aef4b5c41ab91ef284cfc0cf6100c0828">pointer_type</a> = data_t*;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#adef54df1c3d4ae20629ecfdb7826384c"> 64</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev.html">type</a> = <a class="code" href="classutl_1_1in__dev.html#a1bcb5426bf837e27c9fa6128f25d2857">in_dev_t</a>; </div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a2caa0f47e6132f051bb54b1acea37fc6">~in_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a1ca16c382f5e0dd25089a4e06a40f2f2">in_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a1ca16c382f5e0dd25089a4e06a40f2f2">in_dev</a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1in__dev.html">in_dev_t</a>&amp;) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="classutl_1_1in__dev.html">in_dev_t</a>&amp; <a class="code" href="classutl_1_1in__dev.html#a55dc56f1277b2bd04b154fbf19d8853f">operator= </a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1in__dev.html">in_dev_t</a>&amp;) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf"> 79</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (data_t&amp; data) { <span class="keywordflow">return</span> impl().get_ (data); }</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#a374e6cc495d5885ee6be8973c5f4eb8e"> 80</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1in__dev.html#a374e6cc495d5885ee6be8973c5f4eb8e">get_</a> (data_t* data, <span class="keywordtype">size_t</span> n) { <span class="keywordflow">return</span> impl().get (data, n); }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#aa13a075d41f3e020f4f67c2a59d580a5"> 97</a></span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">get</span> (data_t&amp; data) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (data);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#a5536fdd877bc9f078a9ede43ccc283e7"> 109</a></span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">get</span> (data_t* data, <span class="keywordtype">size_t</span> n) {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (data, n);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Dst_t&gt;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#abe8aa85c0dbe0ddb3745ded02b4e68fe"> 129</a></span>&#160; <a class="code" href="classutl_1_1in__dev.html">in_dev_t</a>&amp; <a class="code" href="classutl_1_1in__dev.html#abe8aa85c0dbe0ddb3745ded02b4e68fe">operator&gt;&gt; </a>(_Dst_t&amp; dst) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; static_assert ((<span class="keyword">sizeof</span> (_Dst_t)%<span class="keyword">sizeof</span>(data_t) == 0),</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="stringliteral">&quot;Target size must be an integer multiple of device&#39;s data size&quot;</span>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (reinterpret_cast&lt;data_t*&gt;(&amp;dst), <span class="keyword">sizeof</span>(_Dst_t)/<span class="keyword">sizeof</span>(data_t));</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</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"> 136</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Dst_t&gt;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a1bcb5426bf837e27c9fa6128f25d2857">in_dev_t</a>&amp; <a class="code" href="classutl_1_1in__dev.html#abe8aa85c0dbe0ddb3745ded02b4e68fe">operator&gt;&gt; </a>(_Dst_t* dst) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#a98774619e8575162a8be271833282690"> 140</a></span>&#160; <a class="code" href="classutl_1_1in__dev.html">in_dev_t</a>&amp; <a class="code" href="classutl_1_1in__dev.html#abe8aa85c0dbe0ddb3745ded02b4e68fe">operator&gt;&gt; </a>(data_t&amp; dst) {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (dst);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev.html#a629f2364e2ab427cbdc0c7f1cb8e8a66">iterator</a> = <a class="code" href="classutl_1_1indev__it.html">indev_it &lt;in_dev_t, data_t*, streamsize&gt;</a>; </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043"> 151</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> = <a class="code" href="classutl_1_1indev__it.html">indev_it &lt;in_dev_t, const data_t*, streamsize&gt;</a>; </div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#ab2158d8a134dff882a3eac2960da04c0"> 154</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">iterator</a> <a class="code" href="classutl_1_1in__dev.html#ab2158d8a134dff882a3eac2960da04c0">begin</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a629f2364e2ab427cbdc0c7f1cb8e8a66">iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#af81ff90ccb0070ad9388bc032d6d3279"> 155</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1in__dev.html#af81ff90ccb0070ad9388bc032d6d3279">begin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">const_iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#a1120a80c871e1ea8165b4943c767893d"> 156</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1in__dev.html#a1120a80c871e1ea8165b4943c767893d">cbegin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">const_iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#aae7797f366d25091b63ad87b34ed4b48"> 159</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">iterator</a> <a class="code" href="classutl_1_1in__dev.html#aae7797f366d25091b63ad87b34ed4b48">end</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a629f2364e2ab427cbdc0c7f1cb8e8a66">iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#aecb438cbb0e2a6c3a926aad81e8c29c7"> 160</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1in__dev.html#aecb438cbb0e2a6c3a926aad81e8c29c7">end</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">const_iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev.html#ac54d9a1fb6241be460ffc792aac18b24"> 161</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1in__dev.html#ac54d9a1fb6241be460ffc792aac18b24">cend</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">const_iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> data_t, <span class="keywordtype">size_t</span> streamsize&gt;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html"> 174</a></span>&#160; <span class="keyword">class </span><a class="code" href="classutl_1_1in__dev.html">in_dev</a> &lt;<a class="code" href="structutl_1_1virtual__tag.html">virtual_tag</a>, data_t, streamsize&gt; {</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a1ab301d27deb2aef9d7298f348248ca9"> 176</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">in_dev_t</a> = <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">in_dev &lt;virtual_tag, data_t, streamsize&gt;</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a6d418e7caeb88fa750148f1e8874dd79"> 181</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a6d418e7caeb88fa750148f1e8874dd79">data_type</a> = data_t;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a4deebc522c75a793304a7a7ff09fb3f8"> 182</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a4deebc522c75a793304a7a7ff09fb3f8">pointer_type</a> = data_t*;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a0fd855f15733c848a77ce3dfc2f3fab7"> 184</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">type</a> = <a class="code" href="classutl_1_1in__dev.html#a1bcb5426bf837e27c9fa6128f25d2857">in_dev_t</a>; </div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">virtual</span> <a class="code" href="classutl_1_1in__dev.html#a2caa0f47e6132f051bb54b1acea37fc6">~in_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a1ca16c382f5e0dd25089a4e06a40f2f2">in_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a1ca16c382f5e0dd25089a4e06a40f2f2">in_dev</a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">in_dev_t</a>&amp;) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">in_dev_t</a>&amp; <a class="code" href="classutl_1_1in__dev.html#a55dc56f1277b2bd04b154fbf19d8853f">operator= </a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">in_dev_t</a>&amp;) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">private</span>:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (data_t&amp; data) = 0;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (data_t* data, <span class="keywordtype">size_t</span> n) = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aed9cb2dea774c6569b5e63aec8e0b50c"> 230</a></span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">get</span> (data_t&amp; data) { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (data); }</div><div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a12c2da025b94a200fc73133c206c017e"> 231</a></span>&#160; <span class="keywordtype">size_t</span> <span class="keyword">get</span> (data_t* data, <span class="keywordtype">size_t</span> n) { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (data, n); }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Dst_t&gt;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a762d865283d5d990885a0851fddf24ee"> 249</a></span>&#160; <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">in_dev_t</a>&amp; <a class="code" href="classutl_1_1in__dev.html#abe8aa85c0dbe0ddb3745ded02b4e68fe">operator&gt;&gt; </a>(_Dst_t&amp; dst) {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; static_assert ((<span class="keyword">sizeof</span> (_Dst_t)%<span class="keyword">sizeof</span>(data_t) == 0),</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="stringliteral">&quot;Target size must be an integer multiple of device&#39;s data size&quot;</span>);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (reinterpret_cast&lt;data_t*&gt;(&amp;dst), <span class="keyword">sizeof</span>(_Dst_t)/<span class="keyword">sizeof</span>(data_t));</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Dst_t&gt;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a1bcb5426bf837e27c9fa6128f25d2857">in_dev_t</a>&amp; <a class="code" href="classutl_1_1in__dev.html#abe8aa85c0dbe0ddb3745ded02b4e68fe">operator&gt;&gt; </a>(_Dst_t* dst) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a645886b95bec35e1d8a9d9247d47527a"> 260</a></span>&#160; <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">in_dev_t</a>&amp; <a class="code" href="classutl_1_1in__dev.html#abe8aa85c0dbe0ddb3745ded02b4e68fe">operator&gt;&gt; </a>(data_t&amp; dst) {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">get_</a> (dst);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1in__dev.html#a629f2364e2ab427cbdc0c7f1cb8e8a66">iterator</a> = <a class="code" href="classutl_1_1indev__it.html">indev_it &lt;in_dev_t, data_t*, streamsize&gt;</a>; </div><div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#afbb0032261579546e26972be1ab8f4e9"> 271</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> = <a class="code" href="classutl_1_1indev__it.html">indev_it &lt;in_dev_t, const data_t*, streamsize&gt;</a>; </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#ace7fac9d980407acc9b6484592c74367"> 274</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">iterator</a> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#ace7fac9d980407acc9b6484592c74367">begin</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a629f2364e2ab427cbdc0c7f1cb8e8a66">iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aa1ce4d2193e476156df1b03f39503f7c"> 275</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aa1ce4d2193e476156df1b03f39503f7c">begin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">const_iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#ae1960ea2ffdf369a0c180b57007e0af6"> 276</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#ae1960ea2ffdf369a0c180b57007e0af6">cbegin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">const_iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a9425910f709853ff9cd70b2331a026cc"> 279</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">iterator</a> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a9425910f709853ff9cd70b2331a026cc">end</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a629f2364e2ab427cbdc0c7f1cb8e8a66">iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a2b723a67fce37e74b594ee9c5dc07030"> 280</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a2b723a67fce37e74b594ee9c5dc07030">end</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">const_iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a08ffb1ab825979c182f042eeeaea57f3"> 281</a></span>&#160; <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a08ffb1ab825979c182f042eeeaea57f3">cend</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">const_iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; };</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="comment">/*</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> * Input device predicate (concept)</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html"> 289</a></span>&#160; <span class="keyword">namespace </span>in_dev_details {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">using</span> std::declval;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// main api members</span></div><div class="line"><a name="l00293"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html#a560eec1b326b0f6b91fa96f64f15ef61"> 293</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Tp&gt; <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1in__dev__details.html#a560eec1b326b0f6b91fa96f64f15ef61">try_get1_t</a> = decltype (declval&lt;_Tp&gt;().<span class="keyword">get</span> (declval&lt;typename _Tp::data_type&amp;&gt;()));</div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html#ae11bccc2282ed8f2aaac67687d756167"> 294</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Tp&gt; <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1in__dev__details.html#ae11bccc2282ed8f2aaac67687d756167">try_get2_t</a> = decltype (declval&lt;_Tp&gt;().<span class="keyword">get</span> (declval&lt;typename _Tp::data_type*&gt;(), declval&lt;size_t&gt;()));</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// operators</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="comment">//template &lt;class _Tp&gt; using try_extract_t= decltype (declval&lt;_Tp&gt;() &gt;&gt; declval&lt;typename _Tp::data_type&amp;&gt;());</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// iterator members</span></div><div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html#af790d5cec9db9f80cc8d67e9755e823e"> 298</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Tp&gt; <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1in__dev__details.html#af790d5cec9db9f80cc8d67e9755e823e">try_begin_t</a> = decltype (declval&lt;_Tp&gt;().begin());</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html#af7cb4a98688e65b04793cef145a90202"> 299</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Tp&gt; <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1in__dev__details.html#af7cb4a98688e65b04793cef145a90202">tryc_begin_t</a> = decltype (declval&lt;const _Tp&gt;().begin());</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html#a857d70a4119a4ff5615141d68e59ba7b"> 300</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Tp&gt; <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1in__dev__details.html#a857d70a4119a4ff5615141d68e59ba7b">try_cbegin_t</a> = decltype (declval&lt;const _Tp&gt;().cbegin());</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html#acc72ca7012e26a9a0de8b08047dc9de8"> 301</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Tp&gt; <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1in__dev__details.html#acc72ca7012e26a9a0de8b08047dc9de8">try_end_t</a> = decltype (declval&lt;_Tp&gt;().begin());</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html#ad2dad6ed501b94ba1fa9cffade343762"> 302</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Tp&gt; <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1in__dev__details.html#ad2dad6ed501b94ba1fa9cffade343762">tryc_end_t</a> = decltype (declval&lt;const _Tp&gt;().begin());</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="namespaceutl_1_1in__dev__details.html#ab268028c81d5385f19bbeb0c978ec9b2"> 303</a></span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">class</span> _Tp&gt; <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1in__dev__details.html#ab268028c81d5385f19bbeb0c978ec9b2">try_cend_t</a> = decltype (declval&lt;const _Tp&gt;().cend());</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp, <span class="keyword">typename</span> =<span class="keywordtype">void</span>&gt;</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="structutl_1_1in__dev__details_1_1is__in__dev__.html"> 307</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structutl_1_1in__dev__details_1_1is__in__dev__.html">is_in_dev_</a> : <a class="code" href="namespaceutl_1_1meta.html#a55511dbaa0adb605ce22dcec11f8d22d">false_</a> {};</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp&gt;</div><div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="structutl_1_1in__dev__details_1_1is__in__dev___3_01___tp_00_01void__t_3_01typename_01___tp_1_1dad922a62deb7c32e2cff18d66b8c887d2.html"> 311</a></span>&#160; <span class="keyword">struct </span><a class="code" href="structutl_1_1in__dev__details_1_1is__in__dev__.html">is_in_dev_</a> &lt;_Tp,</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="group__detection.html#gae7373c997420d16cf37e542eb3cfa3ad">void_t</a> &lt;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; typename _Tp::data_type,</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; typename _Tp::pointer_type,</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; typename _Tp::iterator,</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; typename _Tp::const_iterator,</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> &lt;try_get1_t &lt;_Tp&gt;, size_t&gt;,</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> &lt;try_get2_t &lt;_Tp&gt;, size_t&gt;,</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="comment">//if_same_t &lt;try_extract_t&lt;_Tp&gt;,typename _Tp&amp;&gt;,</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> &lt;try_begin_t&lt;_Tp&gt;, typename _Tp::iterator&gt;,</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> &lt;tryc_begin_t&lt;_Tp&gt;, typename _Tp::const_iterator&gt;,</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> &lt;try_cbegin_t&lt;_Tp&gt;, typename _Tp::const_iterator&gt;,</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> &lt;try_end_t&lt;_Tp&gt;, typename _Tp::iterator&gt;,</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> &lt;tryc_end_t&lt;_Tp&gt;, typename _Tp::const_iterator&gt;,</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> &lt;try_cend_t&lt;_Tp&gt;, typename _Tp::const_iterator&gt;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; &gt;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; &gt; : <a class="code" href="namespaceutl_1_1meta.html#ae9a5a8fbe8202785f059935af219fb97">true_</a> {};</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> _Tp&gt;</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="namespaceutl.html#a1470ab9407ee21ea374b2c7a81e3511b"> 335</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="namespaceutl.html#a1470ab9407ee21ea374b2c7a81e3511b">In_dev</a> = <a class="code" href="structutl_1_1in__dev__details_1_1is__in__dev__.html">in_dev_details::is_in_dev_ &lt;_Tp&gt;::value</a>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;}</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* #ifndef __utl_dev_in_dev_h__ */</span><span class="preprocessor"></span></div><div class="ttc" id="classutl_1_1in__dev_html_aae7797f366d25091b63ad87b34ed4b48"><div class="ttname"><a href="classutl_1_1in__dev.html#aae7797f366d25091b63ad87b34ed4b48">utl::in_dev::end</a></div><div class="ttdeci">iterator end() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00159">in_dev.h:159</a></div></div>
  92. <div class="ttc" id="classutl_1_1in__dev_html_aef4b5c41ab91ef284cfc0cf6100c0828"><div class="ttname"><a href="classutl_1_1in__dev.html#aef4b5c41ab91ef284cfc0cf6100c0828">utl::in_dev::pointer_type</a></div><div class="ttdeci">data_t * pointer_type</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00062">in_dev.h:62</a></div></div>
  93. <div class="ttc" id="meta_8h_html"><div class="ttname"><a href="meta_8h.html">meta.h</a></div><div class="ttdoc">Include all meta library. </div></div>
  94. <div class="ttc" id="classutl_1_1in__dev_html_acb38742b242e8cf90323d46a9907863d"><div class="ttname"><a href="classutl_1_1in__dev.html#acb38742b242e8cf90323d46a9907863d">utl::in_dev::data_type</a></div><div class="ttdeci">data_t data_type</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00061">in_dev.h:61</a></div></div>
  95. <div class="ttc" id="classutl_1_1in__dev_html_a55dc56f1277b2bd04b154fbf19d8853f"><div class="ttname"><a href="classutl_1_1in__dev.html#a55dc56f1277b2bd04b154fbf19d8853f">utl::in_dev::operator=</a></div><div class="ttdeci">in_dev_t &amp; operator=(const in_dev_t &amp;)=delete</div></div>
  96. <div class="ttc" id="classutl_1_1in__dev_html_a1120a80c871e1ea8165b4943c767893d"><div class="ttname"><a href="classutl_1_1in__dev.html#a1120a80c871e1ea8165b4943c767893d">utl::in_dev::cbegin</a></div><div class="ttdeci">const_iterator cbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00156">in_dev.h:156</a></div></div>
  97. <div class="ttc" id="group__detection_html_gae7373c997420d16cf37e542eb3cfa3ad"><div class="ttname"><a href="group__detection.html#gae7373c997420d16cf37e542eb3cfa3ad">utl::meta::void_t</a></div><div class="ttdeci">void void_t</div><div class="ttdoc">void_t type alias </div><div class="ttdef"><b>Definition:</b> <a href="detection_8h_source.html#l00055">detection.h:55</a></div></div>
  98. <div class="ttc" id="structutl_1_1in__dev__details_1_1is__in__dev___html"><div class="ttname"><a href="structutl_1_1in__dev__details_1_1is__in__dev__.html">utl::in_dev_details::is_in_dev_</a></div><div class="ttdoc">Primary template to catch any non input device types. </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00307">in_dev.h:307</a></div></div>
  99. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a08ffb1ab825979c182f042eeeaea57f3"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a08ffb1ab825979c182f042eeeaea57f3">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;::cend</a></div><div class="ttdeci">const_iterator cend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00281">in_dev.h:281</a></div></div>
  100. <div class="ttc" id="classutl_1_1in__dev_html_a370913d250e982328560b034adf227c0"><div class="ttname"><a href="classutl_1_1in__dev.html#a370913d250e982328560b034adf227c0">utl::in_dev::_CRTP_IMPL</a></div><div class="ttdeci">_CRTP_IMPL(impl_t)</div></div>
  101. <div class="ttc" id="namespaceutl_1_1meta_html_ae9a5a8fbe8202785f059935af219fb97"><div class="ttname"><a href="namespaceutl_1_1meta.html#ae9a5a8fbe8202785f059935af219fb97">utl::meta::true_</a></div><div class="ttdeci">bool_&lt; true &gt; true_</div><div class="ttdoc">The type used as a compile-time boolean with true value. </div><div class="ttdef"><b>Definition:</b> <a href="integral_8h_source.html#l00068">integral.h:68</a></div></div>
  102. <div class="ttc" id="crtp_8h_html"><div class="ttname"><a href="crtp_8h.html">crtp.h</a></div></div>
  103. <div class="ttc" id="namespaceutl_1_1in__dev__details_html_a857d70a4119a4ff5615141d68e59ba7b"><div class="ttname"><a href="namespaceutl_1_1in__dev__details.html#a857d70a4119a4ff5615141d68e59ba7b">utl::in_dev_details::try_cbegin_t</a></div><div class="ttdeci">decltype(declval&lt; const _Tp &gt;().cbegin()) try_cbegin_t</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00300">in_dev.h:300</a></div></div>
  104. <div class="ttc" id="namespaceutl_1_1in__dev__details_html_ab268028c81d5385f19bbeb0c978ec9b2"><div class="ttname"><a href="namespaceutl_1_1in__dev__details.html#ab268028c81d5385f19bbeb0c978ec9b2">utl::in_dev_details::try_cend_t</a></div><div class="ttdeci">decltype(declval&lt; const _Tp &gt;().cend()) try_cend_t</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00303">in_dev.h:303</a></div></div>
  105. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a4deebc522c75a793304a7a7ff09fb3f8"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a4deebc522c75a793304a7a7ff09fb3f8">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;::pointer_type</a></div><div class="ttdeci">data_t * pointer_type</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00182">in_dev.h:182</a></div></div>
  106. <div class="ttc" id="namespaceutl_1_1in__dev__details_html_a560eec1b326b0f6b91fa96f64f15ef61"><div class="ttname"><a href="namespaceutl_1_1in__dev__details.html#a560eec1b326b0f6b91fa96f64f15ef61">utl::in_dev_details::try_get1_t</a></div><div class="ttdeci">decltype(declval&lt; _Tp &gt;().get(declval&lt; typename _Tp::data_type &amp; &gt;())) try_get1_t</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00293">in_dev.h:293</a></div></div>
  107. <div class="ttc" id="classutl_1_1in__dev_html_a2caa0f47e6132f051bb54b1acea37fc6"><div class="ttname"><a href="classutl_1_1in__dev.html#a2caa0f47e6132f051bb54b1acea37fc6">utl::in_dev::~in_dev</a></div><div class="ttdeci">~in_dev()=default</div><div class="ttdoc">Allow destructor from derived only. </div></div>
  108. <div class="ttc" id="namespaceutl_html_ac5e425d39e8ee62e68664c6166d02d0c"><div class="ttname"><a href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">utl::use_if_same_t</a></div><div class="ttdeci">meta::eval&lt; meta::enable_if&lt; meta::same_&lt; _T1, _T2 &gt;::value, _Ret &gt; &gt; use_if_same_t</div><div class="ttdef"><b>Definition:</b> <a href="stl_8h_source.html#l00055">stl.h:55</a></div></div>
  109. <div class="ttc" id="namespaceutl_1_1in__dev__details_html_acc72ca7012e26a9a0de8b08047dc9de8"><div class="ttname"><a href="namespaceutl_1_1in__dev__details.html#acc72ca7012e26a9a0de8b08047dc9de8">utl::in_dev_details::try_end_t</a></div><div class="ttdeci">decltype(declval&lt; _Tp &gt;().begin()) try_end_t</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00301">in_dev.h:301</a></div></div>
  110. <div class="ttc" id="classutl_1_1in__dev_html_af81ff90ccb0070ad9388bc032d6d3279"><div class="ttname"><a href="classutl_1_1in__dev.html#af81ff90ccb0070ad9388bc032d6d3279">utl::in_dev::begin</a></div><div class="ttdeci">const_iterator begin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00155">in_dev.h:155</a></div></div>
  111. <div class="ttc" id="classutl_1_1in__dev_html_abe8aa85c0dbe0ddb3745ded02b4e68fe"><div class="ttname"><a href="classutl_1_1in__dev.html#abe8aa85c0dbe0ddb3745ded02b4e68fe">utl::in_dev::operator&gt;&gt;</a></div><div class="ttdeci">in_dev_t &amp; operator&gt;&gt;(_Dst_t &amp;dst)</div><div class="ttdoc">Template operator &gt;&gt; implementation for for all by value/ref parameters. </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00129">in_dev.h:129</a></div></div>
  112. <div class="ttc" id="namespaceutl_1_1meta_html_a55511dbaa0adb605ce22dcec11f8d22d"><div class="ttname"><a href="namespaceutl_1_1meta.html#a55511dbaa0adb605ce22dcec11f8d22d">utl::meta::false_</a></div><div class="ttdeci">bool_&lt; false &gt; false_</div><div class="ttdoc">The type used as a compile-time boolean with false value. </div><div class="ttdef"><b>Definition:</b> <a href="integral_8h_source.html#l00069">integral.h:69</a></div></div>
  113. <div class="ttc" id="classutl_1_1in__dev_html_aecb438cbb0e2a6c3a926aad81e8c29c7"><div class="ttname"><a href="classutl_1_1in__dev.html#aecb438cbb0e2a6c3a926aad81e8c29c7">utl::in_dev::end</a></div><div class="ttdeci">const_iterator end() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00160">in_dev.h:160</a></div></div>
  114. <div class="ttc" id="classutl_1_1in__dev_html_a629f2364e2ab427cbdc0c7f1cb8e8a66"><div class="ttname"><a href="classutl_1_1in__dev.html#a629f2364e2ab427cbdc0c7f1cb8e8a66">utl::in_dev::iterator</a></div><div class="ttdeci">indev_it&lt; in_dev_t, data_t *, streamsize &gt; iterator</div><div class="ttdoc">Iterator. </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00150">in_dev.h:150</a></div></div>
  115. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_ace7fac9d980407acc9b6484592c74367"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#ace7fac9d980407acc9b6484592c74367">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;::begin</a></div><div class="ttdeci">iterator begin() noexcept</div><div class="ttdoc">.begin implementation </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00274">in_dev.h:274</a></div></div>
  116. <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>
  117. <div class="ttc" id="namespaceutl_1_1in__dev__details_html_af790d5cec9db9f80cc8d67e9755e823e"><div class="ttname"><a href="namespaceutl_1_1in__dev__details.html#af790d5cec9db9f80cc8d67e9755e823e">utl::in_dev_details::try_begin_t</a></div><div class="ttdeci">decltype(declval&lt; _Tp &gt;().begin()) try_begin_t</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00298">in_dev.h:298</a></div></div>
  118. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a9425910f709853ff9cd70b2331a026cc"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a9425910f709853ff9cd70b2331a026cc">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;::end</a></div><div class="ttdeci">iterator end() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00279">in_dev.h:279</a></div></div>
  119. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_aa1ce4d2193e476156df1b03f39503f7c"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aa1ce4d2193e476156df1b03f39503f7c">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;::begin</a></div><div class="ttdeci">const_iterator begin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00275">in_dev.h:275</a></div></div>
  120. <div class="ttc" id="classutl_1_1in__dev_html_a1bcb5426bf837e27c9fa6128f25d2857"><div class="ttname"><a href="classutl_1_1in__dev.html#a1bcb5426bf837e27c9fa6128f25d2857">utl::in_dev::in_dev_t</a></div><div class="ttdeci">in_dev&lt; impl_t, data_t, streamsize &gt; in_dev_t</div><div class="ttdoc">class type syntactic sugar </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00056">in_dev.h:56</a></div></div>
  121. <div class="ttc" id="classutl_1_1indev__it_html"><div class="ttname"><a href="classutl_1_1indev__it.html">utl::indev_it</a></div><div class="ttdoc">Input device iterator type. We &quot;future call&quot; interface methods from owner class to provide iterator f...</div><div class="ttdef"><b>Definition:</b> <a href="dev__iterators_8h_source.html#l00461">dev_iterators.h:461</a></div></div>
  122. <div class="ttc" id="classutl_1_1in__dev_html_a686e6cda465a7e08b29465a75740e043"><div class="ttname"><a href="classutl_1_1in__dev.html#a686e6cda465a7e08b29465a75740e043">utl::in_dev::const_iterator</a></div><div class="ttdeci">indev_it&lt; in_dev_t, const data_t *, streamsize &gt; const_iterator</div><div class="ttdoc">Const iterator. </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00151">in_dev.h:151</a></div></div>
  123. <div class="ttc" id="namespaceutl_html_a1470ab9407ee21ea374b2c7a81e3511b"><div class="ttname"><a href="namespaceutl.html#a1470ab9407ee21ea374b2c7a81e3511b">utl::In_dev</a></div><div class="ttdeci">constexpr bool In_dev</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00335">in_dev.h:335</a></div></div>
  124. <div class="ttc" id="namespaceutl_1_1in__dev__details_html_ae11bccc2282ed8f2aaac67687d756167"><div class="ttname"><a href="namespaceutl_1_1in__dev__details.html#ae11bccc2282ed8f2aaac67687d756167">utl::in_dev_details::try_get2_t</a></div><div class="ttdeci">decltype(declval&lt; _Tp &gt;().get(declval&lt; typename _Tp::data_type * &gt;(), declval&lt; size_t &gt;())) try_get2_t</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00294">in_dev.h:294</a></div></div>
  125. <div class="ttc" id="classutl_1_1in__dev_html"><div class="ttname"><a href="classutl_1_1in__dev.html">utl::in_dev</a></div><div class="ttdoc">Abstract base class for input devices. </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00054">in_dev.h:54</a></div></div>
  126. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a6d418e7caeb88fa750148f1e8874dd79"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a6d418e7caeb88fa750148f1e8874dd79">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;::data_type</a></div><div class="ttdeci">data_t data_type</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00181">in_dev.h:181</a></div></div>
  127. <div class="ttc" id="classutl_1_1in__dev_html_a1ca16c382f5e0dd25089a4e06a40f2f2"><div class="ttname"><a href="classutl_1_1in__dev.html#a1ca16c382f5e0dd25089a4e06a40f2f2">utl::in_dev::in_dev</a></div><div class="ttdeci">in_dev()=default</div><div class="ttdoc">A default constructor from derived only. </div></div>
  128. <div class="ttc" id="dev__iterators_8h_html"><div class="ttname"><a href="dev__iterators_8h.html">dev_iterators.h</a></div><div class="ttdoc">Iterator collection for devices. </div></div>
  129. <div class="ttc" id="namespaceutl_1_1in__dev__details_html_af7cb4a98688e65b04793cef145a90202"><div class="ttname"><a href="namespaceutl_1_1in__dev__details.html#af7cb4a98688e65b04793cef145a90202">utl::in_dev_details::tryc_begin_t</a></div><div class="ttdeci">decltype(declval&lt; const _Tp &gt;().begin()) tryc_begin_t</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00299">in_dev.h:299</a></div></div>
  130. <div class="ttc" id="classutl_1_1in__dev_html_a374e6cc495d5885ee6be8973c5f4eb8e"><div class="ttname"><a href="classutl_1_1in__dev.html#a374e6cc495d5885ee6be8973c5f4eb8e">utl::in_dev::get_</a></div><div class="ttdeci">size_t get_(data_t *data, size_t n)</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00080">in_dev.h:80</a></div></div>
  131. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a2b723a67fce37e74b594ee9c5dc07030"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a2b723a67fce37e74b594ee9c5dc07030">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;::end</a></div><div class="ttdeci">const_iterator end() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00280">in_dev.h:280</a></div></div>
  132. <div class="ttc" id="structutl_1_1virtual__tag_html"><div class="ttname"><a href="structutl_1_1virtual__tag.html">utl::virtual_tag</a></div><div class="ttdoc">virtual support tag type </div><div class="ttdef"><b>Definition:</b> <a href="crtp_8h_source.html#l00040">crtp.h:40</a></div></div>
  133. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;</a></div><div class="ttdoc">A virtual base class specialization. </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00174">in_dev.h:174</a></div></div>
  134. <div class="ttc" id="classutl_1_1in__dev_html_a243dbc2e6acd2c2baf56c3c9861a0abf"><div class="ttname"><a href="classutl_1_1in__dev.html#a243dbc2e6acd2c2baf56c3c9861a0abf">utl::in_dev::get_</a></div><div class="ttdeci">size_t get_(data_t &amp;data)</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00079">in_dev.h:79</a></div></div>
  135. <div class="ttc" id="classutl_1_1in__dev_html_ac54d9a1fb6241be460ffc792aac18b24"><div class="ttname"><a href="classutl_1_1in__dev.html#ac54d9a1fb6241be460ffc792aac18b24">utl::in_dev::cend</a></div><div class="ttdeci">const_iterator cend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00161">in_dev.h:161</a></div></div>
  136. <div class="ttc" id="namespaceutl_1_1in__dev__details_html_ad2dad6ed501b94ba1fa9cffade343762"><div class="ttname"><a href="namespaceutl_1_1in__dev__details.html#ad2dad6ed501b94ba1fa9cffade343762">utl::in_dev_details::tryc_end_t</a></div><div class="ttdeci">decltype(declval&lt; const _Tp &gt;().begin()) tryc_end_t</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00302">in_dev.h:302</a></div></div>
  137. <div class="ttc" id="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_ae1960ea2ffdf369a0c180b57007e0af6"><div class="ttname"><a href="classutl_1_1in__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#ae1960ea2ffdf369a0c180b57007e0af6">utl::in_dev&lt; virtual_tag, data_t, streamsize &gt;::cbegin</a></div><div class="ttdeci">const_iterator cbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00276">in_dev.h:276</a></div></div>
  138. <div class="ttc" id="classutl_1_1in__dev_html_ab2158d8a134dff882a3eac2960da04c0"><div class="ttname"><a href="classutl_1_1in__dev.html#ab2158d8a134dff882a3eac2960da04c0">utl::in_dev::begin</a></div><div class="ttdeci">iterator begin() noexcept</div><div class="ttdoc">.begin implementation </div><div class="ttdef"><b>Definition:</b> <a href="in__dev_8h_source.html#l00154">in_dev.h:154</a></div></div>
  139. <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>
  140. </div><!-- fragment --></div><!-- contents -->
  141. </div><!-- doc-content -->
  142. <!-- start footer part -->
  143. <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  144. <ul>
  145. <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_e9da18de27e34a68f4aee9f9a960d991.html">dev</a></li><li class="navelem"><a class="el" href="in__dev_8h.html">in_dev.h</a></li>
  146. <li class="footer">Generated by
  147. <a href="http://www.doxygen.org/index.html">
  148. <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  149. </ul>
  150. </div>
  151. </body>
  152. </html>