<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.14">
  <compounddef id="storage_8h" kind="file" language="C++">
    <compoundname>storage.h</compoundname>
    <includes local="no">mapbox/variant_cast.hpp</includes>
    <includes local="yes">./serialization/variant.h</includes>
    <includedby refid="types_8h" local="yes">/Users/classner/git/forpy/include/forpy/types.h</includedby>
    <includedby refid="idataprovider_8h" local="yes">/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h</includedby>
    <includedby refid="fastdecider_8h" local="yes">/Users/classner/git/forpy/include/forpy/deciders/fastdecider.h</includedby>
    <includedby refid="classificationleaf_8h" local="yes">/Users/classner/git/forpy/include/forpy/leafs/classificationleaf.h</includedby>
    <incdepgraph>
      <node id="1348">
        <label>mapbox/variant_cast.hpp</label>
      </node>
      <node id="1347">
        <label>/Users/classner/git/forpy/include/forpy/util/storage.h</label>
        <link refid="storage_8h"/>
        <childnode refid="1348" relation="include">
        </childnode>
        <childnode refid="1349" relation="include">
        </childnode>
      </node>
      <node id="1349">
        <label>./serialization/variant.h</label>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="1361">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/ithreshopt.h</label>
        <link refid="ithreshopt_8h"/>
        <childnode refid="1358" relation="include">
        </childnode>
        <childnode refid="1362" relation="include">
        </childnode>
        <childnode refid="1366" relation="include">
        </childnode>
        <childnode refid="1367" relation="include">
        </childnode>
        <childnode refid="1368" relation="include">
        </childnode>
        <childnode refid="1369" relation="include">
        </childnode>
      </node>
      <node id="1374">
        <label>/Users/classner/git/forpy/include/forpy/impurities/renyientropy.h</label>
        <link refid="renyientropy_8h"/>
        <childnode refid="1375" relation="include">
        </childnode>
      </node>
      <node id="1376">
        <label>/Users/classner/git/forpy/include/forpy/gains/entropygain.h</label>
        <link refid="entropygain_8h"/>
        <childnode refid="1377" relation="include">
        </childnode>
      </node>
      <node id="1366">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/classification_opt.h</label>
        <link refid="classification__opt_8h"/>
        <childnode refid="1367" relation="include">
        </childnode>
        <childnode refid="1368" relation="include">
        </childnode>
      </node>
      <node id="1380">
        <label>/Users/classner/git/forpy/include/forpy/impurities/classificationerror.h</label>
        <link refid="classificationerror_8h"/>
        <childnode refid="1375" relation="include">
        </childnode>
        <childnode refid="1374" relation="include">
        </childnode>
      </node>
      <node id="1354">
        <label>/Users/classner/git/forpy/include/forpy/forpy.h</label>
        <link refid="forpy_8h"/>
      </node>
      <node id="1352">
        <label>/Users/classner/git/forpy/include/forpy/data_providers/fastdprov.h</label>
        <link refid="fastdprov_8h"/>
        <childnode refid="1353" relation="include">
        </childnode>
        <childnode refid="1355" relation="include">
        </childnode>
      </node>
      <node id="1360">
        <label>/Users/classner/git/forpy/include/forpy/deciders/deciders.h</label>
        <link refid="deciders_8h"/>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1377">
        <label>/Users/classner/git/forpy/include/forpy/gains/gains.h</label>
        <link refid="gains_8h"/>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1364">
        <label>/Users/classner/git/forpy/include/forpy/leafs/leafs.h</label>
        <link refid="leafs_8h"/>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1358">
        <label>/Users/classner/git/forpy/include/forpy/deciders/idecider.h</label>
        <link refid="idecider_8h"/>
        <childnode refid="1359" relation="include">
        </childnode>
        <childnode refid="1360" relation="include">
        </childnode>
        <childnode refid="1355" relation="include">
        </childnode>
      </node>
      <node id="1367">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/fastclassopt.h</label>
        <link refid="fastclassopt_8h"/>
        <childnode refid="1356" relation="include">
        </childnode>
        <childnode refid="1368" relation="include">
        </childnode>
      </node>
      <node id="1370">
        <label>/Users/classner/git/forpy/include/forpy/util/desk.h</label>
        <link refid="desk_8h"/>
        <childnode refid="1359" relation="include">
        </childnode>
        <childnode refid="1361" relation="include">
        </childnode>
        <childnode refid="1358" relation="include">
        </childnode>
        <childnode refid="1367" relation="include">
        </childnode>
        <childnode refid="1366" relation="include">
        </childnode>
        <childnode refid="1355" relation="include">
        </childnode>
        <childnode refid="1371" relation="include">
        </childnode>
        <childnode refid="1369" relation="include">
        </childnode>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1355">
        <label>/Users/classner/git/forpy/include/forpy/tree.h</label>
        <link refid="tree_8h"/>
        <childnode refid="1356" relation="include">
        </childnode>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1363">
        <label>/Users/classner/git/forpy/include/forpy/leafs/classificationleaf.h</label>
        <link refid="classificationleaf_8h"/>
        <childnode refid="1356" relation="include">
        </childnode>
        <childnode refid="1364" relation="include">
        </childnode>
      </node>
      <node id="1381">
        <label>/Users/classner/git/forpy/include/forpy/gains/igaincalculator.h</label>
        <link refid="igaincalculator_8h"/>
        <childnode refid="1377" relation="include">
        </childnode>
        <childnode refid="1376" relation="include">
        </childnode>
      </node>
      <node id="1368">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/threshold_optimizers.h</label>
        <link refid="threshold__optimizers_8h"/>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1378">
        <label>/Users/classner/git/forpy/include/forpy/impurities/tsallisentropy.h</label>
        <link refid="tsallisentropy_8h"/>
        <childnode refid="1375" relation="include">
        </childnode>
      </node>
      <node id="1373">
        <label>/Users/classner/git/forpy/include/forpy/impurities/shannonentropy.h</label>
        <link refid="shannonentropy_8h"/>
        <childnode refid="1367" relation="include">
        </childnode>
        <childnode refid="1374" relation="include">
        </childnode>
        <childnode refid="1375" relation="include">
        </childnode>
        <childnode refid="1378" relation="include">
        </childnode>
      </node>
      <node id="1369">
        <label>/Users/classner/git/forpy/include/forpy/threshold_optimizers/regression_opt.h</label>
        <link refid="regression__opt_8h"/>
        <childnode refid="1368" relation="include">
        </childnode>
      </node>
      <node id="1372">
        <label>/Users/classner/git/forpy/include/forpy/impurities/ientropyfunction.h</label>
        <link refid="ientropyfunction_8h"/>
        <childnode refid="1367" relation="include">
        </childnode>
        <childnode refid="1373" relation="include">
        </childnode>
        <childnode refid="1366" relation="include">
        </childnode>
        <childnode refid="1379" relation="include">
        </childnode>
        <childnode refid="1380" relation="include">
        </childnode>
        <childnode refid="1375" relation="include">
        </childnode>
        <childnode refid="1374" relation="include">
        </childnode>
        <childnode refid="1378" relation="include">
        </childnode>
        <childnode refid="1365" relation="include">
        </childnode>
      </node>
      <node id="1375">
        <label>/Users/classner/git/forpy/include/forpy/impurities/impurities.h</label>
        <link refid="impurities_8h"/>
        <childnode refid="1376" relation="include">
        </childnode>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1365">
        <label>/Users/classner/git/forpy/include/forpy/leafs/regressionleaf.h</label>
        <link refid="regressionleaf_8h"/>
        <childnode refid="1364" relation="include">
        </childnode>
      </node>
      <node id="1356">
        <label>/Users/classner/git/forpy/include/forpy/forest.h</label>
        <link refid="forest_8h"/>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1357">
        <label>/Users/classner/git/forpy/include/forpy/data_providers/idataprovider.h</label>
        <link refid="idataprovider_8h"/>
        <childnode refid="1352" relation="include">
        </childnode>
        <childnode refid="1353" relation="include">
        </childnode>
        <childnode refid="1358" relation="include">
        </childnode>
        <childnode refid="1361" relation="include">
        </childnode>
        <childnode refid="1356" relation="include">
        </childnode>
        <childnode refid="1363" relation="include">
        </childnode>
        <childnode refid="1362" relation="include">
        </childnode>
        <childnode refid="1355" relation="include">
        </childnode>
        <childnode refid="1365" relation="include">
        </childnode>
      </node>
      <node id="1350">
        <label>/Users/classner/git/forpy/include/forpy/util/storage.h</label>
        <link refid="storage_8h"/>
        <childnode refid="1351" relation="include">
        </childnode>
        <childnode refid="1357" relation="include">
        </childnode>
        <childnode refid="1359" relation="include">
        </childnode>
        <childnode refid="1363" relation="include">
        </childnode>
      </node>
      <node id="1353">
        <label>/Users/classner/git/forpy/include/forpy/data_providers/data_providers.h</label>
        <link refid="data__providers_8h"/>
        <childnode refid="1354" relation="include">
        </childnode>
      </node>
      <node id="1379">
        <label>/Users/classner/git/forpy/include/forpy/impurities/inducedentropy.h</label>
        <link refid="inducedentropy_8h"/>
        <childnode refid="1366" relation="include">
        </childnode>
        <childnode refid="1375" relation="include">
        </childnode>
        <childnode refid="1374" relation="include">
        </childnode>
        <childnode refid="1378" relation="include">
        </childnode>
      </node>
      <node id="1362">
        <label>/Users/classner/git/forpy/include/forpy/leafs/ileaf.h</label>
        <link refid="ileaf_8h"/>
        <childnode refid="1363" relation="include">
        </childnode>
        <childnode refid="1355" relation="include">
        </childnode>
        <childnode refid="1364" relation="include">
        </childnode>
        <childnode refid="1365" relation="include">
        </childnode>
      </node>
      <node id="1351">
        <label>/Users/classner/git/forpy/include/forpy/types.h</label>
        <link refid="types_8h"/>
        <childnode refid="1352" relation="include">
        </childnode>
        <childnode refid="1357" relation="include">
        </childnode>
        <childnode refid="1359" relation="include">
        </childnode>
        <childnode refid="1370" relation="include">
        </childnode>
        <childnode refid="1361" relation="include">
        </childnode>
        <childnode refid="1358" relation="include">
        </childnode>
        <childnode refid="1363" relation="include">
        </childnode>
        <childnode refid="1362" relation="include">
        </childnode>
        <childnode refid="1372" relation="include">
        </childnode>
        <childnode refid="1373" relation="include">
        </childnode>
        <childnode refid="1367" relation="include">
        </childnode>
        <childnode refid="1366" relation="include">
        </childnode>
        <childnode refid="1355" relation="include">
        </childnode>
        <childnode refid="1356" relation="include">
        </childnode>
        <childnode refid="1371" relation="include">
        </childnode>
        <childnode refid="1354" relation="include">
        </childnode>
        <childnode refid="1381" relation="include">
        </childnode>
        <childnode refid="1374" relation="include">
        </childnode>
        <childnode refid="1378" relation="include">
        </childnode>
        <childnode refid="1365" relation="include">
        </childnode>
        <childnode refid="1369" relation="include">
        </childnode>
      </node>
      <node id="1359">
        <label>/Users/classner/git/forpy/include/forpy/deciders/fastdecider.h</label>
        <link refid="fastdecider_8h"/>
        <childnode refid="1360" relation="include">
        </childnode>
        <childnode refid="1356" relation="include">
        </childnode>
      </node>
      <node id="1371">
        <label>/Users/classner/git/forpy/include/forpy/util/threading/ctpl.h</label>
        <link refid="ctpl_8h"/>
        <childnode refid="1356" relation="include">
        </childnode>
      </node>
    </invincdepgraph>
    <innerclass refid="structforpy_1_1ptr__variant" prot="public">forpy::ptr_variant</innerclass>
    <innerclass refid="structforpy_1_1_empty" prot="public">forpy::Empty</innerclass>
    <innerclass refid="structforpy_1_1_mat_eq_vis" prot="public">forpy::MatEqVis</innerclass>
    <innerclass refid="structforpy_1_1_v_reset" prot="public">forpy::VReset</innerclass>
    <innerclass refid="structforpy_1_1get__core" prot="public">forpy::get_core</innerclass>
    <innernamespace refid="namespaceforpy">forpy</innernamespace>
      <sectiondef kind="define">
      <memberdef kind="define" id="storage_8h_1af466e0831d5dd83681d0dea3c8011214" prot="public" static="no">
        <name>FORPY_UTIL_STORAGE_H_</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/classner/git/forpy/include/forpy/util/storage.h" line="3" column="9" bodyfile="/Users/classner/git/forpy/include/forpy/util/storage.h" bodystart="3" bodyend="-1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>FORPY_UTIL_STORAGE_H_</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="3" refid="storage_8h_1af466e0831d5dd83681d0dea3c8011214" refkind="member"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>FORPY_UTIL_STORAGE_H_</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>__GNUC__</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>__clang__</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#pragma<sp/>GCC<sp/>diagnostic<sp/>push</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor">#pragma<sp/>GCC<sp/>diagnostic<sp/>ignored<sp/>&quot;-Wreturn-local-addr&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;mapbox/variant_cast.hpp&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>__GNUC__</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#ifndef<sp/>__clang__</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#pragma<sp/>GCC<sp/>diagnostic<sp/>pop</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="16"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="17"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;./serialization/variant.h&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="18"><highlight class="normal"></highlight></codeline>
