<?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.9.6" xml:lang="en-US">
  <compounddef id="classtf_1_1cudaUSMAllocator" kind="class" language="C++" prot="public">
    <compoundname>tf::cudaUSMAllocator</compoundname>
    <includes refid="cuda__memory_8hpp" local="no">cuda_memory.hpp</includes>
    <innerclass refid="structtf_1_1cudaUSMAllocator_1_1rebind" prot="public">tf::cudaUSMAllocator::rebind</innerclass>
    <templateparamlist>
      <param>
        <type>typename T</type>
      </param>
    </templateparamlist>
      <sectiondef kind="public-type">
      <memberdef kind="typedef" id="classtf_1_1cudaUSMAllocator_1a4ab981d38c36112b589a3b67c510fc50" prot="public" static="no">
        <type>T</type>
        <definition>using tf::cudaUSMAllocator&lt; T &gt;::value_type =  T</definition>
        <argsstring></argsstring>
        <name>value_type</name>
        <qualifiedname>tf::cudaUSMAllocator::value_type</qualifiedname>
        <briefdescription>
<para>element type </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="596" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="596" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaUSMAllocator_1a580e704508e250311f4dce9c6413d900" prot="public" static="no">
        <type>T *</type>
        <definition>using tf::cudaUSMAllocator&lt; T &gt;::pointer =  T*</definition>
        <argsstring></argsstring>
        <name>pointer</name>
        <qualifiedname>tf::cudaUSMAllocator::pointer</qualifiedname>
        <briefdescription>
<para>element pointer type </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="601" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="601" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaUSMAllocator_1ae700ece72b4eeb0f13f612455878f0a9" prot="public" static="no">
        <type>T &amp;</type>
        <definition>using tf::cudaUSMAllocator&lt; T &gt;::reference =  T&amp;</definition>
        <argsstring></argsstring>
        <name>reference</name>
        <qualifiedname>tf::cudaUSMAllocator::reference</qualifiedname>
        <briefdescription>
<para>element reference type </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="606" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="606" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaUSMAllocator_1a1bbd56f975fd433c1fd86d5008373ad0" prot="public" static="no">
        <type>const T *</type>
        <definition>using tf::cudaUSMAllocator&lt; T &gt;::const_pointer =  const T*</definition>
        <argsstring></argsstring>
        <name>const_pointer</name>
        <qualifiedname>tf::cudaUSMAllocator::const_pointer</qualifiedname>
        <briefdescription>
<para>const element pointer type </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="611" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="611" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaUSMAllocator_1af5b1bd492a8de28eb75c136ee391b006" prot="public" static="no">
        <type>const T &amp;</type>
        <definition>using tf::cudaUSMAllocator&lt; T &gt;::const_reference =  const T&amp;</definition>
        <argsstring></argsstring>
        <name>const_reference</name>
        <qualifiedname>tf::cudaUSMAllocator::const_reference</qualifiedname>
        <briefdescription>
<para>constant element reference type </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="616" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="616" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaUSMAllocator_1a2d145987f7535219dcfe47ee6765b2ad" prot="public" static="no">
        <type><ref refid="cpp/types/size_t" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::size_t</ref></type>
        <definition>using tf::cudaUSMAllocator&lt; T &gt;::size_type =  std::size_t</definition>
        <argsstring></argsstring>
        <name>size_type</name>
        <qualifiedname>tf::cudaUSMAllocator::size_type</qualifiedname>
        <briefdescription>
<para>size type </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="621" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="621" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaUSMAllocator_1aae5fff6eb8fd2e61f686d6e3ccb9ba9d" prot="public" static="no">
        <type><ref refid="cpp/types/ptrdiff_t" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::ptrdiff_t</ref></type>
        <definition>using tf::cudaUSMAllocator&lt; T &gt;::difference_type =  std::ptrdiff_t</definition>
        <argsstring></argsstring>
        <name>difference_type</name>
        <qualifiedname>tf::cudaUSMAllocator::difference_type</qualifiedname>
        <briefdescription>
<para>pointer difference type </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="626" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="626" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a10c30e951b3dab81261c26e91b0ec62b" prot="public" static="no" const="no" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <type></type>
        <definition>tf::cudaUSMAllocator&lt; T &gt;::cudaUSMAllocator</definition>
        <argsstring>() noexcept</argsstring>
        <name>cudaUSMAllocator</name>
        <qualifiedname>tf::cudaUSMAllocator::cudaUSMAllocator</qualifiedname>
        <briefdescription>
