|
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=9"/>
- <meta name="generator" content="Doxygen 1.8.14"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>uTL: include/utl/dev/inbuf_dev.h Source File</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- $(document).ready(initResizable);
- /* @license-end */</script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr style="height: 56px;">
- <td id="projectalign" style="padding-left: 0.5em;">
- <div id="projectname">uTL
- </div>
- <div id="projectbrief">micro Template library</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.8.14 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- var searchBox = new SearchBox("searchBox", "search",false,'Search');
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- $(function() {
- initMenu('',true,false,'search.php','Search');
- $(document).ready(function() { init_search(); });
- });
- /* @license-end */</script>
- <div id="main-nav"></div>
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&dn=gpl-2.0.txt GPL-v2 */
- $(document).ready(function(){initNavTree('inbuf__dev_8h_source.html','');});
- /* @license-end */
- </script>
- <div id="doc-content">
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
-
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <iframe src="javascript:void(0)" frameborder="0"
- name="MSearchResults" id="MSearchResults">
- </iframe>
- </div>
-
- <div class="header">
- <div class="headertitle">
- <div class="title">inbuf_dev.h</div> </div>
- </div><!--header-->
- <div class="contents">
- <a href="inbuf__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> </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor">#ifndef __utl_dev_inbuf_dev_h__</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor">#define __utl_dev_inbuf_dev_h__</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span> </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#include <<a class="code" href="impl_8h.html">utl/core/impl.h</a>></span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include <<a class="code" href="crtp_8h.html">utl/core/crtp.h</a>></span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include <<a class="code" href="dev__iterators_8h.html">utl/dev/dev_iterators.h</a>></span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include <<a class="code" href="meta_8h.html">utl/meta/meta.h</a>></span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="keyword">namespace </span><a class="code" href="namespaceutl.html">utl</a> {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> impl_t, <span class="keyword">typename</span> data_t, <span class="keywordtype">size_t</span> streamsize =0></div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html"> 55</a></span>  <span class="keyword">class </span><a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev</a> {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  <a class="code" href="classutl_1_1inbuf__dev.html#a6fe2f35813f2b4e94d8d21a4403c8221">_CRTP_IMPL</a>(impl_t);</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b"> 57</a></span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev_t</a> = <a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev <impl_t, data_t, streamsize></a>; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#ae660dce5b5111b0ea4743e32b3d2c3aa"> 62</a></span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev.html#ae660dce5b5111b0ea4743e32b3d2c3aa">data_type</a> = data_t;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a345d3b465e9cf57ebe3a8df31b67fec7"> 63</a></span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev.html#a345d3b465e9cf57ebe3a8df31b67fec7">pointer_type</a> = data_t*;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#ae429fbf167bbd96b2cc46094f3540b10"> 65</a></span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev.html">type</a> = <a class="code" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  <span class="keyword">protected</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  <a class="code" href="classutl_1_1inbuf__dev.html#a55763f1c3ba5610404df70bda1abe75b">~inbuf_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <a class="code" href="classutl_1_1inbuf__dev.html#a9bc1f15ed57132539749d390d5bb03b9">inbuf_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <a class="code" href="classutl_1_1inbuf__dev.html#a9bc1f15ed57132539749d390d5bb03b9">inbuf_dev</a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev_t</a>&) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev_t</a>& <a class="code" href="classutl_1_1inbuf__dev.html#a7aaf5bc892d6247cb6bb547cf331704c">operator= </a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev_t</a>&) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span> </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#ac7af0c7df9eee2bcf02579b0fd1d8dea"> 81</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1inbuf__dev.html#ac7af0c7df9eee2bcf02579b0fd1d8dea">in_avail_</a> () { <span class="keywordflow">return</span> impl().in_avail_(); }</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6"> 82</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (data_t& data) { <span class="keywordflow">return</span> impl().get_(data); }</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a2f835b56beec0efc5d1cd2088e6a40cb"> 83</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1inbuf__dev.html#a2f835b56beec0efc5d1cd2088e6a40cb">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="l00085"></a><span class="lineno"> 85</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#aa5b71a9b0c989c4686a053e9d5df9251"> 95</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1inbuf__dev.html#aa5b71a9b0c989c4686a053e9d5df9251">in_avail</a> () {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#ac7af0c7df9eee2bcf02579b0fd1d8dea">in_avail_</a> ();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span> </div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a7856963b0bb0bf294be53ea20f3564d0"> 108</a></span>  <span class="keywordtype">size_t</span> <span class="keyword">get</span> (data_t& data) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (data);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span> </div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a9290fbfeebac0d161f800bc1522ea5a6"> 120</a></span>  <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="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (data, n);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span> </div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> _Dst_t></div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185"> 140</a></span>  <a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev_t</a>& <a class="code" href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185">operator>> </a>(_Dst_t& dst) {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  static_assert ((<span class="keyword">sizeof</span> (_Dst_t)%<span class="keyword">sizeof</span>(data_t) == 0),</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <span class="stringliteral">"Target size must be an integer multiple of device's data size"</span>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (reinterpret_cast<data_t*>(&dst), <span class="keyword">sizeof</span>(_Dst_t)/<span class="keyword">sizeof</span>(data_t));</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> _Dst_t></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  <a class="code" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>& <a class="code" href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185">operator>> </a>(_Dst_t* dst) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span> </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a6b11ed7628520b4dfe0bd438ccc58197"> 151</a></span>  <a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev_t</a>& <a class="code" href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185">operator>> </a>(data_t& dst) {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (dst);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a> = <a class="code" href="classutl_1_1indev__it.html">indev_it <inbuf_dev_t, data_t*, streamsize></a>; </div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24"> 162</a></span>  <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 <inbuf_dev_t, const data_t*, streamsize></a>; </div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span> </div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a0b7b02345e2306dc9f62a75029de71fb"> 165</a></span>  <a class="code" href="classutl_1_1indev__it.html">iterator</a> <a class="code" href="classutl_1_1inbuf__dev.html#a0b7b02345e2306dc9f62a75029de71fb">begin</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#acf6f21857302843661cdbbbeea61f05b"> 166</a></span>  <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1inbuf__dev.html#acf6f21857302843661cdbbbeea61f05b">begin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a3c24ad3be57e15019e3fbd579e5fccb3"> 167</a></span>  <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1inbuf__dev.html#a3c24ad3be57e15019e3fbd579e5fccb3">cbegin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#aea05a40b3c8966d1dd3978b40e0c6ac8"> 170</a></span>  <a class="code" href="classutl_1_1indev__it.html">iterator</a> <a class="code" href="classutl_1_1inbuf__dev.html#aea05a40b3c8966d1dd3978b40e0c6ac8">end</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#aa862f748551da0bd92341f8f125b8aa3"> 171</a></span>  <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1inbuf__dev.html#aa862f748551da0bd92341f8f125b8aa3">end</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev.html#a4b51121e0ecc1d43fd3fe7d05bb6fa56"> 172</a></span>  <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1inbuf__dev.html#a4b51121e0ecc1d43fd3fe7d05bb6fa56">cend</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  };</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span> </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span> </div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span> </div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> data_t, <span class="keywordtype">size_t</span> streamsize></div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html"> 188</a></span>  <span class="keyword">class </span><a class="code" href="classutl_1_1inbuf__dev.html">inbuf_dev</a> <<a class="code" href="structutl_1_1virtual__tag.html">virtual_tag</a>, data_t, streamsize> {</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a368e42d8a91039e938145d78980b415b"> 190</a></span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">inbuf_dev_t</a> = <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">inbuf_dev <virtual_tag, data_t, streamsize></a>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span> </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a261cc04ccf7edd02e1ab69225322dc4b"> 195</a></span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a261cc04ccf7edd02e1ab69225322dc4b">data_type</a> = data_t;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a9d035a944db280e98fd41260ed463000"> 196</a></span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a9d035a944db280e98fd41260ed463000">pointer_type</a> = data_t*;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#af6c21cf92d9bffdd58fb4aa8f5ddb83f"> 198</a></span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">type</a> = <a class="code" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>; </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  <span class="keyword">virtual</span> <a class="code" href="classutl_1_1inbuf__dev.html#a55763f1c3ba5610404df70bda1abe75b">~inbuf_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">protected</span>:</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <a class="code" href="classutl_1_1inbuf__dev.html#a9bc1f15ed57132539749d390d5bb03b9">inbuf_dev</a> () = <span class="keywordflow">default</span>; </div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <a class="code" href="classutl_1_1inbuf__dev.html#a9bc1f15ed57132539749d390d5bb03b9">inbuf_dev</a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">inbuf_dev_t</a>&) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">inbuf_dev_t</a>& <a class="code" href="classutl_1_1inbuf__dev.html#a7aaf5bc892d6247cb6bb547cf331704c">operator= </a>(<span class="keyword">const</span> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">inbuf_dev_t</a>&) = <span class="keyword">delete</span>; </div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span> </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">private</span>:</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1inbuf__dev.html#ac7af0c7df9eee2bcf02579b0fd1d8dea">in_avail_</a> () = 0;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span> </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (data_t& data) = 0;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span> </div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">virtual</span> <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (data_t* data, <span class="keywordtype">size_t</span> n) = 0;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span> </div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keyword">public</span>:</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aba2a9c8e96a8a865e1a24b52600a9f13"> 250</a></span>  <span class="keywordtype">size_t</span> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aba2a9c8e96a8a865e1a24b52600a9f13">in_avail</a>() { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#ac7af0c7df9eee2bcf02579b0fd1d8dea">in_avail_</a>(); }</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aef2177d9f52b58b6b5f5c9115fbc893e"> 251</a></span>  <span class="keywordtype">size_t</span> <span class="keyword">get</span> (data_t& data) { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (data); }</div><div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#ac2028f0e3b8f48e12bbcbf22cecbfe83"> 252</a></span>  <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_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (data, n); }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> _Dst_t></div><div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a84a3364ab33a4fa6ac0983da47a9276f"> 269</a></span>  <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">inbuf_dev_t</a>& <a class="code" href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185">operator>> </a>(_Dst_t& dst) {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  static_assert ((<span class="keyword">sizeof</span> (_Dst_t)%<span class="keyword">sizeof</span>(data_t) == 0),</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <span class="stringliteral">"Target size must be an integer multiple of device's data size"</span>);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (reinterpret_cast<data_t*>(&dst), <span class="keyword">sizeof</span>(_Dst_t)/<span class="keyword">sizeof</span>(data_t));</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> _Dst_t></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  <a class="code" href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">inbuf_dev_t</a>& <a class="code" href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185">operator>> </a>(_Dst_t* dst) = <span class="keyword">delete</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aefdbcf1d006494f612d6fcd8795ba472"> 280</a></span>  <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">inbuf_dev_t</a>& <a class="code" href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185">operator>> </a>(data_t& dst) {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <a class="code" href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">get_</a> (dst);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span> </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">using</span> <a class="code" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a> = <a class="code" href="classutl_1_1indev__it.html">indev_it <inbuf_dev_t, data_t*, streamsize></a>; </div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aa27a4fdb726f1b44d965ebcd84457aab"> 291</a></span>  <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 <inbuf_dev_t, const data_t*, streamsize></a>; </div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> </div><div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a70046c3c1e61b596c7e49f1f45510644"> 294</a></span>  <a class="code" href="classutl_1_1indev__it.html">iterator</a> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a70046c3c1e61b596c7e49f1f45510644">begin</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a5367418a80e15d0f087acc6b977c911c"> 295</a></span>  <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a5367418a80e15d0f087acc6b977c911c">begin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a6c8cceaa03a16daff1db33f45c79082c"> 296</a></span>  <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a6c8cceaa03a16daff1db33f45c79082c">cbegin</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>(<span class="keyword">this</span>, iterator::init); }</div><div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a0a85ea0b10edeb155b59d1a3dff43382"> 299</a></span>  <a class="code" href="classutl_1_1indev__it.html">iterator</a> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a0a85ea0b10edeb155b59d1a3dff43382">end</a> () noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aa81447a9ed7f2428f587b42ecf8bc007"> 300</a></span>  <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aa81447a9ed7f2428f587b42ecf8bc007">end</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#abe9c16e5322249a05df6eb968a8adb56"> 301</a></span>  <a class="code" href="classutl_1_1indev__it.html">const_iterator</a> <a class="code" href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#abe9c16e5322249a05df6eb968a8adb56">cend</a> () const noexcept { <span class="keywordflow">return</span> <a class="code" href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">const_iterator</a>(<span class="keyword">this</span>, iterator::eos); }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>  };</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span> </div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="preprocessor">#if defined _utl_have_concepts</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> _Tp></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  concept <span class="keywordtype">bool</span> <a class="code" href="namespaceutl.html#ac447a457f18a1c4dcd1dddb4c2789006">Inbuf_dev</a> = requires (_Tp t, <span class="keyword">const</span> _Tp ct, <span class="keyword">typename</span> _Tp::data_type v) {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  <span class="comment">// Object type</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> <span class="comment">// requires std::is_default_constructible<_Tp>::value;</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  requires !std::is_copy_constructible<_Tp>::value;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  requires !std::is_copy_assignable<_Tp>::value;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="comment">// Methods</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  {t.get(v, 0)} -> <a class="code" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  {t.get(&v, 1, 0)} -> <a class="code" href="namespaceutl.html#a22cbecb50ee5c1032de66133e96cbac6">size_t</a>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  <span class="comment">// Operators</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  t >> v;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="comment">// Iterators</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keyword">typename</span> _Tp::const_iterator; <span class="comment">//XXX: change to concept: is_idxdev_iterator<_Tp></span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  requires Indev_it<typename _Tp::iterator>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="comment">//requires Indev_it<typename _Tp::const_iterator>;</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  { t.begin() } -> <span class="keyword">typename</span> _Tp::iterator;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment">// {ct.begin()} -> typename _Tp::const_iterator;</span></div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment">// { t.cbegin()} -> typename _Tp::const_iterator;</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  { t.end() } -> <span class="keyword">typename</span> _Tp::iterator;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span> <span class="comment">// {ct.end()} -> typename _Tp::const_iterator;</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="comment">// { t.cend()} -> typename _Tp::const_iterator;</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  };</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span> <span class="preprocessor">#else</span></div><div class="line"><a name="l00334"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html"> 334</a></span>  <span class="keyword">namespace </span>inbuf_dev_details {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keyword">using</span> std::declval;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span> </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="comment">// main api members</span></div><div class="line"><a name="l00338"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html#a72a6469ab9ce0cba618dd0b554fc2dd2"> 338</a></span>  <span class="keyword">template</span> <<span class="keyword">class</span> _Tp> <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1inbuf__dev__details.html#a72a6469ab9ce0cba618dd0b554fc2dd2">try_get1_t</a> = decltype (declval<_Tp>().<span class="keyword">get</span> (declval<typename _Tp::data_type&>()));</div><div class="line"><a name="l00339"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html#af09ed69d129c33b8a6d3f79c79b8ea35"> 339</a></span>  <span class="keyword">template</span> <<span class="keyword">class</span> _Tp> <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1inbuf__dev__details.html#af09ed69d129c33b8a6d3f79c79b8ea35">try_get2_t</a> = decltype (declval<_Tp>().<span class="keyword">get</span> (declval<typename _Tp::data_type*>(), declval<size_t>()));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="comment">// operators</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="comment">//template <class _Tp> using try_extract_t= decltype (declval<_Tp>() >> declval<typename _Tp::data_type&>());</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="comment">// iterator members</span></div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html#a18d5c5e879b4714f58861ad411537d53"> 343</a></span>  <span class="keyword">template</span> <<span class="keyword">class</span> _Tp> <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1inbuf__dev__details.html#a18d5c5e879b4714f58861ad411537d53">try_begin_t</a> = decltype (declval<_Tp>().begin());</div><div class="line"><a name="l00344"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html#adff91b885ea1831691d4619d360bb72b"> 344</a></span>  <span class="keyword">template</span> <<span class="keyword">class</span> _Tp> <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1inbuf__dev__details.html#adff91b885ea1831691d4619d360bb72b">tryc_begin_t</a> = decltype (declval<const _Tp>().begin());</div><div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html#a351202ead58a98a2eaad4f3987b6170c"> 345</a></span>  <span class="keyword">template</span> <<span class="keyword">class</span> _Tp> <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1inbuf__dev__details.html#a351202ead58a98a2eaad4f3987b6170c">try_cbegin_t</a> = decltype (declval<const _Tp>().cbegin());</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html#a5d4aa9d57c443c33cf08375e0c51bdd3"> 346</a></span>  <span class="keyword">template</span> <<span class="keyword">class</span> _Tp> <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1inbuf__dev__details.html#a5d4aa9d57c443c33cf08375e0c51bdd3">try_end_t</a> = decltype (declval<_Tp>().begin());</div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html#a858c7a1a0b1d8d0bdc91ce681aa1b996"> 347</a></span>  <span class="keyword">template</span> <<span class="keyword">class</span> _Tp> <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1inbuf__dev__details.html#a858c7a1a0b1d8d0bdc91ce681aa1b996">tryc_end_t</a> = decltype (declval<const _Tp>().begin());</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="namespaceutl_1_1inbuf__dev__details.html#a24eae32ecbea1291607f16d92c2b029a"> 348</a></span>  <span class="keyword">template</span> <<span class="keyword">class</span> _Tp> <span class="keyword">using</span> <a class="code" href="namespaceutl_1_1inbuf__dev__details.html#a24eae32ecbea1291607f16d92c2b029a">try_cend_t</a> = decltype (declval<const _Tp>().cend());</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span> </div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> _Tp, <span class="keyword">typename</span> =<span class="keywordtype">void</span>></div><div class="line"><a name="l00352"></a><span class="lineno"><a class="line" href="structutl_1_1inbuf__dev__details_1_1is__inbuf__dev__.html"> 352</a></span>  <span class="keyword">struct </span><a class="code" href="structutl_1_1inbuf__dev__details_1_1is__inbuf__dev__.html">is_inbuf_dev_</a> : <a class="code" href="namespaceutl_1_1meta.html#a55511dbaa0adb605ce22dcec11f8d22d">false_</a> {};</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span> </div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> _Tp></div><div class="line"><a name="l00356"></a><span class="lineno"><a class="line" href="structutl_1_1inbuf__dev__details_1_1is__inbuf__dev___3_01___tp_00_01void__t_3_01typename_01___tpc269ee3885240cc8c352f3c6b3a67cd7.html"> 356</a></span>  <span class="keyword">struct </span><a class="code" href="structutl_1_1inbuf__dev__details_1_1is__inbuf__dev__.html">is_inbuf_dev_</a> <_Tp,</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <a class="code" href="group__detection.html#gae7373c997420d16cf37e542eb3cfa3ad">void_t</a> <</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  typename _Tp::data_type,</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  typename _Tp::pointer_type,</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  typename _Tp::iterator,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  typename _Tp::const_iterator,</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> <try_get1_t <_Tp>, size_t>,</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> <try_get2_t <_Tp>, size_t>,</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="comment">//if_same_t <try_extract_t<_Tp>,typename _Tp&>,</span></div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> <try_begin_t<_Tp>, typename _Tp::iterator>,</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>  <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> <tryc_begin_t<_Tp>, typename _Tp::const_iterator>,</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> <try_cbegin_t<_Tp>, typename _Tp::const_iterator>,</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> <try_end_t<_Tp>, typename _Tp::iterator>,</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> <tryc_end_t<_Tp>, typename _Tp::const_iterator>,</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <a class="code" href="namespaceutl.html#ac5e425d39e8ee62e68664c6166d02d0c">use_if_same_t</a> <try_cend_t<_Tp>, typename _Tp::const_iterator></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  ></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  > : <a class="code" href="namespaceutl_1_1meta.html#ae9a5a8fbe8202785f059935af219fb97">true_</a> {};</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keyword">template</span> <<span class="keyword">typename</span> _Tp></div><div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="namespaceutl.html#ac447a457f18a1c4dcd1dddb4c2789006"> 380</a></span>  constexpr <span class="keywordtype">bool</span> <a class="code" href="namespaceutl.html#ac447a457f18a1c4dcd1dddb4c2789006">Inbuf_dev</a> = <a class="code" href="structutl_1_1inbuf__dev__details_1_1is__inbuf__dev__.html">inbuf_dev_details::is_inbuf_dev_ <_Tp>::value</a>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span> <span class="preprocessor">#endif</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span> }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span> </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor">#endif </span><span class="comment">/* #ifndef __utl_dev_inbuf_dev_h__ */</span><span class="preprocessor"></span></div><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>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_abd832bf35fa1ae0881e8cd86386e5b6b"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#abd832bf35fa1ae0881e8cd86386e5b6b">utl::inbuf_dev::inbuf_dev_t</a></div><div class="ttdeci">inbuf_dev< impl_t, data_t, streamsize > inbuf_dev_t</div><div class="ttdoc">class type syntactic sugar </div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00057">inbuf_dev.h:57</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_ab2be58702c31d59e02683d5ff43c9dd6"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#ab2be58702c31d59e02683d5ff43c9dd6">utl::inbuf_dev::get_</a></div><div class="ttdeci">size_t get_(data_t &data)</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00082">inbuf_dev.h:82</a></div></div>
- <div class="ttc" id="namespaceutl_1_1inbuf__dev__details_html_a24eae32ecbea1291607f16d92c2b029a"><div class="ttname"><a href="namespaceutl_1_1inbuf__dev__details.html#a24eae32ecbea1291607f16d92c2b029a">utl::inbuf_dev_details::try_cend_t</a></div><div class="ttdeci">decltype(declval< const _Tp >().cend()) try_cend_t</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00348">inbuf_dev.h:348</a></div></div>
- <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>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_acf6f21857302843661cdbbbeea61f05b"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#acf6f21857302843661cdbbbeea61f05b">utl::inbuf_dev::begin</a></div><div class="ttdeci">const_iterator begin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00166">inbuf_dev.h:166</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_aa81447a9ed7f2428f587b42ecf8bc007"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aa81447a9ed7f2428f587b42ecf8bc007">utl::inbuf_dev< virtual_tag, data_t, streamsize >::end</a></div><div class="ttdeci">const_iterator end() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00300">inbuf_dev.h:300</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a4b51121e0ecc1d43fd3fe7d05bb6fa56"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a4b51121e0ecc1d43fd3fe7d05bb6fa56">utl::inbuf_dev::cend</a></div><div class="ttdeci">const_iterator cend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00172">inbuf_dev.h:172</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a345d3b465e9cf57ebe3a8df31b67fec7"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a345d3b465e9cf57ebe3a8df31b67fec7">utl::inbuf_dev::pointer_type</a></div><div class="ttdeci">data_t * pointer_type</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00063">inbuf_dev.h:63</a></div></div>
- <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_< true > 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>
- <div class="ttc" id="crtp_8h_html"><div class="ttname"><a href="crtp_8h.html">crtp.h</a></div></div>
- <div class="ttc" id="namespaceutl_1_1inbuf__dev__details_html_adff91b885ea1831691d4619d360bb72b"><div class="ttname"><a href="namespaceutl_1_1inbuf__dev__details.html#adff91b885ea1831691d4619d360bb72b">utl::inbuf_dev_details::tryc_begin_t</a></div><div class="ttdeci">decltype(declval< const _Tp >().begin()) tryc_begin_t</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00344">inbuf_dev.h:344</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a0b7b02345e2306dc9f62a75029de71fb"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a0b7b02345e2306dc9f62a75029de71fb">utl::inbuf_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="inbuf__dev_8h_source.html#l00165">inbuf_dev.h:165</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_aea05a40b3c8966d1dd3978b40e0c6ac8"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#aea05a40b3c8966d1dd3978b40e0c6ac8">utl::inbuf_dev::end</a></div><div class="ttdeci">iterator end() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00170">inbuf_dev.h:170</a></div></div>
- <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< meta::enable_if< meta::same_< _T1, _T2 >::value, _Ret > > use_if_same_t</div><div class="ttdef"><b>Definition:</b> <a href="stl_8h_source.html#l00055">stl.h:55</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a9bc1f15ed57132539749d390d5bb03b9"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a9bc1f15ed57132539749d390d5bb03b9">utl::inbuf_dev::inbuf_dev</a></div><div class="ttdeci">inbuf_dev()=default</div><div class="ttdoc">A default constructor from derived only. </div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a2f835b56beec0efc5d1cd2088e6a40cb"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a2f835b56beec0efc5d1cd2088e6a40cb">utl::inbuf_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="inbuf__dev_8h_source.html#l00083">inbuf_dev.h:83</a></div></div>
- <div class="ttc" id="namespaceutl_1_1inbuf__dev__details_html_af09ed69d129c33b8a6d3f79c79b8ea35"><div class="ttname"><a href="namespaceutl_1_1inbuf__dev__details.html#af09ed69d129c33b8a6d3f79c79b8ea35">utl::inbuf_dev_details::try_get2_t</a></div><div class="ttdeci">decltype(declval< _Tp >().get(declval< typename _Tp::data_type * >(), declval< size_t >())) try_get2_t</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00339">inbuf_dev.h:339</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_aba2a9c8e96a8a865e1a24b52600a9f13"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#aba2a9c8e96a8a865e1a24b52600a9f13">utl::inbuf_dev< virtual_tag, data_t, streamsize >::in_avail</a></div><div class="ttdeci">size_t in_avail()</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00250">inbuf_dev.h:250</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a3c24ad3be57e15019e3fbd579e5fccb3"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a3c24ad3be57e15019e3fbd579e5fccb3">utl::inbuf_dev::cbegin</a></div><div class="ttdeci">const_iterator cbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00167">inbuf_dev.h:167</a></div></div>
- <div class="ttc" id="namespaceutl_html_ac447a457f18a1c4dcd1dddb4c2789006"><div class="ttname"><a href="namespaceutl.html#ac447a457f18a1c4dcd1dddb4c2789006">utl::Inbuf_dev</a></div><div class="ttdeci">constexpr bool Inbuf_dev</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00380">inbuf_dev.h:380</a></div></div>
- <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_< false > 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>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a9d035a944db280e98fd41260ed463000"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a9d035a944db280e98fd41260ed463000">utl::inbuf_dev< virtual_tag, data_t, streamsize >::pointer_type</a></div><div class="ttdeci">data_t * pointer_type</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00196">inbuf_dev.h:196</a></div></div>
- <div class="ttc" id="namespaceutl_1_1inbuf__dev__details_html_a72a6469ab9ce0cba618dd0b554fc2dd2"><div class="ttname"><a href="namespaceutl_1_1inbuf__dev__details.html#a72a6469ab9ce0cba618dd0b554fc2dd2">utl::inbuf_dev_details::try_get1_t</a></div><div class="ttdeci">decltype(declval< _Tp >().get(declval< typename _Tp::data_type & >())) try_get1_t</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00338">inbuf_dev.h:338</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a0a85ea0b10edeb155b59d1a3dff43382"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a0a85ea0b10edeb155b59d1a3dff43382">utl::inbuf_dev< virtual_tag, data_t, streamsize >::end</a></div><div class="ttdeci">iterator end() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00299">inbuf_dev.h:299</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_ac7af0c7df9eee2bcf02579b0fd1d8dea"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#ac7af0c7df9eee2bcf02579b0fd1d8dea">utl::inbuf_dev::in_avail_</a></div><div class="ttdeci">size_t in_avail_()</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00081">inbuf_dev.h:81</a></div></div>
- <div class="ttc" id="namespaceutl_1_1inbuf__dev__details_html_a858c7a1a0b1d8d0bdc91ce681aa1b996"><div class="ttname"><a href="namespaceutl_1_1inbuf__dev__details.html#a858c7a1a0b1d8d0bdc91ce681aa1b996">utl::inbuf_dev_details::tryc_end_t</a></div><div class="ttdeci">decltype(declval< const _Tp >().begin()) tryc_end_t</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00347">inbuf_dev.h:347</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a55763f1c3ba5610404df70bda1abe75b"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a55763f1c3ba5610404df70bda1abe75b">utl::inbuf_dev::~inbuf_dev</a></div><div class="ttdeci">~inbuf_dev()=default</div><div class="ttdoc">Allow destructor from derived only. </div></div>
- <div class="ttc" id="namespaceutl_1_1inbuf__dev__details_html_a5d4aa9d57c443c33cf08375e0c51bdd3"><div class="ttname"><a href="namespaceutl_1_1inbuf__dev__details.html#a5d4aa9d57c443c33cf08375e0c51bdd3">utl::inbuf_dev_details::try_end_t</a></div><div class="ttdeci">decltype(declval< _Tp >().begin()) try_end_t</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00346">inbuf_dev.h:346</a></div></div>
- <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>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a173c37503cdd40e7ac1be25759553c24"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a173c37503cdd40e7ac1be25759553c24">utl::inbuf_dev::const_iterator</a></div><div class="ttdeci">indev_it< inbuf_dev_t, const data_t *, streamsize > const_iterator</div><div class="ttdoc">Const iterator. </div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00162">inbuf_dev.h:162</a></div></div>
- <div class="ttc" id="namespaceutl_html"><div class="ttname"><a href="namespaceutl.html">utl</a></div><div class="ttdoc">STL&#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>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a0c0827ae69fac778cec3abb179bfc0f3"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a0c0827ae69fac778cec3abb179bfc0f3">utl::inbuf_dev::iterator</a></div><div class="ttdeci">indev_it< inbuf_dev_t, data_t *, streamsize > iterator</div><div class="ttdoc">Iterator. </div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00161">inbuf_dev.h:161</a></div></div>
- <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 "future call" 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>
- <div class="ttc" id="namespaceutl_1_1inbuf__dev__details_html_a18d5c5e879b4714f58861ad411537d53"><div class="ttname"><a href="namespaceutl_1_1inbuf__dev__details.html#a18d5c5e879b4714f58861ad411537d53">utl::inbuf_dev_details::try_begin_t</a></div><div class="ttdeci">decltype(declval< _Tp >().begin()) try_begin_t</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00343">inbuf_dev.h:343</a></div></div>
- <div class="ttc" id="structutl_1_1inbuf__dev__details_1_1is__inbuf__dev___html"><div class="ttname"><a href="structutl_1_1inbuf__dev__details_1_1is__inbuf__dev__.html">utl::inbuf_dev_details::is_inbuf_dev_</a></div><div class="ttdoc">Primary template to catch any non input device types. </div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00352">inbuf_dev.h:352</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_ae660dce5b5111b0ea4743e32b3d2c3aa"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#ae660dce5b5111b0ea4743e32b3d2c3aa">utl::inbuf_dev::data_type</a></div><div class="ttdeci">data_t data_type</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00062">inbuf_dev.h:62</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_aca17fb240dfe221effa5a2092563d185"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#aca17fb240dfe221effa5a2092563d185">utl::inbuf_dev::operator>></a></div><div class="ttdeci">inbuf_dev_t & operator>>(_Dst_t &dst)</div><div class="ttdoc">Template operator >> implementation for for all by value/ref parameters. </div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00140">inbuf_dev.h:140</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_abe9c16e5322249a05df6eb968a8adb56"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#abe9c16e5322249a05df6eb968a8adb56">utl::inbuf_dev< virtual_tag, data_t, streamsize >::cend</a></div><div class="ttdeci">const_iterator cend() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00301">inbuf_dev.h:301</a></div></div>
- <div class="ttc" id="namespaceutl_1_1inbuf__dev__details_html_a351202ead58a98a2eaad4f3987b6170c"><div class="ttname"><a href="namespaceutl_1_1inbuf__dev__details.html#a351202ead58a98a2eaad4f3987b6170c">utl::inbuf_dev_details::try_cbegin_t</a></div><div class="ttdeci">decltype(declval< const _Tp >().cbegin()) try_cbegin_t</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00345">inbuf_dev.h:345</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a261cc04ccf7edd02e1ab69225322dc4b"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a261cc04ccf7edd02e1ab69225322dc4b">utl::inbuf_dev< virtual_tag, data_t, streamsize >::data_type</a></div><div class="ttdeci">data_t data_type</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00195">inbuf_dev.h:195</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a6fe2f35813f2b4e94d8d21a4403c8221"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a6fe2f35813f2b4e94d8d21a4403c8221">utl::inbuf_dev::_CRTP_IMPL</a></div><div class="ttdeci">_CRTP_IMPL(impl_t)</div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_aa862f748551da0bd92341f8f125b8aa3"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#aa862f748551da0bd92341f8f125b8aa3">utl::inbuf_dev::end</a></div><div class="ttdeci">const_iterator end() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00171">inbuf_dev.h:171</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a70046c3c1e61b596c7e49f1f45510644"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a70046c3c1e61b596c7e49f1f45510644">utl::inbuf_dev< virtual_tag, data_t, streamsize >::begin</a></div><div class="ttdeci">iterator begin() noexcept</div><div class="ttdoc">.begin implementation </div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00294">inbuf_dev.h:294</a></div></div>
- <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>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_a7aaf5bc892d6247cb6bb547cf331704c"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#a7aaf5bc892d6247cb6bb547cf331704c">utl::inbuf_dev::operator=</a></div><div class="ttdeci">inbuf_dev_t & operator=(const inbuf_dev_t &)=delete</div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a5367418a80e15d0f087acc6b977c911c"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a5367418a80e15d0f087acc6b977c911c">utl::inbuf_dev< virtual_tag, data_t, streamsize >::begin</a></div><div class="ttdeci">const_iterator begin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00295">inbuf_dev.h:295</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html">utl::inbuf_dev< virtual_tag, data_t, streamsize ></a></div><div class="ttdoc">A virtual base class specialization. </div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00188">inbuf_dev.h:188</a></div></div>
- <div class="ttc" id="classutl_1_1inbuf__dev_html"><div class="ttname"><a href="classutl_1_1inbuf__dev.html">utl::inbuf_dev</a></div><div class="ttdoc">Abstract base class for input buffered devices. </div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00055">inbuf_dev.h:55</a></div></div>
- <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>
- <div class="ttc" id="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4_html_a6c8cceaa03a16daff1db33f45c79082c"><div class="ttname"><a href="classutl_1_1inbuf__dev_3_01virtual__tag_00_01data__t_00_01streamsize_01_4.html#a6c8cceaa03a16daff1db33f45c79082c">utl::inbuf_dev< virtual_tag, data_t, streamsize >::cbegin</a></div><div class="ttdeci">const_iterator cbegin() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00296">inbuf_dev.h:296</a></div></div>
- <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>
- <div class="ttc" id="classutl_1_1inbuf__dev_html_aa5b71a9b0c989c4686a053e9d5df9251"><div class="ttname"><a href="classutl_1_1inbuf__dev.html#aa5b71a9b0c989c4686a053e9d5df9251">utl::inbuf_dev::in_avail</a></div><div class="ttdeci">size_t in_avail()</div><div class="ttdef"><b>Definition:</b> <a href="inbuf__dev_8h_source.html#l00095">inbuf_dev.h:95</a></div></div>
- </div><!-- fragment --></div><!-- contents -->
- </div><!-- doc-content -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <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="inbuf__dev_8h.html">inbuf_dev.h</a></li>
- <li class="footer">Generated by
- <a href="http://www.doxygen.org/index.html">
- <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
- </ul>
- </div>
- </body>
- </html>
|