<codeline lineno="19"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespaceforpy" kindref="compound">forpy</ref><sp/>{</highlight></codeline>
<codeline lineno="20"><highlight class="normal"></highlight></codeline>
<codeline lineno="53"><highlight class="normal"></highlight></codeline>
<codeline lineno="54"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal">...<sp/>Ts&gt;</highlight></codeline>
<codeline lineno="55" refid="structforpy_1_1ptr__variant" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1ptr__variant" kindref="compound">ptr_variant</ref><sp/>:<sp/>mu::variant&lt;Ts...&gt;<sp/>{</highlight></codeline>
<codeline lineno="56" refid="structforpy_1_1ptr__variant_1a66fc5b573e64d1fe5fc1b22c0c5b9c34" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1ptr__variant_1a66fc5b573e64d1fe5fc1b22c0c5b9c34" kindref="member">Base</ref><sp/>=<sp/>mu::variant&lt;Ts...&gt;;</highlight></codeline>
<codeline lineno="57"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">using</highlight><highlight class="normal"><sp/>Base::Base;</highlight></codeline>
<codeline lineno="58"><highlight class="normal">};</highlight></codeline>
<codeline lineno="59"><highlight class="normal"></highlight></codeline>
<codeline lineno="67" refid="structforpy_1_1_empty" refkind="compound"><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1_empty" kindref="compound">Empty</ref><sp/>{</highlight></codeline>
<codeline lineno="68"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Archive&gt;</highlight></codeline>
<codeline lineno="69" refid="structforpy_1_1_empty_1a54975f9711a2a2309fb5de78b7ec41cd" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_empty_1a54975f9711a2a2309fb5de78b7ec41cd" kindref="member">serialize</ref>(Archive<sp/>&amp;,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="namespaceforpy_1ad05e34c62859518b61b76b5085e913d8" kindref="member">uint</ref><sp/>&amp;){};</highlight></codeline>
<codeline lineno="70" refid="structforpy_1_1_empty_1aacfeac7440d3c9612bff805df2b371cd" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_empty_1aacfeac7440d3c9612bff805df2b371cd" kindref="member">operator==</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_empty" kindref="compound">Empty</ref><sp/>&amp;)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;<sp/>};</highlight></codeline>
<codeline lineno="71" refid="structforpy_1_1_empty_1ad2c51f52c636ca85a9a6e088d8fa2bd6" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/>*<ref refid="structforpy_1_1_empty_1ad2c51f52c636ca85a9a6e088d8fa2bd6" kindref="member">data</ref>()</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="72"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="classforpy_1_1_forpy_exception" kindref="compound">ForpyException</ref>(</highlight><highlight class="stringliteral">&quot;Trying<sp/>to<sp/>access<sp/>an<sp/>empty<sp/>data<sp/>storage.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="73"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;<sp/>};</highlight></codeline>
<codeline lineno="74" refid="structforpy_1_1_empty_1a228c518bc7316b589817322ff5691add" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>&amp;<ref refid="structforpy_1_1_empty_1a228c518bc7316b589817322ff5691add" kindref="member">innerStride</ref>()</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="classforpy_1_1_forpy_exception" kindref="compound">ForpyException</ref>(</highlight><highlight class="stringliteral">&quot;Trying<sp/>to<sp/>access<sp/>an<sp/>empty<sp/>data<sp/>storage.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="76"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="77" refid="structforpy_1_1_empty_1a05405f53a777ee04b9af798099566ecf" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">size_t</highlight><highlight class="normal"><sp/>&amp;<ref refid="structforpy_1_1_empty_1a05405f53a777ee04b9af798099566ecf" kindref="member">outerStride</ref>()</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="78"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">throw</highlight><highlight class="normal"><sp/><ref refid="classforpy_1_1_forpy_exception" kindref="compound">ForpyException</ref>(</highlight><highlight class="stringliteral">&quot;Trying<sp/>to<sp/>access<sp/>an<sp/>empty<sp/>data<sp/>storage.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="79"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="80" refid="structforpy_1_1_empty_1ae82631e18998ff5a3860e981afbfedfd" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">friend</highlight><highlight class="normal"><sp/>std::ostream<sp/>&amp;<ref refid="structforpy_1_1_empty_1ae82631e18998ff5a3860e981afbfedfd" kindref="member">operator&lt;&lt;</ref>(std::ostream<sp/>&amp;stream,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_empty" kindref="compound">Empty</ref><sp/>&amp;)<sp/>{</highlight></codeline>
<codeline lineno="81"><highlight class="normal"><sp/><sp/><sp/><sp/>stream<sp/>&lt;&lt;<sp/></highlight><highlight class="stringliteral">&quot;forpy::Empty&quot;</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="82"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>stream;</highlight></codeline>
<codeline lineno="83"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="84"><highlight class="normal">};</highlight></codeline>
<codeline lineno="85"><highlight class="normal"></highlight></codeline>
<codeline lineno="91" refid="structforpy_1_1_mat_eq_vis" refkind="compound"><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1_mat_eq_vis" kindref="compound">MatEqVis</ref><sp/>{</highlight></codeline>
<codeline lineno="92"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>U&gt;</highlight></codeline>
<codeline lineno="93" refid="structforpy_1_1_mat_eq_vis_1a02ca9594a6842e541988f1facab615a1" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_mat_eq_vis_1a02ca9594a6842e541988f1facab615a1" kindref="member">operator()</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T<sp/>&amp;,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>U<sp/>&amp;)<sp/>{</highlight></codeline>
<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">false</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="95"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="96"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="97" refid="structforpy_1_1_mat_eq_vis_1a4a67b8b95c6831aea6e079eff80a82d5" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_mat_eq_vis_1a4a67b8b95c6831aea6e079eff80a82d5" kindref="member">operator()</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T<sp/>&amp;lhs,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>T<sp/>&amp;rhs)<sp/>{</highlight></codeline>
<codeline lineno="98"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>lhs.isApprox(rhs);</highlight></codeline>
<codeline lineno="99"><highlight class="normal"><sp/><sp/>};</highlight></codeline>
<codeline lineno="100" refid="structforpy_1_1_mat_eq_vis_1ae4b989435dbdc357ea17d0df8a5b9ec2" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">inline</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_mat_eq_vis_1ae4b989435dbdc357ea17d0df8a5b9ec2" kindref="member">operator()</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_empty" kindref="compound">Empty</ref><sp/>&amp;,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_empty" kindref="compound">Empty</ref><sp/>&amp;)<sp/>{<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">true</highlight><highlight class="normal">;<sp/>};</highlight></codeline>
<codeline lineno="101"><highlight class="normal">};</highlight></codeline>
<codeline lineno="102"><highlight class="normal"></highlight></codeline>
<codeline lineno="106" refid="structforpy_1_1_v_reset" refkind="compound"><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1_v_reset" kindref="compound">VReset</ref><sp/>{</highlight></codeline>
<codeline lineno="107"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="108" refid="structforpy_1_1_v_reset_1a14ea0d86a72f7db2f52d3d39482f196c" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structforpy_1_1_v_reset_1a14ea0d86a72f7db2f52d3d39482f196c" kindref="member">operator()</ref>(T<sp/>&amp;pointer)</highlight><highlight class="keyword"><sp/>const<sp/></highlight><highlight class="normal">{</highlight></codeline>
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/>pointer.reset();</highlight></codeline>
<codeline lineno="110"><highlight class="normal"><sp/><sp/>}</highlight></codeline>
<codeline lineno="111"><highlight class="normal">};</highlight></codeline>
<codeline lineno="112"><highlight class="normal"></highlight></codeline>
<codeline lineno="116"><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal">&gt;<sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">STOT&gt;</highlight></codeline>
<codeline lineno="117"><highlight class="normal"></highlight><highlight class="keyword">using</highlight><highlight class="normal"><sp/><ref refid="namespaceforpy_1a805d3699e6dffb8b4aca770e90a9b599" kindref="member">DataStore</ref><sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>mu::variant&lt;</highlight></codeline>
<codeline lineno="118"><highlight class="normal"><sp/><sp/><sp/><sp/>std::shared_ptr&lt;const<sp/>STOT&lt;float&gt;&gt;,<sp/>std::shared_ptr&lt;const<sp/>STOT&lt;double&gt;&gt;,</highlight></codeline>
<codeline lineno="119" refid="namespaceforpy_1a805d3699e6dffb8b4aca770e90a9b599" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>std::shared_ptr&lt;const<sp/>STOT&lt;uint&gt;&gt;,<sp/>std::shared_ptr&lt;const<sp/>STOT&lt;uint8_t&gt;&gt;&gt;;</highlight></codeline>
<codeline lineno="120"><highlight class="normal"></highlight></codeline>
<codeline lineno="124"><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal">&gt;<sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">STOT&gt;</highlight></codeline>
<codeline lineno="125"><highlight class="normal"></highlight><highlight class="keyword">using</highlight><highlight class="normal"><sp/><ref refid="namespaceforpy_1a724d37691de11a57b50b9935b5550a89" kindref="member">Data</ref><sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>mu::variant&lt;Empty,<sp/>STOT&lt;float&gt;,<sp/>STOT&lt;double&gt;,<sp/>STOT&lt;uint&gt;,</highlight></codeline>
<codeline lineno="126" refid="namespaceforpy_1a724d37691de11a57b50b9935b5550a89" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>STOT&lt;uint8_t&gt;&gt;;</highlight></codeline>
<codeline lineno="127"><highlight class="normal"></highlight></codeline>
<codeline lineno="128"><highlight class="normal"></highlight><highlight class="keyword">using</highlight><highlight class="normal"><sp/><ref refid="namespaceforpy_1adda502f62d6651edd0837c6b6b0adde1" kindref="member">DataV</ref><sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>mu::variant&lt;std::vector&lt;float&gt;,<sp/>std::vector&lt;double&gt;,</highlight></codeline>
<codeline lineno="129" refid="namespaceforpy_1adda502f62d6651edd0837c6b6b0adde1" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::vector&lt;uint&gt;,<sp/>std::vector&lt;uint8_t&gt;&gt;;</highlight></codeline>
<codeline lineno="130"><highlight class="normal"></highlight></codeline>
<codeline lineno="135"><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="136" refid="structforpy_1_1get__core" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structforpy_1_1get__core" kindref="compound">get_core</ref><sp/>{</highlight></codeline>
<codeline lineno="137" refid="structforpy_1_1get__core_1a2b0b7a312fd3345d71c833a7d6eefaf9" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::remove_pointer&lt;T&gt;::type<sp/><ref refid="structforpy_1_1get__core_1a2b0b7a312fd3345d71c833a7d6eefaf9" kindref="member">_tmp</ref>;</highlight></codeline>
<codeline lineno="138" refid="structforpy_1_1get__core_1a5fa2f0fee16cc5bf84e10db96e52979c" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::remove_reference&lt;_tmp&gt;::type<sp/><ref refid="structforpy_1_1get__core_1a5fa2f0fee16cc5bf84e10db96e52979c" kindref="member">__tmp</ref>;</highlight></codeline>
<codeline lineno="139" refid="structforpy_1_1get__core_1a8d6cc1161857f9e8f2710cb2a8ed21d1" refkind="member"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">typedef</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::remove_cv&lt;__tmp&gt;::type<sp/><ref refid="structforpy_1_1get__core_1a8d6cc1161857f9e8f2710cb2a8ed21d1" kindref="member">type</ref>;</highlight></codeline>
<codeline lineno="140"><highlight class="normal">};</highlight></codeline>
<codeline lineno="141"><highlight class="normal"></highlight></codeline>
<codeline lineno="142"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal"><sp/>&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>V,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal">...<sp/>VarArgs&gt;</highlight></codeline>
<codeline lineno="143" refid="namespaceforpy_1a3483ab5f3aa58311b1c8f29ca72abe94" refkind="member"><highlight class="normal">V<sp/><ref refid="namespaceforpy_1a3483ab5f3aa58311b1c8f29ca72abe94" kindref="member">GetWithDefVar</ref>(</highlight></codeline>
<codeline lineno="144"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>std::unordered_map&lt;std::string,<sp/>mu::variant&lt;VarArgs...&gt;&gt;<sp/>&amp;m,</highlight></codeline>
<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/>std::string<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>&amp;key,<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/>V<sp/>&amp;defval)<sp/>{</highlight></codeline>
<codeline lineno="146"><highlight class="normal"><sp/><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::unordered_map&lt;std::string,</highlight></codeline>
<codeline lineno="147"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>mu::variant&lt;VarArgs...&gt;&gt;::const_iterator<sp/>it<sp/>=</highlight></codeline>
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/>m.find(key);</highlight></codeline>
<codeline lineno="149"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(it<sp/>==<sp/>m.end())<sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>defval;</highlight></codeline>
<codeline lineno="150"><highlight class="normal"><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>mu::static_variant_cast&lt;V&gt;(it-&gt;second);</highlight></codeline>
<codeline lineno="151"><highlight class="normal">}</highlight></codeline>
<codeline lineno="152"><highlight class="normal"></highlight></codeline>
<codeline lineno="153"><highlight class="normal">}<sp/><sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>forpy</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="154"><highlight class="normal"></highlight><highlight class="preprocessor">#endif<sp/><sp/>//<sp/>FORPY_UTIL_STORAGE_H_</highlight></codeline>
    </programlisting>
    <location file="/Users/classner/git/forpy/include/forpy/util/storage.h"/>
  </compounddef>
</doxygen>