<para>Constructs a device allocator object. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="642" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="642" bodyend="642"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a8b881c3608e2886513c0364e9fdc417f" prot="public" static="no" const="no" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <type></type>
        <definition>tf::cudaUSMAllocator&lt; T &gt;::cudaUSMAllocator</definition>
        <argsstring>(const cudaUSMAllocator &amp;) noexcept</argsstring>
        <name>cudaUSMAllocator</name>
        <qualifiedname>tf::cudaUSMAllocator::cudaUSMAllocator</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1cudaUSMAllocator" kindref="compound">cudaUSMAllocator</ref> &amp;</type>
        </param>
        <briefdescription>
<para>Constructs a device allocator object from another device allocator object. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="647" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="647" bodyend="647"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a19981496b14b5a29cc2f71dfc25eecd1" prot="public" static="no" const="no" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename U</type>
          </param>
        </templateparamlist>
        <type></type>
        <definition>tf::cudaUSMAllocator&lt; T &gt;::cudaUSMAllocator</definition>
        <argsstring>(const cudaUSMAllocator&lt; U &gt; &amp;) noexcept</argsstring>
        <name>cudaUSMAllocator</name>
        <qualifiedname>tf::cudaUSMAllocator::cudaUSMAllocator</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1cudaUSMAllocator" kindref="compound">cudaUSMAllocator</ref>&lt; U &gt; &amp;</type>
        </param>
        <briefdescription>
<para>Constructs a device allocator object from another device allocator object with a different element type. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="654" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="654" bodyend="654"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a8bfebfc64bc7781856870f143a84f03b" prot="public" static="no" const="no" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <type></type>
        <definition>tf::cudaUSMAllocator&lt; T &gt;::~cudaUSMAllocator</definition>
        <argsstring>() noexcept</argsstring>
        <name>~cudaUSMAllocator</name>
        <qualifiedname>tf::cudaUSMAllocator::~cudaUSMAllocator</qualifiedname>
        <briefdescription>
<para>Destructs the device allocator object. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="659" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="659" bodyend="659"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a174d32365a682da21469e155b95d3260" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1cudaUSMAllocator_1a580e704508e250311f4dce9c6413d900" kindref="member">pointer</ref></type>
        <definition>pointer tf::cudaUSMAllocator&lt; T &gt;::address</definition>
        <argsstring>(reference x)</argsstring>
        <name>address</name>
        <qualifiedname>tf::cudaUSMAllocator::address</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaUSMAllocator_1ae700ece72b4eeb0f13f612455878f0a9" kindref="member">reference</ref></type>
          <declname>x</declname>
        </param>
        <briefdescription>
<para>Returns the address of x. </para>
        </briefdescription>
        <detaileddescription>
<para>This effectively means returning &amp;x.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>x</parametername>
</parameternamelist>
<parameterdescription>
<para>reference to an object </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>a pointer to the object </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="669" column="11" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="669" bodyend="669"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1ae9e99ab1ec08d419798e50f8d5b49802" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1cudaUSMAllocator_1a1bbd56f975fd433c1fd86d5008373ad0" kindref="member">const_pointer</ref></type>
        <definition>const_pointer tf::cudaUSMAllocator&lt; T &gt;::address</definition>
        <argsstring>(const_reference x) const</argsstring>
        <name>address</name>
        <qualifiedname>tf::cudaUSMAllocator::address</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaUSMAllocator_1af5b1bd492a8de28eb75c136ee391b006" kindref="member">const_reference</ref></type>
          <declname>x</declname>
        </param>
        <briefdescription>
<para>Returns the address of x. </para>
        </briefdescription>
        <detaileddescription>
<para>This effectively means returning &amp;x.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>x</parametername>
</parameternamelist>
<parameterdescription>
<para>reference to an object </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>a pointer to the object </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="679" column="17" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="679" bodyend="679"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a4181ed05aa587d789311c5c6b4624905" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1cudaUSMAllocator_1a580e704508e250311f4dce9c6413d900" kindref="member">pointer</ref></type>
        <definition>pointer tf::cudaUSMAllocator&lt; T &gt;::allocate</definition>
        <argsstring>(size_type n, std::allocator&lt; void &gt;::const_pointer=0)</argsstring>
        <name>allocate</name>
        <qualifiedname>tf::cudaUSMAllocator::allocate</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaUSMAllocator_1a2d145987f7535219dcfe47ee6765b2ad" kindref="member">size_type</ref></type>
          <declname>n</declname>
        </param>
        <param>
          <type><ref refid="cpp/memory/allocator" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::allocator</ref>&lt; void &gt;<ref refid="classtf_1_1cudaUSMAllocator_1a1bbd56f975fd433c1fd86d5008373ad0" kindref="member">::const_pointer</ref></type>
          <defval>0</defval>
        </param>
        <briefdescription>
