blob: 8a78f9c90550ee3200b68f811a88d779156e658f [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>mxnet: /work/mxnet/include/mxnet/runtime/container_ext.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="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">mxnet
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li><li class="navelem"><a class="el" href="dir_1143c7affb9ebd026cb6818dd282def7.html">mxnet</a></li><li class="navelem"><a class="el" href="dir_8e7a93613ef4c7e7d673effa691c1739.html">runtime</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">container_ext.h</div> </div>
</div><!--header-->
<div class="contents">
<a href="container__ext_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;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * with the License. You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * KIND, either express or implied. See the License for the</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * under the License.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment">// Acknowledgement: This file originates from dgl</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#ifndef MXNET_RUNTIME_CONTAINER_EXT_H_</span></div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define MXNET_RUNTIME_CONTAINER_EXT_H_</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;dmlc/logging.h&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="include_2mxnet_2runtime_2memory_8h.html">mxnet/runtime/memory.h</a>&gt;</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;<a class="code" href="object_8h.html">mxnet/runtime/object.h</a>&gt;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &lt;string_view&gt;</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &lt;initializer_list&gt;</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &lt;type_traits&gt;</span></div>
<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;unordered_map&gt;</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; </div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespacemxnet.html">mxnet</a> {</div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">namespace </span>runtime {</div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="comment">// Forward declare MXNetArgValue</span></div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span>MXNetArgValue;</div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; </div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="structmxnet_1_1runtime_1_1ObjectRefHash.html"> 46</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1runtime_1_1ObjectRefHash.html">ObjectRefHash</a> {</div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="structmxnet_1_1runtime_1_1ObjectRefHash.html#a7279d023e8c5ffbf58cbbb5620956757">operator()</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>&amp; a) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;};</div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structmxnet_1_1runtime_1_1ObjectRefEqual.html"> 56</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structmxnet_1_1runtime_1_1ObjectRefEqual.html">ObjectRefEqual</a> {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="structmxnet_1_1runtime_1_1ObjectRefEqual.html#a3db6837738cc5616bca97cafce41a1cf">operator()</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>&amp; b) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;};</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html"> 67</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a> : <span class="keyword">public</span> <a class="code" href="classmxnet_1_1runtime_1_1Object.html">Object</a> {</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a70f6a1b8d9ad918d7ca230d533fb3b77"> 70</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">key_type</a> = <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>;</div>
<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a0b3a7098284025acb298da7e7ebeab56"> 72</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">mapped_type</a> = <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a3da2dfce873b062a704389a08cc097fb"> 74</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3da2dfce873b062a704389a08cc097fb">ContainerType</a> = std::unordered_map&lt;ObjectRef, ObjectRef, ObjectRefHash, ObjectRefEqual&gt;;</div>
<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea"> 76</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea">iterator</a> = ContainerType::iterator;</div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a10944f612ffa7db16cac5ec6a2ea1b7f"> 78</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a10944f612ffa7db16cac5ec6a2ea1b7f">const_iterator</a> = ContainerType::const_iterator;</div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a806c3a501188b0cd0d0a5ffae60fec95"> 80</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a806c3a501188b0cd0d0a5ffae60fec95">KVType</a> = ContainerType::value_type;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; static_assert(std::is_standard_layout&lt;KVType&gt;::value, <span class="stringliteral">&quot;KVType is not standard layout&quot;</span>);</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; static_assert(<span class="keyword">sizeof</span>(<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a806c3a501188b0cd0d0a5ffae60fec95">KVType</a>) == 16 || <span class="keyword">sizeof</span>(<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a806c3a501188b0cd0d0a5ffae60fec95">KVType</a>) == 8, <span class="stringliteral">&quot;sizeof(KVType) incorrect&quot;</span>);</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#ab4144de099f74f15de7c0ca8c690c7e7"> 85</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keyword">const</span> uint32_t <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#ab4144de099f74f15de7c0ca8c690c7e7">_type_index</a> = <a class="code" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca7e465197746c27c835cadd7ee0cef82f">runtime::TypeIndex::kMXNetMap</a>;</div>
<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a2b4007e7bd5230d34ae153eb99c28bd3"> 86</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a2b4007e7bd5230d34ae153eb99c28bd3">_type_key</a> = <span class="stringliteral">&quot;MXNet.Map&quot;</span>;</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a05e8227c9fef7640992beb9a1f702cec">MXNET_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>, <a class="code" href="classmxnet_1_1runtime_1_1Object.html">Object</a>);</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; </div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#adcaacacdca47f3d68140a13bb8a73743"> 93</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#adcaacacdca47f3d68140a13bb8a73743">size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.size();</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a64384eb681666549bd4f82346266495c"> 101</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a64384eb681666549bd4f82346266495c">count</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">key_type</a>&amp; key)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.count(key);</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a46c5b45f8b8ec5e4d0bb4297738c2d50"> 109</a></span>&#160; <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">mapped_type</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a46c5b45f8b8ec5e4d0bb4297738c2d50">at</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">key_type</a>&amp; key)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.at(key);</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a183de455cc237d5468d7848cafdaa351"> 117</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">mapped_type</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a183de455cc237d5468d7848cafdaa351">at</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">key_type</a>&amp; key) {</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.at(key);</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div>
<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a687d1326778a7dbbad3385f9353c6e2d"> 121</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea">iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a687d1326778a7dbbad3385f9353c6e2d">begin</a>() {</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.begin();</div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#accc4e781b042c931fdd79a7ec823fa17"> 125</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a10944f612ffa7db16cac5ec6a2ea1b7f">const_iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#accc4e781b042c931fdd79a7ec823fa17">begin</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.begin();</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div>
<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a6e7ed9775b8c439c0c7f837cd4564bdc"> 129</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea">iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6e7ed9775b8c439c0c7f837cd4564bdc">end</a>() {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.end();</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a11b88ddb95877466dcf0e1273def27e8"> 133</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a10944f612ffa7db16cac5ec6a2ea1b7f">const_iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a11b88ddb95877466dcf0e1273def27e8">end</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.end();</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
<div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a5524d36fcafca9272a9094b84da94b70"> 141</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a10944f612ffa7db16cac5ec6a2ea1b7f">const_iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a5524d36fcafca9272a9094b84da94b70">find</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">key_type</a>&amp; key)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.find(key);</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a73c61d4be2edca81314e979f79040d2e"> 149</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea">iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a73c61d4be2edca81314e979f79040d2e">find</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">key_type</a>&amp; key) {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.find(key);</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div>
<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a9bbe6c2bfa634c1e0c130d48e6b5cdfe"> 156</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a9bbe6c2bfa634c1e0c130d48e6b5cdfe">erase</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea">iterator</a>&amp; position) {</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.erase(position);</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div>
<div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a71556a12b75bd60a7b574a6f33002ebc"> 163</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a71556a12b75bd60a7b574a6f33002ebc">erase</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">key_type</a>&amp; key) {</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.erase(key);</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div>
<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#aad31941278c7e6b2e6342d384aefa6da"> 170</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">ObjectPtr&lt;MapObj&gt;</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#aad31941278c7e6b2e6342d384aefa6da">Empty</a>() {</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> make_object&lt;MapObj&gt;();</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">protected</span>:</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> IterType&gt;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a2b0f6fc9e8f25d00bcac864202aa6e02"> 183</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">ObjectPtr&lt;Object&gt;</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a2b0f6fc9e8f25d00bcac864202aa6e02">CreateFromRange</a>(IterType first, IterType last) {</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">ObjectPtr&lt;MapObj&gt;</a> p = make_object&lt;MapObj&gt;();</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; p-&gt;data_ = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3da2dfce873b062a704389a08cc097fb">ContainerType</a>(first, last);</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> p;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a1c3727961fba6a4690c93d2ce99a2246"> 193</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a1c3727961fba6a4690c93d2ce99a2246">InsertMaybeReHash</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a806c3a501188b0cd0d0a5ffae60fec95">KVType</a>&amp; kv, <a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">ObjectPtr&lt;Object&gt;</a>* map) {</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>* map_node = <span class="keyword">static_cast&lt;</span><a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>*<span class="keyword">&gt;</span>(map-&gt;<a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html#aae8d61e486de81ed0aa4b1f038dc9d2d">get</a>());</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; map_node-&gt;<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>[kv.first] = kv.second;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div>
<div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a7986994964e5faa9d3a9cc47b67d574c"> 202</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">ObjectPtr&lt;MapObj&gt;</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a7986994964e5faa9d3a9cc47b67d574c">CopyFrom</a>(<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>* from) {</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">ObjectPtr&lt;MapObj&gt;</a> p = make_object&lt;MapObj&gt;();</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; p-&gt;data_ = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3da2dfce873b062a704389a08cc097fb">ContainerType</a>(from-&gt;<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.begin(), from-&gt;<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>.end());</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> p;</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea"> 208</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3da2dfce873b062a704389a08cc097fb">ContainerType</a> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">data_</a>;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, <span class="keyword">typename</span>, <span class="keyword">typename</span>, <span class="keyword">typename</span>&gt;</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1MapObj.html#ad052dfd6b3b90d3e5e20ebf5544d550b"> 210</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map</a>;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;};</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> K,</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keyword">typename</span> V,</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if&lt;std::is_base_of&lt;ObjectRef, K&gt;::value&gt;::type,</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if&lt;std::is_base_of&lt;ObjectRef, V&gt;::value&gt;::type&gt;</div>
<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html"> 226</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map</a> : <span class="keyword">public</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a> {</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#aa5c67029f78a5cd17cb931b0d5c39a4a"> 228</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#aa5c67029f78a5cd17cb931b0d5c39a4a">key_type</a> = K;</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a5c30eae913541b748dd21b48e7711b28"> 229</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a5c30eae913541b748dd21b48e7711b28">mapped_type</a> = V;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a>;</div>
<div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#ab2744a60d25b7a28b46c2d75d04f20d5"> 234</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#ab2744a60d25b7a28b46c2d75d04f20d5">Map</a>() {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#aad31941278c7e6b2e6342d384aefa6da">MapObj::Empty</a>();</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div>
<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#aa42c58889b7ba8e6813a8d6326bae4aa"> 241</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#aa42c58889b7ba8e6813a8d6326bae4aa">Map</a>(<a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a>&amp;&amp; other) {</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = std::move(other.data_);</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a0df1a995dcfede7362dc5fe99af2ff3a"> 248</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a0df1a995dcfede7362dc5fe99af2ff3a">Map</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a>&amp; other) : <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>(other.<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a>) {}</div>
<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a7e7f9f85874b20eaef439a4163c17115"> 254</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a7e7f9f85874b20eaef439a4163c17115">operator=</a>(<a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a>&amp;&amp; other) {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = std::move(other.data_);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div>
<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a80f14824d53dd45b92b974d70efeecbe"> 263</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a80f14824d53dd45b92b974d70efeecbe">operator=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a>&amp; other) {</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = other.<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a>;</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div>
<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#af59b6a81c591172cc82ebbef4be469af"> 271</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#af59b6a81c591172cc82ebbef4be469af">Map</a>(<a class="code" href="classmxnet_1_1runtime_1_1ObjectPtr.html">ObjectPtr&lt;Object&gt;</a> n) : <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>(n) {}</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> IterType&gt;</div>
<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a6ead366741d097b58e1335b298d6488e"> 279</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a6ead366741d097b58e1335b298d6488e">Map</a>(IterType <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a914d011da01902a7ae047df06fda646a">begin</a>, IterType <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a3260ad74161b89db7de7447e8f5bba6a">end</a>) {</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a2b0f6fc9e8f25d00bcac864202aa6e02">MapObj::CreateFromRange</a>(<a class="code" href="classmxnet_1_1runtime_1_1Map.html#a914d011da01902a7ae047df06fda646a">begin</a>, <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a3260ad74161b89db7de7447e8f5bba6a">end</a>);</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div>
<div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a48a568c0e77498c05ebef86e75413143"> 286</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a48a568c0e77498c05ebef86e75413143">Map</a>(std::initializer_list&lt;std::pair&lt;K, V&gt;&gt; init) {</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a2b0f6fc9e8f25d00bcac864202aa6e02">MapObj::CreateFromRange</a>(init.begin(), init.end());</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span> Hash, <span class="keyword">typename</span> Equal&gt;</div>
<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a96f3a21ed7a85442eb0f002bd080d40a"> 294</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a96f3a21ed7a85442eb0f002bd080d40a">Map</a>(<span class="keyword">const</span> std::unordered_map&lt;K, V, Hash, Equal&gt;&amp; init) { <span class="comment">// NOLINT(*)</span></div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a2b0f6fc9e8f25d00bcac864202aa6e02">MapObj::CreateFromRange</a>(init.begin(), init.end());</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div>
<div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a7164721e393eb9364f5442e241f214c1"> 302</a></span>&#160; <span class="keyword">const</span> V <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a7164721e393eb9364f5442e241f214c1">at</a>(<span class="keyword">const</span> K&amp; key)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> DowncastNoCheck&lt;V&gt;(GetMapObj()-&gt;<a class="code" href="classmxnet_1_1runtime_1_1Map.html#a7164721e393eb9364f5442e241f214c1">at</a>(key));</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div>
<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a7a6aa686961933959690f5e6936289ad"> 310</a></span>&#160; <span class="keyword">const</span> V <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a7a6aa686961933959690f5e6936289ad">operator[]</a>(<span class="keyword">const</span> K&amp; key)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> this-&gt;<a class="code" href="classmxnet_1_1runtime_1_1Map.html#a7164721e393eb9364f5442e241f214c1">at</a>(key);</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#ade033e0d69b025fd5b6958ca227ea46e"> 314</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#ade033e0d69b025fd5b6958ca227ea46e">size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>* n = GetMapObj();</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">return</span> n == <span class="keyword">nullptr</span> ? 0 : n-&gt;<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#adcaacacdca47f3d68140a13bb8a73743">size</a>();</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div>
<div class="line"><a name="l00319"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a102c469086eeb044878701e43c57a38e"> 319</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a102c469086eeb044878701e43c57a38e">count</a>(<span class="keyword">const</span> K&amp; key)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>* n = GetMapObj();</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> n == <span class="keyword">nullptr</span> ? 0 : GetMapObj()-&gt;<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a64384eb681666549bd4f82346266495c">count</a>(key);</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
<div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#afdbfd4091a4fca1ca44dad994c69eca1"> 324</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#afdbfd4091a4fca1ca44dad994c69eca1">empty</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#ade033e0d69b025fd5b6958ca227ea46e">size</a>() == 0;</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div>
<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#ac048ed9828a674b149c296416c702ecf"> 332</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#ac048ed9828a674b149c296416c702ecf">Set</a>(<span class="keyword">const</span> K&amp; key, <span class="keyword">const</span> V&amp; value) {</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#ae08f2fe697160e12a023933935572934">CopyOnWrite</a>();</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a1c3727961fba6a4690c93d2ce99a2246">MapObj::InsertMaybeReHash</a>(<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a806c3a501188b0cd0d0a5ffae60fec95">MapObj::KVType</a>(key, value), &amp;<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a>);</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div>
<div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a914d011da01902a7ae047df06fda646a"> 337</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a914d011da01902a7ae047df06fda646a">begin</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a>(GetMapObj()-&gt;<a class="code" href="classmxnet_1_1runtime_1_1Map.html#a914d011da01902a7ae047df06fda646a">begin</a>());</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div>
<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a3260ad74161b89db7de7447e8f5bba6a"> 341</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a3260ad74161b89db7de7447e8f5bba6a">end</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a>(GetMapObj()-&gt;<a class="code" href="classmxnet_1_1runtime_1_1Map.html#a3260ad74161b89db7de7447e8f5bba6a">end</a>());</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div>
<div class="line"><a name="l00345"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#aed081e693a572733b50ada790f42b047"> 345</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#aed081e693a572733b50ada790f42b047">find</a>(<span class="keyword">const</span> K&amp; key)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a>(GetMapObj()-&gt;<a class="code" href="classmxnet_1_1runtime_1_1Map.html#aed081e693a572733b50ada790f42b047">find</a>(key));</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div>
<div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a514b9dcd2d91a7dbb93de7d36124b6e8"> 349</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html#a514b9dcd2d91a7dbb93de7d36124b6e8">erase</a>(<span class="keyword">const</span> K&amp; key) {</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map.html#ae08f2fe697160e12a023933935572934">CopyOnWrite</a>()-&gt;<a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a9bbe6c2bfa634c1e0c130d48e6b5cdfe">erase</a>(key);</div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; </div>
<div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#ae08f2fe697160e12a023933935572934"> 361</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>* <a class="code" href="classmxnet_1_1runtime_1_1Map.html#ae08f2fe697160e12a023933935572934">CopyOnWrite</a>() {</div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a>.get() == <span class="keyword">nullptr</span>) {</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#aad31941278c7e6b2e6342d384aefa6da">MapObj::Empty</a>();</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (!<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a>.unique()) {</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a7986994964e5faa9d3a9cc47b67d574c">MapObj::CopyFrom</a>(GetMapObj());</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> GetMapObj();</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div>
<div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map.html#a396a1da2e57f95751cccf4e79979fd80"> 370</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">ContainerType</a> = <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>;</div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; </div>
<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html"> 373</a></span>&#160; <span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a> {</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#afac0df396e8da794b8bc2fae7e8997dc"> 375</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#afac0df396e8da794b8bc2fae7e8997dc">iterator_category</a> = std::bidirectional_iterator_tag;</div>
<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aac8588c66abb6452596115f081a037fd"> 376</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aac8588c66abb6452596115f081a037fd">difference_type</a> = int64_t;</div>
<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aabc35591df97be42505164663f6a1954"> 377</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aabc35591df97be42505164663f6a1954">value_type</a> = <span class="keyword">const</span> std::pair&lt;K, V&gt;;</div>
<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a9cf291b8df1b9993ca0d1cccb4f51b4a"> 378</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a9cf291b8df1b9993ca0d1cccb4f51b4a">pointer</a> = <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aabc35591df97be42505164663f6a1954">value_type</a>*;</div>
<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a769881f7ca066842d3fccc214be38010"> 379</a></span>&#160; <span class="keyword">using</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a769881f7ca066842d3fccc214be38010">reference</a> = <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aabc35591df97be42505164663f6a1954">value_type</a>;</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; </div>
<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a32515f4a7e93842e876226b9fb4f711c"> 381</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a32515f4a7e93842e876226b9fb4f711c">iterator</a>() : itr() {}</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; </div>
<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a0539b40ed6e5a547be71056da002ca03"> 384</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a0539b40ed6e5a547be71056da002ca03">operator==</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a>&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> itr == other.itr;</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div>
<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aac0c2f6a5dfff09caf9156f98cd7d7e1"> 388</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aac0c2f6a5dfff09caf9156f98cd7d7e1">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a>&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">return</span> itr != other.itr;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a9cf291b8df1b9993ca0d1cccb4f51b4a">pointer</a> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a722aa792533afa86b5608bfe85a23f03">operator-&gt;</a>() <span class="keyword">const</span> = <span class="keyword">delete</span>;</div>
<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a209cecaf75bb7a5aafbbf274ad772dbd"> 394</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a769881f7ca066842d3fccc214be38010">reference</a> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a209cecaf75bb7a5aafbbf274ad772dbd">operator*</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">auto</span>&amp; kv = *itr;</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> std::make_pair(DowncastNoCheck&lt;K&gt;(kv.first), DowncastNoCheck&lt;V&gt;(kv.second));</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a0004f281b38444a55ac42ddb0f677734"> 399</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a0004f281b38444a55ac42ddb0f677734">operator++</a>() {</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; ++itr;</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div>
<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a93f9ba2bacf84a5b1f3b0b65116bb236"> 404</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a> <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a93f9ba2bacf84a5b1f3b0b65116bb236">operator++</a>(<span class="keywordtype">int</span>) {</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">iterator</a> copy = *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; ++(*this);</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> copy;</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; </div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a32515f4a7e93842e876226b9fb4f711c">iterator</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea">MapObj::iterator</a>&amp; itr) <span class="comment">// NOLINT(*)</span></div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; : itr(itr) {}</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>, <span class="keyword">typename</span>, <span class="keyword">typename</span>, <span class="keyword">typename</span>&gt;</div>
<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#ad052dfd6b3b90d3e5e20ebf5544d550b"> 415</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map</a>;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; </div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea">MapObj::iterator</a> itr;</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; };</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>* GetMapObj()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="classmxnet_1_1runtime_1_1MapObj.html">MapObj</a>*<span class="keyword">&gt;</span>(<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a>.get());</div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;};</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; </div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> K,</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">typename</span> V,</div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if&lt;std::is_base_of&lt;ObjectRef, K&gt;::value&gt;::type,</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">typename</span> = <span class="keyword">typename</span> std::enable_if&lt;std::is_base_of&lt;ObjectRef, V&gt;::value&gt;::type&gt;</div>
<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a0527e642fb418c27754a326057ff5a44"> 437</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a> <a class="code" href="namespacemxnet_1_1runtime.html#a0527e642fb418c27754a326057ff5a44">Merge</a>(<a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a> lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1Map.html">Map&lt;K, V&gt;</a>&amp; rhs) {</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; p : rhs) {</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; lhs.<a class="code" href="classmxnet_1_1runtime_1_1Map.html#ac048ed9828a674b149c296416c702ecf">Set</a>(p.first, p.second);</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> std::move(lhs);</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; </div>
<div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj.html"> 445</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1StringObj.html">StringObj</a> : <span class="keyword">public</span> <a class="code" href="classmxnet_1_1runtime_1_1Object.html">Object</a> {</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj.html#a7451f38f0faf98bcd50c7fb97dde2566"> 448</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmxnet_1_1runtime_1_1StringObj.html#a7451f38f0faf98bcd50c7fb97dde2566">data</a>;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; </div>
<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj.html#a5a3b879e891a9de73bb1849b28911aee"> 451</a></span>&#160; uint64_t <a class="code" href="classmxnet_1_1runtime_1_1StringObj.html#a5a3b879e891a9de73bb1849b28911aee">size</a>;</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; </div>
<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj.html#a3c71fb179152ea8e842d5cd0920a34eb"> 453</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keyword">const</span> uint32_t <a class="code" href="classmxnet_1_1runtime_1_1StringObj.html#a3c71fb179152ea8e842d5cd0920a34eb">_type_index</a> = <a class="code" href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca979d4bd568d6e9233185b070f4d4a740">TypeIndex::kMXNetString</a>;</div>
<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj.html#ae7c5057455e6eb01c8d115e5d04bd089"> 454</a></span>&#160; <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmxnet_1_1runtime_1_1StringObj.html#ae7c5057455e6eb01c8d115e5d04bd089">_type_key</a> = <span class="stringliteral">&quot;MXNet.String&quot;</span>;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1StringObj.html#a5e540bb1951b5fef7d0937dbe971edb1">MXNET_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classmxnet_1_1runtime_1_1StringObj.html">StringObj</a>, <a class="code" href="classmxnet_1_1runtime_1_1Object.html">Object</a>);</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; </div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj.html#a7fb804f7dc96dd9f705c84095f37f1ca"> 459</a></span>&#160; <span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1StringObj_1_1FromStd.html">FromStd</a>;</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; </div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;};</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; </div>
<div class="line"><a name="l00490"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html"> 490</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a> : <span class="keyword">public</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a> {</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00495"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0"> 495</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>() : <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>(<a class="code" href="namespacestd.html">std</a>::string()) {}</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>(std::string other); <span class="comment">// NOLINT(*)</span></div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; </div>
<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a5cdde4b0769cb6e71a6907bbe78c3247"> 511</a></span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1String.html#a5cdde4b0769cb6e71a6907bbe78c3247">String</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* other) <span class="comment">// NOLINT(*)</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; : <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>(<a class="code" href="namespacestd.html">std</a>::string(other)) {}</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; </div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1String.html#a6aee9b4ae9b09d649f145a71487c1f4e">operator=</a>(std::string other);</div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; </div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1String.html#a6aee9b4ae9b09d649f145a71487c1f4e">operator=</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* other);</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; </div>
<div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e"> 537</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">return</span> memncmp(<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), other.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>(), other.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>());</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; }</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; </div>
<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a3bf6bb8c8e1931968d0d1f2fa3ce639b"> 549</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a3bf6bb8c8e1931968d0d1f2fa3ce639b">compare</a>(<span class="keyword">const</span> std::string&amp; other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">return</span> memncmp(<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), other.data(), <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>(), other.size());</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; }</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; </div>
<div class="line"><a name="l00561"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a863a85b2b25e333e151ba02dcddbe8d8"> 561</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a863a85b2b25e333e151ba02dcddbe8d8">compare</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* other)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> memncmp(<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), other, <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>(), std::stold(other));</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; </div>
<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a5b10bb7f755129cced8ea1f0902338be"> 570</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmxnet_1_1runtime_1_1String.html#a5b10bb7f755129cced8ea1f0902338be">c_str</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#af10de3ce2f4984f44a4ab6341aaef3e0">get</a>()-&gt;data;</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; </div>
<div class="line"><a name="l00579"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692"> 579</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keyword">const</span> <span class="keyword">auto</span>* ptr = <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#af10de3ce2f4984f44a4ab6341aaef3e0">get</a>();</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">return</span> ptr-&gt;size;</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; }</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; </div>
<div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#ae6c0d059f2813524c8c6630b7ab9c0ac"> 589</a></span>&#160; <span class="keywordtype">size_t</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#ae6c0d059f2813524c8c6630b7ab9c0ac">length</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>();</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; </div>
<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#aa67bf654c00eeebb68ca702421de4963"> 598</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#aa67bf654c00eeebb68ca702421de4963">empty</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>() == 0;</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; </div>
<div class="line"><a name="l00607"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c"> 607</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#af10de3ce2f4984f44a4ab6341aaef3e0">get</a>()-&gt;data;</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; </div>
<div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#ac761c9b339a2e2669df0f5a96649d316"> 616</a></span>&#160; <span class="keyword">operator</span> std::string()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">return</span> std::string{<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#af10de3ce2f4984f44a4ab6341aaef3e0">get</a>()-&gt;data, <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>()};</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; </div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a09cb499efeed4cf00760b71d01933015">CanConvertFrom</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1MXNetArgValue.html">MXNetArgValue</a>&amp; val);</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; </div>
<div class="line"><a name="l00633"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a8cb8daba0bd5d66f7068cdfb33bc8181"> 633</a></span>&#160; <span class="keyword">static</span> <span class="keywordtype">size_t</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a8cb8daba0bd5d66f7068cdfb33bc8181">HashBytes</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>, <span class="keywordtype">size_t</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>) {</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="comment">// This function falls back to string copy with c++11 compiler and is</span></div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="comment">// recommended to be compiled with c++14</span></div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordflow">return</span> std::hash&lt;std::string_view&gt;()(std::string_view(<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>, <a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>));</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div>
<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; </div>
<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1String.html#a253713fbe20d09e1a320a1b011827e84">MXNET_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>, <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>, <a class="code" href="classmxnet_1_1runtime_1_1StringObj.html">StringObj</a>);</div>
<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; </div>
<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keyword">static</span> <span class="keywordtype">int</span> memncmp(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs, <span class="keywordtype">size_t</span> lhs_count, <span class="keywordtype">size_t</span> rhs_count);</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; </div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keyword">static</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a> Concat(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keywordtype">size_t</span> lhs_size, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs, <span class="keywordtype">size_t</span> rhs_size) {</div>
<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; std::string ret(lhs, lhs_size);</div>
<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; ret.append(rhs, rhs_size);</div>
<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>(ret);</div>
<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; }</div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; </div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="comment">// Overload + operator</span></div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keyword">friend</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a346acdf3143412eaab63e8f3664cd575">operator+</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>&amp; rhs);</div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keyword">friend</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a346acdf3143412eaab63e8f3664cd575">operator+</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>&amp; lhs, <span class="keyword">const</span> std::string&amp; rhs);</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keyword">friend</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a346acdf3143412eaab63e8f3664cd575">operator+</a>(<span class="keyword">const</span> std::string&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>&amp; rhs);</div>
<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keyword">friend</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a346acdf3143412eaab63e8f3664cd575">operator+</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>&amp; lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs);</div>
<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">friend</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a346acdf3143412eaab63e8f3664cd575">operator+</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String</a>&amp; rhs);</div>
<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; </div>
<div class="line"><a name="l00677"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#aed3386f3e994b77b9cca57265268a02e"> 677</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">struct </span><a class="code" href="structmxnet_1_1runtime_1_1ObjectRefEqual.html">mxnet::runtime::ObjectRefEqual</a>;</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;};</div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; </div>
<div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj_1_1FromStd.html"> 681</a></span>&#160;<span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1StringObj_1_1FromStd.html">StringObj::FromStd</a> : <span class="keyword">public</span> <a class="code" href="classmxnet_1_1runtime_1_1StringObj.html">StringObj</a> {</div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00691"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj_1_1FromStd.html#a7d96ba0c90240037ebc4265a5fc301f5"> 691</a></span>&#160; <span class="keyword">explicit</span> <a class="code" href="classmxnet_1_1runtime_1_1StringObj_1_1FromStd.html#a7d96ba0c90240037ebc4265a5fc301f5">FromStd</a>(std::string other) : data_container{other} {}</div>
<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; </div>
<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; std::string data_container;</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; </div>
<div class="line"><a name="l00697"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1StringObj_1_1FromStd.html#a7fb804f7dc96dd9f705c84095f37f1ca"> 697</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>;</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;};</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; </div>
<div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#ac8a5fa72e20f2fd87296cab37a535a49"> 700</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">String::String</a>(std::string other) {</div>
<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keyword">auto</span> ptr = make_object&lt;StringObj::FromStd&gt;(std::move(other));</div>
<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; ptr-&gt;size = ptr-&gt;data_container.size();</div>
<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; ptr-&gt;data = ptr-&gt;data_container.data();</div>
<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a> = std::move(ptr);</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;}</div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; </div>
<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a6aee9b4ae9b09d649f145a71487c1f4e"> 707</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1String.html#a6aee9b4ae9b09d649f145a71487c1f4e">String::operator=</a>(std::string other) {</div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a> replace{std::move(other)};</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">data_</a>.swap(replace.data_);</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;}</div>
<div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; </div>
<div class="line"><a name="l00713"></a><span class="lineno"><a class="line" href="classmxnet_1_1runtime_1_1String.html#a259c825990ae123b8ec95674abae3218"> 713</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; <a class="code" href="classmxnet_1_1runtime_1_1String.html#a6aee9b4ae9b09d649f145a71487c1f4e">String::operator=</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* other) {</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a6aee9b4ae9b09d649f145a71487c1f4e">operator=</a>(std::string(other));</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;}</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; </div>
<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a38b46ae1ab051393dad25a5bc0a012dd"> 717</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a> <a class="code" href="namespacemxnet_1_1runtime.html#a38b46ae1ab051393dad25a5bc0a012dd">operator+</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordtype">size_t</span> lhs_size = lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>();</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordtype">size_t</span> rhs_size = rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>();</div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">return</span> String::Concat(lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), lhs_size, rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), rhs_size);</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;}</div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; </div>
<div class="line"><a name="l00723"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a355fc0b2c31cc94be8e3878e62f9253a"> 723</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a> <a class="code" href="namespacemxnet_1_1runtime.html#a38b46ae1ab051393dad25a5bc0a012dd">operator+</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> std::string&amp; rhs) {</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordtype">size_t</span> lhs_size = lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>();</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordtype">size_t</span> rhs_size = rhs.size();</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">return</span> String::Concat(lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), lhs_size, rhs.data(), rhs_size);</div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;}</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; </div>
<div class="line"><a name="l00729"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#ac3cfc6e86ba2afd4f4479abe4001084b"> 729</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a> <a class="code" href="namespacemxnet_1_1runtime.html#a38b46ae1ab051393dad25a5bc0a012dd">operator+</a>(<span class="keyword">const</span> std::string&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordtype">size_t</span> lhs_size = lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>();</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordtype">size_t</span> rhs_size = rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>();</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">return</span> String::Concat(lhs.data(), lhs_size, rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), rhs_size);</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;}</div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; </div>
<div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a97fccbac9f9fb7f91399d4374164a724"> 735</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a> <a class="code" href="namespacemxnet_1_1runtime.html#a38b46ae1ab051393dad25a5bc0a012dd">operator+</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordtype">size_t</span> lhs_size = std::stold(lhs);</div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordtype">size_t</span> rhs_size = rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>();</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">return</span> String::Concat(lhs, lhs_size, rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), rhs_size);</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;}</div>
<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; </div>
<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#aebac89a171285f59545a6fa6e78a020e"> 741</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a> <a class="code" href="namespacemxnet_1_1runtime.html#a38b46ae1ab051393dad25a5bc0a012dd">operator+</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs) {</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordtype">size_t</span> lhs_size = lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>();</div>
<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordtype">size_t</span> rhs_size = std::stold(rhs);</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">return</span> String::Concat(lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), lhs_size, rhs, rhs_size);</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;}</div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; </div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;<span class="comment">// Overload &lt; operator</span></div>
<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#afaf0a06f62ddbb7d1f5daff57fd8522f"> 748</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#afaf0a06f62ddbb7d1f5daff57fd8522f">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> std::string&amp; rhs) {</div>
<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &lt; 0;</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;}</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; </div>
<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a95273428f2991aaf231a92112429be0a"> 752</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#afaf0a06f62ddbb7d1f5daff57fd8522f">operator&lt;</a>(<span class="keyword">const</span> std::string&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) &gt; 0;</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;}</div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; </div>
<div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a6e07367b1b11465dab60fcccae5f1506"> 756</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#afaf0a06f62ddbb7d1f5daff57fd8522f">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &lt; 0;</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;}</div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; </div>
<div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a189a0f1690c81194583c9cb29030fdab"> 760</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#afaf0a06f62ddbb7d1f5daff57fd8522f">operator&lt;</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs) {</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &lt; 0;</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;}</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; </div>
<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a8ff07ef072a022420c968ce707f6ebb9"> 764</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#afaf0a06f62ddbb7d1f5daff57fd8522f">operator&lt;</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) &gt; 0;</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;}</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; </div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;<span class="comment">// Overload &gt; operator</span></div>
<div class="line"><a name="l00769"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a10308e9c378a8457908741fbc2ac0dc3"> 769</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a10308e9c378a8457908741fbc2ac0dc3">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> std::string&amp; rhs) {</div>
<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &gt; 0;</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;}</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; </div>
<div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a4033ceaaed65778f41b9a150fff664ea"> 773</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a10308e9c378a8457908741fbc2ac0dc3">operator&gt;</a>(<span class="keyword">const</span> std::string&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) &lt; 0;</div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;}</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; </div>
<div class="line"><a name="l00777"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a3c3746dcb9b476890145e15b73663b17"> 777</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a10308e9c378a8457908741fbc2ac0dc3">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &gt; 0;</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;}</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; </div>
<div class="line"><a name="l00781"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#af603225d41c940c559f5c06707057bf4"> 781</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a10308e9c378a8457908741fbc2ac0dc3">operator&gt;</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs) {</div>
<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &gt; 0;</div>
<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;}</div>
<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; </div>
<div class="line"><a name="l00785"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#abddaddc91f8cb3faf023941b7d6c787a"> 785</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a10308e9c378a8457908741fbc2ac0dc3">operator&gt;</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) &lt; 0;</div>
<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;}</div>
<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; </div>
<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;<span class="comment">// Overload &lt;= operator</span></div>
<div class="line"><a name="l00790"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#ac6ae46151b0302b2e42868d0a0e356ea"> 790</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#ac6ae46151b0302b2e42868d0a0e356ea">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> std::string&amp; rhs) {</div>
<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &lt;= 0;</div>
<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;}</div>
<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; </div>
<div class="line"><a name="l00794"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#ae1df493222378d19d9313bfea0b3e6c9"> 794</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#ac6ae46151b0302b2e42868d0a0e356ea">operator&lt;=</a>(<span class="keyword">const</span> std::string&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) &gt;= 0;</div>
<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;}</div>
<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; </div>
<div class="line"><a name="l00798"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a3658f1167e892a98032ce5cd8d500061"> 798</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#ac6ae46151b0302b2e42868d0a0e356ea">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &lt;= 0;</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;}</div>
<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; </div>
<div class="line"><a name="l00802"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#ab9d1070b51216fd47de04bcfc1507dee"> 802</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#ac6ae46151b0302b2e42868d0a0e356ea">operator&lt;=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs) {</div>
<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &lt;= 0;</div>
<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;}</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; </div>
<div class="line"><a name="l00806"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#ab7c8514683df729437e6df2671d75f76"> 806</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#ac6ae46151b0302b2e42868d0a0e356ea">operator&lt;=</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) &gt;= 0;</div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;}</div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; </div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;<span class="comment">// Overload &gt;= operator</span></div>
<div class="line"><a name="l00811"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a4a57b095313af6df54b0ea24361fd9c9"> 811</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4a57b095313af6df54b0ea24361fd9c9">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> std::string&amp; rhs) {</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &gt;= 0;</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;}</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; </div>
<div class="line"><a name="l00815"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a3b9aa7931bb6466a9439be06d733ec55"> 815</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4a57b095313af6df54b0ea24361fd9c9">operator&gt;=</a>(<span class="keyword">const</span> std::string&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) &lt;= 0;</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;}</div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; </div>
<div class="line"><a name="l00819"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a5aca7429b6adb3079589f41f1d8dc483"> 819</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4a57b095313af6df54b0ea24361fd9c9">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &gt;= 0;</div>
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;}</div>
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; </div>
<div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a586e57e36e29c6ec753b46610c4524ce"> 823</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4a57b095313af6df54b0ea24361fd9c9">operator&gt;=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs) {</div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &gt;= 0;</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;}</div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; </div>
<div class="line"><a name="l00827"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a5d1079d9e04bc6a757e50b3e7bd3a350"> 827</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4a57b095313af6df54b0ea24361fd9c9">operator&gt;=</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) &lt;= 0;</div>
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;}</div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; </div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;<span class="comment">// Overload == operator</span></div>
<div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a0681ef3f5d70fa6bf2c74903c16cdefd"> 832</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a0681ef3f5d70fa6bf2c74903c16cdefd">operator==</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> std::string&amp; rhs) {</div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) == 0;</div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;}</div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; </div>
<div class="line"><a name="l00836"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a4317fcf89dfc9b82ab96c8c98ab01711"> 836</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a0681ef3f5d70fa6bf2c74903c16cdefd">operator==</a>(<span class="keyword">const</span> std::string&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) == 0;</div>
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;}</div>
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; </div>
<div class="line"><a name="l00840"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#ad1932b63a526df76ef38f19738443d27"> 840</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a0681ef3f5d70fa6bf2c74903c16cdefd">operator==</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) == 0;</div>
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;}</div>
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; </div>
<div class="line"><a name="l00844"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a23fe5ad5277a96b971ec693a734f1b4c"> 844</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a0681ef3f5d70fa6bf2c74903c16cdefd">operator==</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs) {</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) == 0;</div>
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;}</div>
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; </div>
<div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a874ef0a6fe3a17311145bec7899d374e"> 848</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a0681ef3f5d70fa6bf2c74903c16cdefd">operator==</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) == 0;</div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;}</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; </div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;<span class="comment">// Overload != operator</span></div>
<div class="line"><a name="l00853"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a4cb8588702f220473ef892784241a6de"> 853</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4cb8588702f220473ef892784241a6de">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> std::string&amp; rhs) {</div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) != 0;</div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;}</div>
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; </div>
<div class="line"><a name="l00857"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a4403efa26c344d8ac5c45f03ad9b738b"> 857</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4cb8588702f220473ef892784241a6de">operator!=</a>(<span class="keyword">const</span> std::string&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) != 0;</div>
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;}</div>
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; </div>
<div class="line"><a name="l00861"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a61f0763689316632109ab72bc1ad222d"> 861</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4cb8588702f220473ef892784241a6de">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) != 0;</div>
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;}</div>
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; </div>
<div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a0c4fad3f2d43493e07ad0c96ccfe28d2"> 865</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4cb8588702f220473ef892784241a6de">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs) {</div>
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">return</span> lhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(rhs) != 0;</div>
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;}</div>
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; </div>
<div class="line"><a name="l00869"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#a60c898de2298482b3d1a16e412e2451c"> 869</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="namespacemxnet_1_1runtime.html#a4cb8588702f220473ef892784241a6de">operator!=</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; rhs) {</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">return</span> rhs.<a class="code" href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">compare</a>(lhs) != 0;</div>
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;}</div>
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; </div>
<div class="line"><a name="l00873"></a><span class="lineno"><a class="line" href="namespacemxnet_1_1runtime.html#af68138e148571249fa1c48d993a4aa89"> 873</a></span>&#160;<span class="keyword">inline</span> std::ostream&amp; <a class="code" href="namespacemxnet_1_1runtime.html#af68138e148571249fa1c48d993a4aa89">operator&lt;&lt;</a>(std::ostream&amp; out, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html">String</a>&amp; input) {</div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; out.write(input.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">data</a>(), input.<a class="code" href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">size</a>());</div>
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;}</div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; </div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;<span class="keyword">inline</span> <span class="keywordtype">int</span> String::memncmp(<span class="keyword">const</span> <span class="keywordtype">char</span>* lhs, <span class="keyword">const</span> <span class="keywordtype">char</span>* rhs, <span class="keywordtype">size_t</span> lhs_count, <span class="keywordtype">size_t</span> rhs_count) {</div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">if</span> (lhs == rhs &amp;&amp; lhs_count == rhs_count)</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; </div>
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; lhs_count &amp;&amp; i &lt; rhs_count; ++i) {</div>
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">if</span> (lhs[i] &lt; rhs[i])</div>
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">if</span> (lhs[i] &gt; rhs[i])</div>
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; }</div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">if</span> (lhs_count &lt; rhs_count) {</div>
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">return</span> -1;</div>
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lhs_count &gt; rhs_count) {</div>
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">return</span> 1;</div>
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> 0;</div>
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div>
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;}</div>
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; </div>
<div class="line"><a name="l00897"></a><span class="lineno"><a class="line" href="structmxnet_1_1runtime_1_1ObjectRefHash.html#a7279d023e8c5ffbf58cbbb5620956757"> 897</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">size_t</span> <a class="code" href="structmxnet_1_1runtime_1_1ObjectRefHash.html#a7279d023e8c5ffbf58cbbb5620956757">ObjectRefHash::operator()</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>&amp; a)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span>* str = a.<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a2501a43190c64c4a711281d425a87745">as</a>&lt;<a class="code" href="classmxnet_1_1runtime_1_1StringObj.html">StringObj</a>&gt;()) {</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classmxnet_1_1runtime_1_1String.html#a8cb8daba0bd5d66f7068cdfb33bc8181">String::HashBytes</a>(str-&gt;data, str-&gt;size);</div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; }</div>
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">return</span> <a class="code" href="structmxnet_1_1runtime_1_1ObjectHash.html">ObjectHash</a>()(a);</div>
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;}</div>
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; </div>
<div class="line"><a name="l00904"></a><span class="lineno"><a class="line" href="structmxnet_1_1runtime_1_1ObjectRefEqual.html#a3db6837738cc5616bca97cafce41a1cf"> 904</a></span>&#160;<span class="keyword">inline</span> <span class="keywordtype">bool</span> <a class="code" href="structmxnet_1_1runtime_1_1ObjectRefEqual.html#a3db6837738cc5616bca97cafce41a1cf">ObjectRefEqual::operator()</a>(<span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>&amp; a, <span class="keyword">const</span> <a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html">ObjectRef</a>&amp; b)<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">if</span> (a.<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a95de2a92783738031bf76edc2be7a6bd">same_as</a>(b)) {</div>
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; }</div>
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span>* str_a = a.<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a2501a43190c64c4a711281d425a87745">as</a>&lt;<a class="code" href="classmxnet_1_1runtime_1_1StringObj.html">StringObj</a>&gt;()) {</div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">const</span> <span class="keyword">auto</span>* str_b = b.<a class="code" href="classmxnet_1_1runtime_1_1ObjectRef.html#a2501a43190c64c4a711281d425a87745">as</a>&lt;<a class="code" href="classmxnet_1_1runtime_1_1StringObj.html">StringObj</a>&gt;()) {</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">return</span> String::memncmp(str_a-&gt;data, str_b-&gt;data, str_a-&gt;size, str_b-&gt;size) == 0;</div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; }</div>
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; }</div>
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;}</div>
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; </div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;} <span class="comment">// namespace runtime</span></div>
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;} <span class="comment">// namespace mxnet</span></div>
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; </div>
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;<span class="preprocessor">#endif // MXNET_RUNTIME_CONTAINER_EXT_H_</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a7164721e393eb9364f5442e241f214c1"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a7164721e393eb9364f5442e241f214c1">mxnet::runtime::Map::at</a></div><div class="ttdeci">const V at(const K &amp;key) const</div><div class="ttdoc">Read element from map.</div><div class="ttdef"><b>Definition:</b> container_ext.h:302</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a6472e19e966f61dde77384167ca9e3ea"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a6472e19e966f61dde77384167ca9e3ea">mxnet::runtime::MapObj::data_</a></div><div class="ttdeci">ContainerType data_</div><div class="ttdoc">The real container storing data.</div><div class="ttdef"><b>Definition:</b> container_ext.h:208</div></div>
<div class="ttc" id="anamespacemxnet_html"><div class="ttname"><a href="namespacemxnet.html">mxnet</a></div><div class="ttdoc">namespace of mxnet</div><div class="ttdef"><b>Definition:</b> api_registry.h:33</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a11b88ddb95877466dcf0e1273def27e8"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a11b88ddb95877466dcf0e1273def27e8">mxnet::runtime::MapObj::end</a></div><div class="ttdeci">const_iterator end() const</div><div class="ttdef"><b>Definition:</b> container_ext.h:133</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a102c469086eeb044878701e43c57a38e"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a102c469086eeb044878701e43c57a38e">mxnet::runtime::Map::count</a></div><div class="ttdeci">size_t count(const K &amp;key) const</div><div class="ttdef"><b>Definition:</b> container_ext.h:319</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1ObjectRef_html_af10de3ce2f4984f44a4ab6341aaef3e0"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectRef.html#af10de3ce2f4984f44a4ab6341aaef3e0">mxnet::runtime::ObjectRef::get</a></div><div class="ttdeci">const Object * get() const</div><div class="ttdef"><b>Definition:</b> object.h:543</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Object_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Object.html">mxnet::runtime::Object</a></div><div class="ttdoc">base class of all object containers.</div><div class="ttdef"><b>Definition:</b> object.h:151</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a3260ad74161b89db7de7447e8f5bba6a"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a3260ad74161b89db7de7447e8f5bba6a">mxnet::runtime::Map::end</a></div><div class="ttdeci">iterator end() const</div><div class="ttdef"><b>Definition:</b> container_ext.h:341</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1StringObj_html_a5a3b879e891a9de73bb1849b28911aee"><div class="ttname"><a href="classmxnet_1_1runtime_1_1StringObj.html#a5a3b879e891a9de73bb1849b28911aee">mxnet::runtime::StringObj::size</a></div><div class="ttdeci">uint64_t size</div><div class="ttdoc">The length of the string object.</div><div class="ttdef"><b>Definition:</b> container_ext.h:451</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a6ead366741d097b58e1335b298d6488e"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a6ead366741d097b58e1335b298d6488e">mxnet::runtime::Map::Map</a></div><div class="ttdeci">Map(IterType begin, IterType end)</div><div class="ttdoc">constructor from iterator</div><div class="ttdef"><b>Definition:</b> container_ext.h:279</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a863a85b2b25e333e151ba02dcddbe8d8"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a863a85b2b25e333e151ba02dcddbe8d8">mxnet::runtime::String::compare</a></div><div class="ttdeci">int compare(const char *other) const</div><div class="ttdoc">Compares this to other.</div><div class="ttdef"><b>Definition:</b> container_ext.h:561</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a914d011da01902a7ae047df06fda646a"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a914d011da01902a7ae047df06fda646a">mxnet::runtime::Map::begin</a></div><div class="ttdeci">iterator begin() const</div><div class="ttdef"><b>Definition:</b> container_ext.h:337</div></div>
<div class="ttc" id="astructmxnet_1_1runtime_1_1ObjectRefHash_html_a7279d023e8c5ffbf58cbbb5620956757"><div class="ttname"><a href="structmxnet_1_1runtime_1_1ObjectRefHash.html#a7279d023e8c5ffbf58cbbb5620956757">mxnet::runtime::ObjectRefHash::operator()</a></div><div class="ttdeci">size_t operator()(const ObjectRef &amp;a) const</div><div class="ttdoc">Calculate the hash code of an ObjectRef.</div><div class="ttdef"><b>Definition:</b> container_ext.h:897</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_aabc35591df97be42505164663f6a1954"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aabc35591df97be42505164663f6a1954">mxnet::runtime::Map::iterator::value_type</a></div><div class="ttdeci">const std::pair&lt; K, V &gt; value_type</div><div class="ttdef"><b>Definition:</b> container_ext.h:377</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a5c30eae913541b748dd21b48e7711b28"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a5c30eae913541b748dd21b48e7711b28">mxnet::runtime::Map::mapped_type</a></div><div class="ttdeci">V mapped_type</div><div class="ttdef"><b>Definition:</b> container_ext.h:229</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a3bf6bb8c8e1931968d0d1f2fa3ce639b"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a3bf6bb8c8e1931968d0d1f2fa3ce639b">mxnet::runtime::String::compare</a></div><div class="ttdeci">int compare(const std::string &amp;other) const</div><div class="ttdoc">Compares this String object to other.</div><div class="ttdef"><b>Definition:</b> container_ext.h:549</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1ObjectPtr_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectPtr.html">mxnet::runtime::ObjectPtr</a></div><div class="ttdoc">A custom smart pointer for Object.</div><div class="ttdef"><b>Definition:</b> object.h:346</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a48a568c0e77498c05ebef86e75413143"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a48a568c0e77498c05ebef86e75413143">mxnet::runtime::Map::Map</a></div><div class="ttdeci">Map(std::initializer_list&lt; std::pair&lt; K, V &gt;&gt; init)</div><div class="ttdoc">constructor from initializer list</div><div class="ttdef"><b>Definition:</b> container_ext.h:286</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a3a3e33dca3e441fc79409773a56147ea"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a3a3e33dca3e441fc79409773a56147ea">mxnet::runtime::MapObj::iterator</a></div><div class="ttdeci">ContainerType::iterator iterator</div><div class="ttdoc">Iterator class.</div><div class="ttdef"><b>Definition:</b> container_ext.h:76</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MXNetArgValue_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MXNetArgValue.html">mxnet::runtime::MXNetArgValue</a></div><div class="ttdoc">A single argument value to PackedFunc. Containing both type_code and MXNetValue.</div><div class="ttdef"><b>Definition:</b> packed_func.h:480</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a4f5db46043a21b12a1b633825dc41692"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a4f5db46043a21b12a1b633825dc41692">mxnet::runtime::String::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">Return the length of the string.</div><div class="ttdef"><b>Definition:</b> container_ext.h:579</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a514b9dcd2d91a7dbb93de7d36124b6e8"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a514b9dcd2d91a7dbb93de7d36124b6e8">mxnet::runtime::Map::erase</a></div><div class="ttdeci">void erase(const K &amp;key)</div><div class="ttdef"><b>Definition:</b> container_ext.h:349</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_a38b46ae1ab051393dad25a5bc0a012dd"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a38b46ae1ab051393dad25a5bc0a012dd">mxnet::runtime::operator+</a></div><div class="ttdeci">String operator+(const String &amp;lhs, const String &amp;rhs)</div><div class="ttdef"><b>Definition:</b> container_ext.h:717</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a183de455cc237d5468d7848cafdaa351"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a183de455cc237d5468d7848cafdaa351">mxnet::runtime::MapObj::at</a></div><div class="ttdeci">mapped_type &amp; at(const key_type &amp;key)</div><div class="ttdoc">Index value associated with a key, throw exception if the key does not exist.</div><div class="ttdef"><b>Definition:</b> container_ext.h:117</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_accc4e781b042c931fdd79a7ec823fa17"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#accc4e781b042c931fdd79a7ec823fa17">mxnet::runtime::MapObj::begin</a></div><div class="ttdeci">const_iterator begin() const</div><div class="ttdef"><b>Definition:</b> container_ext.h:125</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1StringObj_html_ae7c5057455e6eb01c8d115e5d04bd089"><div class="ttname"><a href="classmxnet_1_1runtime_1_1StringObj.html#ae7c5057455e6eb01c8d115e5d04bd089">mxnet::runtime::StringObj::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> container_ext.h:454</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_ade033e0d69b025fd5b6958ca227ea46e"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#ade033e0d69b025fd5b6958ca227ea46e">mxnet::runtime::Map::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdef"><b>Definition:</b> container_ext.h:314</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a3da2dfce873b062a704389a08cc097fb"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a3da2dfce873b062a704389a08cc097fb">mxnet::runtime::MapObj::ContainerType</a></div><div class="ttdeci">std::unordered_map&lt; ObjectRef, ObjectRef, ObjectRefHash, ObjectRefEqual &gt; ContainerType</div><div class="ttdoc">Type of the actual underlying container.</div><div class="ttdef"><b>Definition:</b> container_ext.h:74</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a5cdde4b0769cb6e71a6907bbe78c3247"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a5cdde4b0769cb6e71a6907bbe78c3247">mxnet::runtime::String::String</a></div><div class="ttdeci">String(const char *other)</div><div class="ttdoc">Construct a new String object.</div><div class="ttdef"><b>Definition:</b> container_ext.h:511</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html">mxnet::runtime::Map</a></div><div class="ttdoc">Map container of NodeRef-&gt;NodeRef in DSL graph. Map implements copy on write semantics,...</div><div class="ttdef"><b>Definition:</b> container_ext.h:226</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_a0527e642fb418c27754a326057ff5a44"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a0527e642fb418c27754a326057ff5a44">mxnet::runtime::Merge</a></div><div class="ttdeci">Map&lt; K, V &gt; Merge(Map&lt; K, V &gt; lhs, const Map&lt; K, V &gt; &amp;rhs)</div><div class="ttdoc">Merge two Maps.</div><div class="ttdef"><b>Definition:</b> container_ext.h:437</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_a32515f4a7e93842e876226b9fb4f711c"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a32515f4a7e93842e876226b9fb4f711c">mxnet::runtime::Map::iterator::iterator</a></div><div class="ttdeci">iterator()</div><div class="ttdef"><b>Definition:</b> container_ext.h:381</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_aac0c2f6a5dfff09caf9156f98cd7d7e1"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aac0c2f6a5dfff09caf9156f98cd7d7e1">mxnet::runtime::Map::iterator::operator!=</a></div><div class="ttdeci">bool operator!=(const iterator &amp;other) const</div><div class="ttdoc">Compare iterators.</div><div class="ttdef"><b>Definition:</b> container_ext.h:388</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_aed081e693a572733b50ada790f42b047"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#aed081e693a572733b50ada790f42b047">mxnet::runtime::Map::find</a></div><div class="ttdeci">iterator find(const K &amp;key) const</div><div class="ttdef"><b>Definition:</b> container_ext.h:345</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_a93f9ba2bacf84a5b1f3b0b65116bb236"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a93f9ba2bacf84a5b1f3b0b65116bb236">mxnet::runtime::Map::iterator::operator++</a></div><div class="ttdeci">iterator operator++(int)</div><div class="ttdoc">Suffix self increment.</div><div class="ttdef"><b>Definition:</b> container_ext.h:404</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a10944f612ffa7db16cac5ec6a2ea1b7f"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a10944f612ffa7db16cac5ec6a2ea1b7f">mxnet::runtime::MapObj::const_iterator</a></div><div class="ttdeci">ContainerType::const_iterator const_iterator</div><div class="ttdoc">Iterator class.</div><div class="ttdef"><b>Definition:</b> container_ext.h:78</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1ObjectPtr_html_aae8d61e486de81ed0aa4b1f038dc9d2d"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectPtr.html#aae8d61e486de81ed0aa4b1f038dc9d2d">mxnet::runtime::ObjectPtr::get</a></div><div class="ttdeci">T * get() const</div><div class="ttdef"><b>Definition:</b> object.h:401</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_aa42c58889b7ba8e6813a8d6326bae4aa"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#aa42c58889b7ba8e6813a8d6326bae4aa">mxnet::runtime::Map::Map</a></div><div class="ttdeci">Map(Map&lt; K, V &gt; &amp;&amp;other)</div><div class="ttdoc">move constructor</div><div class="ttdef"><b>Definition:</b> container_ext.h:241</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1ObjectRef_html_a95de2a92783738031bf76edc2be7a6bd"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectRef.html#a95de2a92783738031bf76edc2be7a6bd">mxnet::runtime::ObjectRef::same_as</a></div><div class="ttdeci">bool same_as(const ObjectRef &amp;other) const</div><div class="ttdoc">Comparator.</div><div class="ttdef"><b>Definition:</b> object.h:511</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_ab2744a60d25b7a28b46c2d75d04f20d5"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#ab2744a60d25b7a28b46c2d75d04f20d5">mxnet::runtime::Map::Map</a></div><div class="ttdeci">Map()</div><div class="ttdoc">default constructor</div><div class="ttdef"><b>Definition:</b> container_ext.h:234</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a806c3a501188b0cd0d0a5ffae60fec95"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a806c3a501188b0cd0d0a5ffae60fec95">mxnet::runtime::MapObj::KVType</a></div><div class="ttdeci">ContainerType::value_type KVType</div><div class="ttdoc">Type of value stored in the hash map.</div><div class="ttdef"><b>Definition:</b> container_ext.h:80</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a6e7ed9775b8c439c0c7f837cd4564bdc"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a6e7ed9775b8c439c0c7f837cd4564bdc">mxnet::runtime::MapObj::end</a></div><div class="ttdeci">iterator end()</div><div class="ttdef"><b>Definition:</b> container_ext.h:129</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_a4cb8588702f220473ef892784241a6de"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a4cb8588702f220473ef892784241a6de">mxnet::runtime::operator!=</a></div><div class="ttdeci">bool operator!=(const String &amp;lhs, const std::string &amp;rhs)</div><div class="ttdef"><b>Definition:</b> container_ext.h:853</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a8d9becbcc61439007742b2602bb8016c"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a8d9becbcc61439007742b2602bb8016c">mxnet::runtime::String::data</a></div><div class="ttdeci">const char * data() const</div><div class="ttdoc">Return the data pointer.</div><div class="ttdef"><b>Definition:</b> container_ext.h:607</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_a769881f7ca066842d3fccc214be38010"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a769881f7ca066842d3fccc214be38010">mxnet::runtime::Map::iterator::reference</a></div><div class="ttdeci">value_type reference</div><div class="ttdef"><b>Definition:</b> container_ext.h:379</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_af59b6a81c591172cc82ebbef4be469af"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#af59b6a81c591172cc82ebbef4be469af">mxnet::runtime::Map::Map</a></div><div class="ttdeci">Map(ObjectPtr&lt; Object &gt; n)</div><div class="ttdoc">constructor from pointer</div><div class="ttdef"><b>Definition:</b> container_ext.h:271</div></div>
<div class="ttc" id="astructmxnet_1_1runtime_1_1ObjectRefEqual_html"><div class="ttname"><a href="structmxnet_1_1runtime_1_1ObjectRefEqual.html">mxnet::runtime::ObjectRefEqual</a></div><div class="ttdoc">String-aware ObjectRef equal functor.</div><div class="ttdef"><b>Definition:</b> container_ext.h:56</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_afdbfd4091a4fca1ca44dad994c69eca1"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#afdbfd4091a4fca1ca44dad994c69eca1">mxnet::runtime::Map::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdef"><b>Definition:</b> container_ext.h:324</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a2b4007e7bd5230d34ae153eb99c28bd3"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a2b4007e7bd5230d34ae153eb99c28bd3">mxnet::runtime::MapObj::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> container_ext.h:86</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a1c3727961fba6a4690c93d2ce99a2246"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a1c3727961fba6a4690c93d2ce99a2246">mxnet::runtime::MapObj::InsertMaybeReHash</a></div><div class="ttdeci">static void InsertMaybeReHash(const KVType &amp;kv, ObjectPtr&lt; Object &gt; *map)</div><div class="ttdoc">InsertMaybeReHash an entry into the given hash map.</div><div class="ttdef"><b>Definition:</b> container_ext.h:193</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a687d1326778a7dbbad3385f9353c6e2d"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a687d1326778a7dbbad3385f9353c6e2d">mxnet::runtime::MapObj::begin</a></div><div class="ttdeci">iterator begin()</div><div class="ttdef"><b>Definition:</b> container_ext.h:121</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_aa17ae09974c248aa8736aeb121b4e03e"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#aa17ae09974c248aa8736aeb121b4e03e">mxnet::runtime::String::compare</a></div><div class="ttdeci">int compare(const String &amp;other) const</div><div class="ttdoc">Compares this String object to other.</div><div class="ttdef"><b>Definition:</b> container_ext.h:537</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a73c61d4be2edca81314e979f79040d2e"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a73c61d4be2edca81314e979f79040d2e">mxnet::runtime::MapObj::find</a></div><div class="ttdeci">iterator find(const key_type &amp;key)</div><div class="ttdoc">Index value associated with a key.</div><div class="ttdef"><b>Definition:</b> container_ext.h:149</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a7e7f9f85874b20eaef439a4163c17115"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a7e7f9f85874b20eaef439a4163c17115">mxnet::runtime::Map::operator=</a></div><div class="ttdeci">Map&lt; K, V &gt; &amp; operator=(Map&lt; K, V &gt; &amp;&amp;other)</div><div class="ttdoc">copy assign operator</div><div class="ttdef"><b>Definition:</b> container_ext.h:254</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1StringObj_1_1FromStd_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1StringObj_1_1FromStd.html">mxnet::runtime::StringObj::FromStd</a></div><div class="ttdoc">An object representing string moved from std::string.</div><div class="ttdef"><b>Definition:</b> container_ext.h:681</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1ObjectRef_html_a2501a43190c64c4a711281d425a87745"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectRef.html#a2501a43190c64c4a711281d425a87745">mxnet::runtime::ObjectRef::as</a></div><div class="ttdeci">const ObjectType * as() const</div><div class="ttdoc">Try to downcast the internal Object to a raw pointer of a corresponding type.</div><div class="ttdef"><b>Definition:</b> object.h:804</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_a0004f281b38444a55ac42ddb0f677734"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a0004f281b38444a55ac42ddb0f677734">mxnet::runtime::Map::iterator::operator++</a></div><div class="ttdeci">iterator &amp; operator++()</div><div class="ttdoc">Prefix self increment, e.g. ++iter.</div><div class="ttdef"><b>Definition:</b> container_ext.h:399</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a9bbe6c2bfa634c1e0c130d48e6b5cdfe"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a9bbe6c2bfa634c1e0c130d48e6b5cdfe">mxnet::runtime::MapObj::erase</a></div><div class="ttdeci">void erase(const iterator &amp;position)</div><div class="ttdoc">Erase the entry associated with the iterator.</div><div class="ttdef"><b>Definition:</b> container_ext.h:156</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a05e8227c9fef7640992beb9a1f702cec"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a05e8227c9fef7640992beb9a1f702cec">mxnet::runtime::MapObj::MXNET_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">MXNET_DECLARE_FINAL_OBJECT_INFO(MapObj, Object)</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a6aee9b4ae9b09d649f145a71487c1f4e"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a6aee9b4ae9b09d649f145a71487c1f4e">mxnet::runtime::String::operator=</a></div><div class="ttdeci">String &amp; operator=(std::string other)</div><div class="ttdoc">Change the value the reference object points to.</div><div class="ttdef"><b>Definition:</b> container_ext.h:707</div></div>
<div class="ttc" id="ainclude_2mxnet_2runtime_2memory_8h_html"><div class="ttname"><a href="include_2mxnet_2runtime_2memory_8h.html">memory.h</a></div><div class="ttdoc">Runtime memory management.</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1StringObj_1_1FromStd_html_a7d96ba0c90240037ebc4265a5fc301f5"><div class="ttname"><a href="classmxnet_1_1runtime_1_1StringObj_1_1FromStd.html#a7d96ba0c90240037ebc4265a5fc301f5">mxnet::runtime::StringObj::FromStd::FromStd</a></div><div class="ttdeci">FromStd(std::string other)</div><div class="ttdoc">Construct a new FromStd object.</div><div class="ttdef"><b>Definition:</b> container_ext.h:691</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_a209cecaf75bb7a5aafbbf274ad772dbd"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a209cecaf75bb7a5aafbbf274ad772dbd">mxnet::runtime::Map::iterator::operator*</a></div><div class="ttdeci">reference operator*() const</div><div class="ttdoc">De-reference iterators.</div><div class="ttdef"><b>Definition:</b> container_ext.h:394</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1ObjectRef_html_a5009d0661d741e4b105402b3126663e9"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectRef.html#a5009d0661d741e4b105402b3126663e9">mxnet::runtime::ObjectRef::data_</a></div><div class="ttdeci">ObjectPtr&lt; Object &gt; data_</div><div class="ttdoc">Internal pointer that backs the reference.</div><div class="ttdef"><b>Definition:</b> object.h:575</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_aac8588c66abb6452596115f081a037fd"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#aac8588c66abb6452596115f081a037fd">mxnet::runtime::Map::iterator::difference_type</a></div><div class="ttdeci">int64_t difference_type</div><div class="ttdef"><b>Definition:</b> container_ext.h:376</div></div>
<div class="ttc" id="astructmxnet_1_1runtime_1_1ObjectHash_html"><div class="ttname"><a href="structmxnet_1_1runtime_1_1ObjectHash.html">mxnet::runtime::ObjectHash</a></div><div class="ttdoc">ObjectRef hash functor.</div><div class="ttdef"><b>Definition:</b> object.h:620</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_afaf0a06f62ddbb7d1f5daff57fd8522f"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#afaf0a06f62ddbb7d1f5daff57fd8522f">mxnet::runtime::operator&lt;</a></div><div class="ttdeci">bool operator&lt;(const String &amp;lhs, const std::string &amp;rhs)</div><div class="ttdef"><b>Definition:</b> container_ext.h:748</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html">mxnet::runtime::Map::iterator</a></div><div class="ttdoc">Iterator of the hash map.</div><div class="ttdef"><b>Definition:</b> container_ext.h:373</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_a10308e9c378a8457908741fbc2ac0dc3"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a10308e9c378a8457908741fbc2ac0dc3">mxnet::runtime::operator&gt;</a></div><div class="ttdeci">bool operator&gt;(const String &amp;lhs, const std::string &amp;rhs)</div><div class="ttdef"><b>Definition:</b> container_ext.h:769</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html">mxnet::runtime::MapObj</a></div><div class="ttdoc">Shared content of all specializations of hash map.</div><div class="ttdef"><b>Definition:</b> container_ext.h:67</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a5b10bb7f755129cced8ea1f0902338be"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a5b10bb7f755129cced8ea1f0902338be">mxnet::runtime::String::c_str</a></div><div class="ttdeci">const char * c_str() const</div><div class="ttdoc">Returns a pointer to the char array in the string.</div><div class="ttdef"><b>Definition:</b> container_ext.h:570</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_aad31941278c7e6b2e6342d384aefa6da"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#aad31941278c7e6b2e6342d384aefa6da">mxnet::runtime::MapObj::Empty</a></div><div class="ttdeci">static ObjectPtr&lt; MapObj &gt; Empty()</div><div class="ttdoc">Create an empty container.</div><div class="ttdef"><b>Definition:</b> container_ext.h:170</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1StringObj_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1StringObj.html">mxnet::runtime::StringObj</a></div><div class="ttdoc">An object representing string. It's POD type.</div><div class="ttdef"><b>Definition:</b> container_ext.h:445</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_a43738149e3dac1738390743d3de5cfaca7e465197746c27c835cadd7ee0cef82f"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca7e465197746c27c835cadd7ee0cef82f">mxnet::runtime::kMXNetMap</a></div><div class="ttdeci">@ kMXNetMap</div><div class="ttdef"><b>Definition:</b> object.h:57</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a09cb499efeed4cf00760b71d01933015"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a09cb499efeed4cf00760b71d01933015">mxnet::runtime::String::CanConvertFrom</a></div><div class="ttdeci">static bool CanConvertFrom(const MXNetArgValue &amp;val)</div><div class="ttdoc">Check if a MXNetArgValue can be converted to String, i.e. it can be std::string or String.</div><div class="ttdef"><b>Definition:</b> packed_func.h:1289</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1ObjectRef_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1ObjectRef.html">mxnet::runtime::ObjectRef</a></div><div class="ttdoc">Base class of all object reference.</div><div class="ttdef"><b>Definition:</b> object.h:500</div></div>
<div class="ttc" id="anamespacestd_html"><div class="ttname"><a href="namespacestd.html">std</a></div><div class="ttdef"><b>Definition:</b> optional.h:251</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a80f14824d53dd45b92b974d70efeecbe"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a80f14824d53dd45b92b974d70efeecbe">mxnet::runtime::Map::operator=</a></div><div class="ttdeci">Map&lt; K, V &gt; &amp; operator=(const Map&lt; K, V &gt; &amp;other)</div><div class="ttdoc">move assign operator</div><div class="ttdef"><b>Definition:</b> container_ext.h:263</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a0e5dc108203a562119509a0657320bd0"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a0e5dc108203a562119509a0657320bd0">mxnet::runtime::String::String</a></div><div class="ttdeci">String()</div><div class="ttdoc">Construct an empty string.</div><div class="ttdef"><b>Definition:</b> container_ext.h:495</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_a0681ef3f5d70fa6bf2c74903c16cdefd"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a0681ef3f5d70fa6bf2c74903c16cdefd">mxnet::runtime::operator==</a></div><div class="ttdeci">bool operator==(const String &amp;lhs, const std::string &amp;rhs)</div><div class="ttdef"><b>Definition:</b> container_ext.h:832</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a2b0f6fc9e8f25d00bcac864202aa6e02"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a2b0f6fc9e8f25d00bcac864202aa6e02">mxnet::runtime::MapObj::CreateFromRange</a></div><div class="ttdeci">static ObjectPtr&lt; Object &gt; CreateFromRange(IterType first, IterType last)</div><div class="ttdoc">Create the map using contents from the given iterators.</div><div class="ttdef"><b>Definition:</b> container_ext.h:183</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_ac6ae46151b0302b2e42868d0a0e356ea"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#ac6ae46151b0302b2e42868d0a0e356ea">mxnet::runtime::operator&lt;=</a></div><div class="ttdeci">bool operator&lt;=(const String &amp;lhs, const std::string &amp;rhs)</div><div class="ttdef"><b>Definition:</b> container_ext.h:790</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a8cb8daba0bd5d66f7068cdfb33bc8181"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a8cb8daba0bd5d66f7068cdfb33bc8181">mxnet::runtime::String::HashBytes</a></div><div class="ttdeci">static size_t HashBytes(const char *data, size_t size)</div><div class="ttdoc">Hash the binary bytes.</div><div class="ttdef"><b>Definition:</b> container_ext.h:633</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_a722aa792533afa86b5608bfe85a23f03"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a722aa792533afa86b5608bfe85a23f03">mxnet::runtime::Map::iterator::operator-&gt;</a></div><div class="ttdeci">pointer operator-&gt;() const =delete</div><div class="ttdoc">De-reference iterators is not allowed.</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1StringObj_html_a7451f38f0faf98bcd50c7fb97dde2566"><div class="ttname"><a href="classmxnet_1_1runtime_1_1StringObj.html#a7451f38f0faf98bcd50c7fb97dde2566">mxnet::runtime::StringObj::data</a></div><div class="ttdeci">const char * data</div><div class="ttdoc">The pointer to string data.</div><div class="ttdef"><b>Definition:</b> container_ext.h:448</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_aa67bf654c00eeebb68ca702421de4963"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#aa67bf654c00eeebb68ca702421de4963">mxnet::runtime::String::empty</a></div><div class="ttdeci">bool empty() const</div><div class="ttdoc">Retun if the string is empty.</div><div class="ttdef"><b>Definition:</b> container_ext.h:598</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_a9cf291b8df1b9993ca0d1cccb4f51b4a"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a9cf291b8df1b9993ca0d1cccb4f51b4a">mxnet::runtime::Map::iterator::pointer</a></div><div class="ttdeci">value_type * pointer</div><div class="ttdef"><b>Definition:</b> container_ext.h:378</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a96f3a21ed7a85442eb0f002bd080d40a"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a96f3a21ed7a85442eb0f002bd080d40a">mxnet::runtime::Map::Map</a></div><div class="ttdeci">Map(const std::unordered_map&lt; K, V, Hash, Equal &gt; &amp;init)</div><div class="ttdoc">constructor from unordered_map</div><div class="ttdef"><b>Definition:</b> container_ext.h:294</div></div>
<div class="ttc" id="astructmxnet_1_1runtime_1_1ObjectRefEqual_html_a3db6837738cc5616bca97cafce41a1cf"><div class="ttname"><a href="structmxnet_1_1runtime_1_1ObjectRefEqual.html#a3db6837738cc5616bca97cafce41a1cf">mxnet::runtime::ObjectRefEqual::operator()</a></div><div class="ttdeci">bool operator()(const ObjectRef &amp;a, const ObjectRef &amp;b) const</div><div class="ttdoc">Check if the two ObjectRef are equal.</div><div class="ttdef"><b>Definition:</b> container_ext.h:904</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_af68138e148571249fa1c48d993a4aa89"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#af68138e148571249fa1c48d993a4aa89">mxnet::runtime::operator&lt;&lt;</a></div><div class="ttdeci">std::ostream &amp; operator&lt;&lt;(std::ostream &amp;out, const String &amp;input)</div><div class="ttdef"><b>Definition:</b> container_ext.h:873</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_adcaacacdca47f3d68140a13bb8a73743"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#adcaacacdca47f3d68140a13bb8a73743">mxnet::runtime::MapObj::size</a></div><div class="ttdeci">size_t size() const</div><div class="ttdoc">Number of elements in the MapObj.</div><div class="ttdef"><b>Definition:</b> container_ext.h:93</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1StringObj_html_a5e540bb1951b5fef7d0937dbe971edb1"><div class="ttname"><a href="classmxnet_1_1runtime_1_1StringObj.html#a5e540bb1951b5fef7d0937dbe971edb1">mxnet::runtime::StringObj::MXNET_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">MXNET_DECLARE_FINAL_OBJECT_INFO(StringObj, Object)</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a64384eb681666549bd4f82346266495c"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a64384eb681666549bd4f82346266495c">mxnet::runtime::MapObj::count</a></div><div class="ttdeci">size_t count(const key_type &amp;key) const</div><div class="ttdoc">Count the number of times a key exists in the hash map.</div><div class="ttdef"><b>Definition:</b> container_ext.h:101</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a346acdf3143412eaab63e8f3664cd575"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a346acdf3143412eaab63e8f3664cd575">mxnet::runtime::String::operator+</a></div><div class="ttdeci">friend String operator+(const String &amp;lhs, const String &amp;rhs)</div><div class="ttdef"><b>Definition:</b> container_ext.h:717</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a46c5b45f8b8ec5e4d0bb4297738c2d50"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a46c5b45f8b8ec5e4d0bb4297738c2d50">mxnet::runtime::MapObj::at</a></div><div class="ttdeci">const mapped_type &amp; at(const key_type &amp;key) const</div><div class="ttdoc">Index value associated with a key, throw exception if the key does not exist.</div><div class="ttdef"><b>Definition:</b> container_ext.h:109</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1StringObj_html_a3c71fb179152ea8e842d5cd0920a34eb"><div class="ttname"><a href="classmxnet_1_1runtime_1_1StringObj.html#a3c71fb179152ea8e842d5cd0920a34eb">mxnet::runtime::StringObj::_type_index</a></div><div class="ttdeci">static constexpr const uint32_t _type_index</div><div class="ttdef"><b>Definition:</b> container_ext.h:453</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html">mxnet::runtime::String</a></div><div class="ttdoc">Reference to string objects.</div><div class="ttdef"><b>Definition:</b> container_ext.h:490</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a71556a12b75bd60a7b574a6f33002ebc"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a71556a12b75bd60a7b574a6f33002ebc">mxnet::runtime::MapObj::erase</a></div><div class="ttdeci">void erase(const key_type &amp;key)</div><div class="ttdoc">Erase the entry associated with the key, do nothing if not exists.</div><div class="ttdef"><b>Definition:</b> container_ext.h:163</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_a253713fbe20d09e1a320a1b011827e84"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#a253713fbe20d09e1a320a1b011827e84">mxnet::runtime::String::MXNET_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">MXNET_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(String, ObjectRef, StringObj)</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a5524d36fcafca9272a9094b84da94b70"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a5524d36fcafca9272a9094b84da94b70">mxnet::runtime::MapObj::find</a></div><div class="ttdeci">const_iterator find(const key_type &amp;key) const</div><div class="ttdoc">Index value associated with a key.</div><div class="ttdef"><b>Definition:</b> container_ext.h:141</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_ae08f2fe697160e12a023933935572934"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#ae08f2fe697160e12a023933935572934">mxnet::runtime::Map::CopyOnWrite</a></div><div class="ttdeci">MapObj * CopyOnWrite()</div><div class="ttdoc">copy on write semantics Do nothing if current handle is the unique copy of the array....</div><div class="ttdef"><b>Definition:</b> container_ext.h:361</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_a4a57b095313af6df54b0ea24361fd9c9"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a4a57b095313af6df54b0ea24361fd9c9">mxnet::runtime::operator&gt;=</a></div><div class="ttdeci">bool operator&gt;=(const String &amp;lhs, const std::string &amp;rhs)</div><div class="ttdef"><b>Definition:</b> container_ext.h:811</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_afac0df396e8da794b8bc2fae7e8997dc"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#afac0df396e8da794b8bc2fae7e8997dc">mxnet::runtime::Map::iterator::iterator_category</a></div><div class="ttdeci">std::bidirectional_iterator_tag iterator_category</div><div class="ttdef"><b>Definition:</b> container_ext.h:375</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_1_1iterator_html_a0539b40ed6e5a547be71056da002ca03"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map_1_1iterator.html#a0539b40ed6e5a547be71056da002ca03">mxnet::runtime::Map::iterator::operator==</a></div><div class="ttdeci">bool operator==(const iterator &amp;other) const</div><div class="ttdoc">Compare iterators.</div><div class="ttdef"><b>Definition:</b> container_ext.h:384</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_ac048ed9828a674b149c296416c702ecf"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#ac048ed9828a674b149c296416c702ecf">mxnet::runtime::Map::Set</a></div><div class="ttdeci">void Set(const K &amp;key, const V &amp;value)</div><div class="ttdoc">set the Map.</div><div class="ttdef"><b>Definition:</b> container_ext.h:332</div></div>
<div class="ttc" id="aobject_8h_html"><div class="ttname"><a href="object_8h.html">object.h</a></div><div class="ttdoc">A managed object in MXNet runtime.</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_a7986994964e5faa9d3a9cc47b67d574c"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#a7986994964e5faa9d3a9cc47b67d574c">mxnet::runtime::MapObj::CopyFrom</a></div><div class="ttdeci">static ObjectPtr&lt; MapObj &gt; CopyFrom(MapObj *from)</div><div class="ttdoc">Create an empty container with elements copying from another MapObj.</div><div class="ttdef"><b>Definition:</b> container_ext.h:202</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1String_html_ae6c0d059f2813524c8c6630b7ab9c0ac"><div class="ttname"><a href="classmxnet_1_1runtime_1_1String.html#ae6c0d059f2813524c8c6630b7ab9c0ac">mxnet::runtime::String::length</a></div><div class="ttdeci">size_t length() const</div><div class="ttdoc">Return the length of the string.</div><div class="ttdef"><b>Definition:</b> container_ext.h:589</div></div>
<div class="ttc" id="anamespacemxnet_1_1runtime_html_a43738149e3dac1738390743d3de5cfaca979d4bd568d6e9233185b070f4d4a740"><div class="ttname"><a href="namespacemxnet_1_1runtime.html#a43738149e3dac1738390743d3de5cfaca979d4bd568d6e9233185b070f4d4a740">mxnet::runtime::kMXNetString</a></div><div class="ttdeci">@ kMXNetString</div><div class="ttdef"><b>Definition:</b> object.h:58</div></div>
<div class="ttc" id="astructmxnet_1_1runtime_1_1ObjectRefHash_html"><div class="ttname"><a href="structmxnet_1_1runtime_1_1ObjectRefHash.html">mxnet::runtime::ObjectRefHash</a></div><div class="ttdoc">String-aware ObjectRef hash functor.</div><div class="ttdef"><b>Definition:</b> container_ext.h:46</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a7a6aa686961933959690f5e6936289ad"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a7a6aa686961933959690f5e6936289ad">mxnet::runtime::Map::operator[]</a></div><div class="ttdeci">const V operator[](const K &amp;key) const</div><div class="ttdoc">Read element from map.</div><div class="ttdef"><b>Definition:</b> container_ext.h:310</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_aa5c67029f78a5cd17cb931b0d5c39a4a"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#aa5c67029f78a5cd17cb931b0d5c39a4a">mxnet::runtime::Map::key_type</a></div><div class="ttdeci">K key_type</div><div class="ttdef"><b>Definition:</b> container_ext.h:228</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1MapObj_html_ab4144de099f74f15de7c0ca8c690c7e7"><div class="ttname"><a href="classmxnet_1_1runtime_1_1MapObj.html#ab4144de099f74f15de7c0ca8c690c7e7">mxnet::runtime::MapObj::_type_index</a></div><div class="ttdeci">static constexpr const uint32_t _type_index</div><div class="ttdef"><b>Definition:</b> container_ext.h:85</div></div>
<div class="ttc" id="aclassmxnet_1_1runtime_1_1Map_html_a0df1a995dcfede7362dc5fe99af2ff3a"><div class="ttname"><a href="classmxnet_1_1runtime_1_1Map.html#a0df1a995dcfede7362dc5fe99af2ff3a">mxnet::runtime::Map::Map</a></div><div class="ttdeci">Map(const Map&lt; K, V &gt; &amp;other)</div><div class="ttdoc">copy constructor</div><div class="ttdef"><b>Definition:</b> container_ext.h:248</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 5 2023 03:47:40 for mxnet by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>