<!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.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>ArmNN: InvalidArgumentException 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">
  $(document).ready(initResizable);
</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">ArmNN
   &#160;<span id="projectnumber">NotReleased</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</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">
$(document).ready(function(){initNavTree('classarmnn_1_1_invalid_argument_exception.html','');});
</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="classarmnn_1_1_invalid_argument_exception-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">InvalidArgumentException Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="_exceptions_8hpp_source.html">Exceptions.hpp</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for InvalidArgumentException:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classarmnn_1_1_invalid_argument_exception.png" usemap="#InvalidArgumentException_map" alt=""/>
  <map id="InvalidArgumentException_map" name="InvalidArgumentException_map">
<area href="classarmnn_1_1_exception.html" title="Base class for all ArmNN exceptions so that users can filter to just those. " alt="Exception" shape="rect" coords="0,56,158,80"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_methods_classarmnn_1_1_exception"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classarmnn_1_1_exception')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classarmnn_1_1_exception.html">Exception</a></td></tr>
<tr class="memitem:ad56b7b14f59554e891ad88b26cbf8ac3 inherit pub_methods_classarmnn_1_1_exception"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_exception.html#ad56b7b14f59554e891ad88b26cbf8ac3">Exception</a> (const std::string &amp;message)</td></tr>
<tr class="separator:ad56b7b14f59554e891ad88b26cbf8ac3 inherit pub_methods_classarmnn_1_1_exception"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9547759a71678ab215a14775db9cd108 inherit pub_methods_classarmnn_1_1_exception"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_exception.html#a9547759a71678ab215a14775db9cd108">Exception</a> (const std::string &amp;message, const <a class="el" href="structarmnn_1_1_check_location.html">CheckLocation</a> &amp;location)</td></tr>
<tr class="separator:a9547759a71678ab215a14775db9cd108 inherit pub_methods_classarmnn_1_1_exception"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d5973185de48fcc43535e89fded0764 inherit pub_methods_classarmnn_1_1_exception"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_exception.html#a1d5973185de48fcc43535e89fded0764">Exception</a> (const <a class="el" href="classarmnn_1_1_exception.html">Exception</a> &amp;other, const std::string &amp;message, const <a class="el" href="structarmnn_1_1_check_location.html">CheckLocation</a> &amp;location)</td></tr>
<tr class="separator:a1d5973185de48fcc43535e89fded0764 inherit pub_methods_classarmnn_1_1_exception"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abf843cbb29dec939d0731e491bab6f70 inherit pub_methods_classarmnn_1_1_exception"><td class="memItemLeft" align="right" valign="top">virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarmnn_1_1_exception.html#abf843cbb29dec939d0731e491bab6f70">what</a> () const noexcept override</td></tr>
<tr class="separator:abf843cbb29dec939d0731e491bab6f70 inherit pub_methods_classarmnn_1_1_exception"><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 class="definition">Definition at line <a class="el" href="_exceptions_8hpp_source.html#l00080">80</a> of file <a class="el" href="_exceptions_8hpp_source.html">Exceptions.hpp</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>include/armnn/<a class="el" href="_exceptions_8hpp_source.html">Exceptions.hpp</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="namespacearmnn.html">armnn</a></li><li class="navelem"><a class="el" href="classarmnn_1_1_invalid_argument_exception.html">InvalidArgumentException</a></li>
    <li class="footer">Generated on Fri Mar 13 2020 16:07:03 for ArmNN by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
