<!-- HTML header for doxygen 1.8.15-->
<!-- Remember to use version doxygen 1.8.15 +-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: NamedDataset Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" async="async" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="stylesheet.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;">
  <img alt="Compute Library" src="https://raw.githubusercontent.com/ARM-software/ComputeLibrary/gh-pages/ACL_logo.png" style="max-width: 100%;margin-top: 15px;margin-left: 10px"/>
  <td style="padding-left: 0.5em;">
   <div id="projectname">
   &#160;<span id="projectnumber">19.08</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.15 -->
<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>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset.xhtml','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">NamedDataset Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Abstract implementation of a named dataset.  
 <a href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset.xhtml#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_dataset_8h_source.xhtml">Dataset.h</a>&gt;</code></p>
<div class="dynheader">
Collaboration diagram for NamedDataset:</div>
<div class="dyncontent">
<div class="center"><iframe scrolling="no" frameborder="0" src="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset__coll__graph.svg" width="131" height="112"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
</div>
<center><span class="legend">[<a target="top" href="graph_legend.xhtml">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aac7326eefd026a1b948ae98ff7a8acbf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset.xhtml#aac7326eefd026a1b948ae98ff7a8acbf">NamedDataset</a> (<a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset.xhtml">NamedDataset</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:aac7326eefd026a1b948ae98ff7a8acbf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be move constructed.  <a href="#aac7326eefd026a1b948ae98ff7a8acbf">More...</a><br /></td></tr>
<tr class="separator:aac7326eefd026a1b948ae98ff7a8acbf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d89c28bd42ba9a52da008bb69367171"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset.xhtml#a1d89c28bd42ba9a52da008bb69367171">name</a> () const</td></tr>
<tr class="memdesc:a1d89c28bd42ba9a52da008bb69367171"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return name of the dataset.  <a href="#a1d89c28bd42ba9a52da008bb69367171">More...</a><br /></td></tr>
<tr class="separator:a1d89c28bd42ba9a52da008bb69367171"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset.xhtml">Dataset</a></td></tr>
<tr class="memitem:a6c77d69d08daa8c99952d9e40de8d086 inherit pub_methods_classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset.xhtml#a6c77d69d08daa8c99952d9e40de8d086">Dataset</a> (<a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset.xhtml">Dataset</a> &amp;&amp;)=default</td></tr>
<tr class="memdesc:a6c77d69d08daa8c99952d9e40de8d086 inherit pub_methods_classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allow instances of this class to be move constructed.  <a href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset.xhtml#a6c77d69d08daa8c99952d9e40de8d086">More...</a><br /></td></tr>
<tr class="separator:a6c77d69d08daa8c99952d9e40de8d086 inherit pub_methods_classarm__compute_1_1test_1_1framework_1_1dataset_1_1_dataset"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Abstract implementation of a named dataset. </p>
<p>The name should describe the values of the dataset. </p>

<p class="definition">Definition at line <a class="el" href="_dataset_8h_source.xhtml#l00056">56</a> of file <a class="el" href="_dataset_8h_source.xhtml">Dataset.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aac7326eefd026a1b948ae98ff7a8acbf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac7326eefd026a1b948ae98ff7a8acbf">&#9670;&nbsp;</a></span>NamedDataset()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset.xhtml">NamedDataset</a> </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset.xhtml">NamedDataset</a> &amp;&amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Allow instances of this class to be move constructed. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a1d89c28bd42ba9a52da008bb69367171"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d89c28bd42ba9a52da008bb69367171">&#9670;&nbsp;</a></span>name()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string name </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Return name of the dataset. </p>
<dl class="section return"><dt>Returns</dt><dd>Description of the values. </dd></dl>

<p class="definition">Definition at line <a class="el" href="_dataset_8h_source.xhtml#l00079">79</a> of file <a class="el" href="_dataset_8h_source.xhtml">Dataset.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    {</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="keywordflow">return</span> _name;</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    }</div></div><!-- fragment -->
<p class="reference">Referenced by <a class="el" href="_initializer_list_dataset_8h_source.xhtml#l00118">InitializerListDataset&lt; T &gt;::begin()</a>, <a class="el" href="_range_dataset_8h_source.xhtml#l00122">RangeDataset&lt; T &gt;::begin()</a>, <a class="el" href="_singleton_dataset_8h_source.xhtml#l00127">SingletonDataset&lt; T &gt;::begin()</a>, <a class="el" href="_container_dataset_8h_source.xhtml#l00135">ContainerDataset&lt; T &gt;::begin()</a>, <a class="el" href="_container_dataset_8h_source.xhtml#l00071">ContainerDataset&lt; T &gt;::ContainerDataset()</a>, <a class="el" href="_initializer_list_dataset_8h_source.xhtml#l00057">InitializerListDataset&lt; T &gt;::InitializerListDataset()</a>, <a class="el" href="_initializer_list_dataset_8h_source.xhtml#l00076">InitializerListDataset&lt; T &gt;::iterator::iterator()</a>, <a class="el" href="_range_dataset_8h_source.xhtml#l00078">RangeDataset&lt; T &gt;::iterator::iterator()</a>, <a class="el" href="_container_dataset_8h_source.xhtml#l00092">ContainerDataset&lt; T &gt;::iterator::iterator()</a>, and <a class="el" href="_range_dataset_8h_source.xhtml#l00058">RangeDataset&lt; T &gt;::RangeDataset()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>tests/framework/datasets/<a class="el" href="_dataset_8h_source.xhtml">Dataset.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1test.xhtml">test</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1test_1_1framework.xhtml">framework</a></li><li class="navelem"><a class="el" href="namespacearm__compute_1_1test_1_1framework_1_1dataset.xhtml">dataset</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1test_1_1framework_1_1dataset_1_1_named_dataset.xhtml">NamedDataset</a></li>
    <li class="footer">Generated on Mon Sep 2 2019 11:47:40 for Compute Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.15 </li>
  </ul>
</div>
</body>
</html>