<para>allocates block of storage. </para>
        </briefdescription>
        <detaileddescription>
<para>Attempts to allocate a block of storage with a size large enough to contain <computeroutput>n</computeroutput> elements of member type, <computeroutput>value_type</computeroutput>, and returns a pointer to the first element.</para>
<para>The storage is aligned appropriately for object of type <computeroutput>value_type</computeroutput>, but they are not constructed.</para>
<para>The block of storage is allocated using cudaMalloc and throws <ref refid="cpp/memory/new/bad_alloc" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::bad_alloc</ref> if it cannot allocate the total amount of storage requested.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>n</parametername>
</parameternamelist>
<parameterdescription>
<para>number of elements (each of size sizeof(value_type)) to be allocated </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>a pointer to the initial element in the block of storage. </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="697" column="11" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="697" bodyend="705"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a0ec189c941b389062106a37fde46677a" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::cudaUSMAllocator&lt; T &gt;::deallocate</definition>
        <argsstring>(pointer ptr, size_type)</argsstring>
        <name>deallocate</name>
        <qualifiedname>tf::cudaUSMAllocator::deallocate</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaUSMAllocator_1a580e704508e250311f4dce9c6413d900" kindref="member">pointer</ref></type>
          <declname>ptr</declname>
        </param>
        <param>
          <type><ref refid="classtf_1_1cudaUSMAllocator_1a2d145987f7535219dcfe47ee6765b2ad" kindref="member">size_type</ref></type>
        </param>
        <briefdescription>
<para>Releases a block of storage previously allocated with member allocate and not yet released. </para>
        </briefdescription>
        <detaileddescription>
<para>The elements in the array are not destroyed by a call to this member function.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to a block of storage previously allocated with allocate </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="714" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="714" bodyend="719"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1abdf3c2024de5972e7d13d15d4960c984" prot="public" static="no" const="yes" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1cudaUSMAllocator_1a2d145987f7535219dcfe47ee6765b2ad" kindref="member">size_type</ref></type>
        <definition>size_type tf::cudaUSMAllocator&lt; T &gt;::max_size</definition>
        <argsstring>() const noexcept</argsstring>
        <name>max_size</name>
        <qualifiedname>tf::cudaUSMAllocator::max_size</qualifiedname>
        <briefdescription>
<para>returns the maximum number of elements that could potentially be allocated by this allocator </para>
        </briefdescription>
        <detaileddescription>
<para>A call to member allocate with the value returned by this function can still fail to allocate the requested storage.</para>
<para><simplesect kind="return"><para>the nubmer of elements that might be allcoated as maximum by a call to member allocate </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="731" column="13" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="731" bodyend="731"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a9218d72dc90bc87b1ac648f5bf923439" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::cudaUSMAllocator&lt; T &gt;::construct</definition>
        <argsstring>(pointer ptr, const_reference val)</argsstring>
        <name>construct</name>
        <qualifiedname>tf::cudaUSMAllocator::construct</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaUSMAllocator_1a580e704508e250311f4dce9c6413d900" kindref="member">pointer</ref></type>
          <declname>ptr</declname>
        </param>
        <param>
          <type><ref refid="classtf_1_1cudaUSMAllocator_1af5b1bd492a8de28eb75c136ee391b006" kindref="member">const_reference</ref></type>
          <declname>val</declname>
        </param>
        <briefdescription>
<para>Constructs an element object on the location pointed by ptr. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to a location with enough storage soace to contain an element of type <computeroutput>value_type</computeroutput> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>val</parametername>
</parameternamelist>
<parameterdescription>
<para>value to initialize the constructed element to </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="740" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="740" bodyend="742"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1a33ea798011c837c65251b756ae3d66f9" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::cudaUSMAllocator&lt; T &gt;::destroy</definition>
        <argsstring>(pointer ptr)</argsstring>
        <name>destroy</name>
        <qualifiedname>tf::cudaUSMAllocator::destroy</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaUSMAllocator_1a580e704508e250311f4dce9c6413d900" kindref="member">pointer</ref></type>
          <declname>ptr</declname>
        </param>
        <briefdescription>
<para>destroys in-place the object pointed by <computeroutput>ptr</computeroutput> </para>
        </briefdescription>
        <detaileddescription>
<para>Notice that this does not deallocate the storage for the element but calls its destructor.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ptr</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the object to be destroye </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="752" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="752" bodyend="754"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1aea7c8c9232f588faaf274c4439ca936d" prot="public" static="no" const="yes" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename U</type>
          </param>
        </templateparamlist>
        <type>bool</type>
        <definition>bool tf::cudaUSMAllocator&lt; T &gt;::operator==</definition>
        <argsstring>(const cudaUSMAllocator&lt; U &gt; &amp;) const noexcept</argsstring>
        <name>operator==</name>
        <qualifiedname>tf::cudaUSMAllocator::operator==</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1cudaUSMAllocator" kindref="compound">cudaUSMAllocator</ref>&lt; U &gt; &amp;</type>
        </param>
        <briefdescription>
<para>compares two allocator of different types using <computeroutput>==</computeroutput> </para>
        </briefdescription>
        <detaileddescription>
<para>USM allocators of different types are always equal to each other because the storage allocated by the allocator <computeroutput>a1</computeroutput> can be deallocated through <computeroutput>a2</computeroutput>. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="764" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="764" bodyend="766"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaUSMAllocator_1abf8b566b8863b5a460e816a5f3d5fd7b" prot="public" static="no" const="yes" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <templateparamlist>
          <param>
            <type>typename U</type>
          </param>
        </templateparamlist>
        <type>bool</type>
        <definition>bool tf::cudaUSMAllocator&lt; T &gt;::operator!=</definition>
        <argsstring>(const cudaUSMAllocator&lt; U &gt; &amp;) const noexcept</argsstring>
        <name>operator!=</name>
        <qualifiedname>tf::cudaUSMAllocator::operator!=</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1cudaUSMAllocator" kindref="compound">cudaUSMAllocator</ref>&lt; U &gt; &amp;</type>
        </param>
        <briefdescription>
<para>compares two allocator of different types using <computeroutput>!=</computeroutput> </para>
        </briefdescription>
        <detaileddescription>
<para>USM allocators of different types are always equal to each other because the storage allocated by the allocator <computeroutput>a1</computeroutput> can be deallocated through <computeroutput>a2</computeroutput>. </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="776" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="776" bodyend="778"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>class to create a unified shared memory (USM) allocator </para>
    </briefdescription>
    <detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>T</parametername>
</parameternamelist>
<parameterdescription>
<para>element type</para>
</parameterdescription>
</parameteritem>
</parameterlist>
A cudaUSMAllocator enables using unified shared memory (USM) allocation for standard library containers. It is typically passed as template parameter when declaring standard library containers (e.g. <ref refid="cpp/container/vector" kindref="compound" external="/Users/twhuang/Code/taskflow/doxygen/cppreference-doxygen-web.tag.xml">std::vector</ref>). </para>
    </detaileddescription>
    <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="589" column="1" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="589" bodyend="780"/>
    <listofallmembers>
      <member refid="classtf_1_1cudaUSMAllocator_1a174d32365a682da21469e155b95d3260" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>address</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1ae9e99ab1ec08d419798e50f8d5b49802" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>address</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a4181ed05aa587d789311c5c6b4624905" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>allocate</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a1bbd56f975fd433c1fd86d5008373ad0" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>const_pointer</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1af5b1bd492a8de28eb75c136ee391b006" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>const_reference</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a9218d72dc90bc87b1ac648f5bf923439" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>construct</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a10c30e951b3dab81261c26e91b0ec62b" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>cudaUSMAllocator</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a8b881c3608e2886513c0364e9fdc417f" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>cudaUSMAllocator</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a19981496b14b5a29cc2f71dfc25eecd1" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>cudaUSMAllocator</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a0ec189c941b389062106a37fde46677a" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>deallocate</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a33ea798011c837c65251b756ae3d66f9" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>destroy</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1aae5fff6eb8fd2e61f686d6e3ccb9ba9d" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>difference_type</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1abdf3c2024de5972e7d13d15d4960c984" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>max_size</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1abf8b566b8863b5a460e816a5f3d5fd7b" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>operator!=</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1aea7c8c9232f588faaf274c4439ca936d" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>operator==</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a580e704508e250311f4dce9c6413d900" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>pointer</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1ae700ece72b4eeb0f13f612455878f0a9" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>reference</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a2d145987f7535219dcfe47ee6765b2ad" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>size_type</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a4ab981d38c36112b589a3b67c510fc50" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>value_type</name></member>
      <member refid="classtf_1_1cudaUSMAllocator_1a8bfebfc64bc7781856870f143a84f03b" prot="public" virt="non-virtual"><scope>tf::cudaUSMAllocator</scope><name>~cudaUSMAllocator</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
