<?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_1cudaDeviceAllocator" kind="class" language="C++" prot="public">
    <compoundname>tf::cudaDeviceAllocator</compoundname>
    <includes refid="cuda__memory_8hpp" local="no">cuda_memory.hpp</includes>
    <innerclass refid="structtf_1_1cudaDeviceAllocator_1_1rebind" prot="public">tf::cudaDeviceAllocator::rebind</innerclass>
    <templateparamlist>
      <param>
        <type>typename T</type>
      </param>
    </templateparamlist>
      <sectiondef kind="public-type">
      <memberdef kind="typedef" id="classtf_1_1cudaDeviceAllocator_1a37039db4f27e849c44b361c6d107903c" prot="public" static="no">
        <type>T</type>
        <definition>using tf::cudaDeviceAllocator&lt; T &gt;::value_type =  T</definition>
        <argsstring></argsstring>
        <name>value_type</name>
        <qualifiedname>tf::cudaDeviceAllocator::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="400" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="400" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaDeviceAllocator_1a68c29bda337094fcb9fc6f3e9445ca9c" prot="public" static="no">
        <type>T *</type>
        <definition>using tf::cudaDeviceAllocator&lt; T &gt;::pointer =  T*</definition>
        <argsstring></argsstring>
        <name>pointer</name>
        <qualifiedname>tf::cudaDeviceAllocator::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="405" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="405" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaDeviceAllocator_1aef9d9622074af9b3ce50b5a63346998b" prot="public" static="no">
        <type>T &amp;</type>
        <definition>using tf::cudaDeviceAllocator&lt; T &gt;::reference =  T&amp;</definition>
        <argsstring></argsstring>
        <name>reference</name>
        <qualifiedname>tf::cudaDeviceAllocator::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="410" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="410" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaDeviceAllocator_1a3cce1e14aad82c9444ab3076a8f35482" prot="public" static="no">
        <type>const T *</type>
        <definition>using tf::cudaDeviceAllocator&lt; T &gt;::const_pointer =  const T*</definition>
        <argsstring></argsstring>
        <name>const_pointer</name>
        <qualifiedname>tf::cudaDeviceAllocator::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="415" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="415" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaDeviceAllocator_1a449d07320a94b00d4b09fa0f4e1ce399" prot="public" static="no">
        <type>const T &amp;</type>
        <definition>using tf::cudaDeviceAllocator&lt; T &gt;::const_reference =  const T&amp;</definition>
        <argsstring></argsstring>
        <name>const_reference</name>
        <qualifiedname>tf::cudaDeviceAllocator::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="420" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="420" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaDeviceAllocator_1ac4b1781c2f116866927701d931bf8852" 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::cudaDeviceAllocator&lt; T &gt;::size_type =  std::size_t</definition>
        <argsstring></argsstring>
        <name>size_type</name>
        <qualifiedname>tf::cudaDeviceAllocator::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="425" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="425" bodyend="-1"/>
      </memberdef>
      <memberdef kind="typedef" id="classtf_1_1cudaDeviceAllocator_1aaacd3b516ceaa9468e40dcf1a048a453" 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::cudaDeviceAllocator&lt; T &gt;::difference_type =  std::ptrdiff_t</definition>
        <argsstring></argsstring>
        <name>difference_type</name>
        <qualifiedname>tf::cudaDeviceAllocator::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="430" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="430" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1a5db2fe60c59fe95ceee94392508f9f82" prot="public" static="no" const="no" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <type></type>
        <definition>tf::cudaDeviceAllocator&lt; T &gt;::cudaDeviceAllocator</definition>
        <argsstring>() noexcept</argsstring>
        <name>cudaDeviceAllocator</name>
        <qualifiedname>tf::cudaDeviceAllocator::cudaDeviceAllocator</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="446" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="446" bodyend="446"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1a8c6f5c1a2ad3fb5d933911c18f10397e" prot="public" static="no" const="no" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <type></type>
        <definition>tf::cudaDeviceAllocator&lt; T &gt;::cudaDeviceAllocator</definition>
        <argsstring>(const cudaDeviceAllocator &amp;) noexcept</argsstring>
        <name>cudaDeviceAllocator</name>
        <qualifiedname>tf::cudaDeviceAllocator::cudaDeviceAllocator</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1cudaDeviceAllocator" kindref="compound">cudaDeviceAllocator</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="451" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="451" bodyend="451"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1aba7fc3e232d452c4c474225bdf4adabb" 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::cudaDeviceAllocator&lt; T &gt;::cudaDeviceAllocator</definition>
        <argsstring>(const cudaDeviceAllocator&lt; U &gt; &amp;) noexcept</argsstring>
        <name>cudaDeviceAllocator</name>
        <qualifiedname>tf::cudaDeviceAllocator::cudaDeviceAllocator</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1cudaDeviceAllocator" kindref="compound">cudaDeviceAllocator</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="458" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="458" bodyend="458"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1a1c5dd0ea4e5c574e57b804cfff24ec0b" prot="public" static="no" const="no" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <type></type>
        <definition>tf::cudaDeviceAllocator&lt; T &gt;::~cudaDeviceAllocator</definition>
        <argsstring>() noexcept</argsstring>
        <name>~cudaDeviceAllocator</name>
        <qualifiedname>tf::cudaDeviceAllocator::~cudaDeviceAllocator</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="463" column="3" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="463" bodyend="463"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1a3aeae7566c71b25fc5b722f74b68a8f9" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1cudaDeviceAllocator_1a68c29bda337094fcb9fc6f3e9445ca9c" kindref="member">pointer</ref></type>
        <definition>pointer tf::cudaDeviceAllocator&lt; T &gt;::address</definition>
        <argsstring>(reference x)</argsstring>
        <name>address</name>
        <qualifiedname>tf::cudaDeviceAllocator::address</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaDeviceAllocator_1aef9d9622074af9b3ce50b5a63346998b" 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="473" column="11" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="473" bodyend="473"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1aadbef395cbe886d2be80ba1771992ffb" prot="public" static="no" const="yes" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1cudaDeviceAllocator_1a3cce1e14aad82c9444ab3076a8f35482" kindref="member">const_pointer</ref></type>
        <definition>const_pointer tf::cudaDeviceAllocator&lt; T &gt;::address</definition>
        <argsstring>(const_reference x) const</argsstring>
        <name>address</name>
        <qualifiedname>tf::cudaDeviceAllocator::address</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaDeviceAllocator_1a449d07320a94b00d4b09fa0f4e1ce399" 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="483" column="17" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="483" bodyend="483"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1ac9231153699981e5732ae75230f6fb31" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1cudaDeviceAllocator_1a68c29bda337094fcb9fc6f3e9445ca9c" kindref="member">pointer</ref></type>
        <definition>pointer tf::cudaDeviceAllocator&lt; T &gt;::allocate</definition>
        <argsstring>(size_type n, std::allocator&lt; void &gt;::const_pointer=0)</argsstring>
        <name>allocate</name>
        <qualifiedname>tf::cudaDeviceAllocator::allocate</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaDeviceAllocator_1ac4b1781c2f116866927701d931bf8852" 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_1cudaDeviceAllocator_1a3cce1e14aad82c9444ab3076a8f35482" 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="501" column="11" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="501" bodyend="509"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1acb6d952479fda4ac4269b9d40529a0a7" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::cudaDeviceAllocator&lt; T &gt;::deallocate</definition>
        <argsstring>(pointer ptr, size_type)</argsstring>
        <name>deallocate</name>
        <qualifiedname>tf::cudaDeviceAllocator::deallocate</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaDeviceAllocator_1a68c29bda337094fcb9fc6f3e9445ca9c" kindref="member">pointer</ref></type>
          <declname>ptr</declname>
        </param>
        <param>
          <type><ref refid="classtf_1_1cudaDeviceAllocator_1ac4b1781c2f116866927701d931bf8852" 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="518" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="518" bodyend="523"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1a095d67530352fb7be340775fe0c7b120" prot="public" static="no" const="yes" explicit="no" inline="yes" noexcept="yes" virt="non-virtual">
        <type><ref refid="classtf_1_1cudaDeviceAllocator_1ac4b1781c2f116866927701d931bf8852" kindref="member">size_type</ref></type>
        <definition>size_type tf::cudaDeviceAllocator&lt; T &gt;::max_size</definition>
        <argsstring>() const noexcept</argsstring>
        <name>max_size</name>
        <qualifiedname>tf::cudaDeviceAllocator::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="535" column="13" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="535" bodyend="535"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1a280882efd5963a11aa5d79ed491c056e" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::cudaDeviceAllocator&lt; T &gt;::construct</definition>
        <argsstring>(pointer, const_reference)</argsstring>
        <name>construct</name>
        <qualifiedname>tf::cudaDeviceAllocator::construct</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaDeviceAllocator_1a68c29bda337094fcb9fc6f3e9445ca9c" kindref="member">pointer</ref></type>
        </param>
        <param>
          <type><ref refid="classtf_1_1cudaDeviceAllocator_1a449d07320a94b00d4b09fa0f4e1ce399" kindref="member">const_reference</ref></type>
        </param>
        <briefdescription>
<para>ignored to avoid de-referencing device pointer from the host </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="540" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="540" bodyend="540"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1af50777c1f25a5766980d8fdbdd250b83" prot="public" static="no" const="no" explicit="no" inline="yes" virt="non-virtual">
        <type>void</type>
        <definition>void tf::cudaDeviceAllocator&lt; T &gt;::destroy</definition>
        <argsstring>(pointer)</argsstring>
        <name>destroy</name>
        <qualifiedname>tf::cudaDeviceAllocator::destroy</qualifiedname>
        <param>
          <type><ref refid="classtf_1_1cudaDeviceAllocator_1a68c29bda337094fcb9fc6f3e9445ca9c" kindref="member">pointer</ref></type>
        </param>
        <briefdescription>
<para>ignored to avoid de-referencing device pointer from the host </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" line="545" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="545" bodyend="545"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1a1038b32b85395c5f2e206221d0f849b7" 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::cudaDeviceAllocator&lt; T &gt;::operator==</definition>
        <argsstring>(const cudaDeviceAllocator&lt; U &gt; &amp;) const noexcept</argsstring>
        <name>operator==</name>
        <qualifiedname>tf::cudaDeviceAllocator::operator==</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1cudaDeviceAllocator" kindref="compound">cudaDeviceAllocator</ref>&lt; U &gt; &amp;</type>
        </param>
        <briefdescription>
<para>compares two allocator of different types using <computeroutput>==</computeroutput> </para>
        </briefdescription>
        <detaileddescription>
<para>Device 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="555" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="555" bodyend="557"/>
      </memberdef>
      <memberdef kind="function" id="classtf_1_1cudaDeviceAllocator_1ae31834c1ab0a8a9c88274ff524cebbac" 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::cudaDeviceAllocator&lt; T &gt;::operator!=</definition>
        <argsstring>(const cudaDeviceAllocator&lt; U &gt; &amp;) const noexcept</argsstring>
        <name>operator!=</name>
        <qualifiedname>tf::cudaDeviceAllocator::operator!=</qualifiedname>
        <param>
          <type>const <ref refid="classtf_1_1cudaDeviceAllocator" kindref="compound">cudaDeviceAllocator</ref>&lt; U &gt; &amp;</type>
        </param>
        <briefdescription>
<para>compares two allocator of different types using <computeroutput>!=</computeroutput> </para>
        </briefdescription>
        <detaileddescription>
<para>Device 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="567" column="8" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="567" bodyend="569"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>class to create a CUDA device allocator </para>
    </briefdescription>
    <detaileddescription>
<para><parameterlist kind="templateparam"><parameteritem>
<parameternamelist>
<parametername>T</parametername>
</parameternamelist>
<parameterdescription>
<para>element type</para>
</parameterdescription>
</parameteritem>
</parameterlist>
A cudaDeviceAllocator enables device-specific 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="393" column="1" bodyfile="/Users/twhuang/Code/taskflow/taskflow/cuda/cuda_memory.hpp" bodystart="393" bodyend="571"/>
    <listofallmembers>
      <member refid="classtf_1_1cudaDeviceAllocator_1a3aeae7566c71b25fc5b722f74b68a8f9" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>address</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1aadbef395cbe886d2be80ba1771992ffb" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>address</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1ac9231153699981e5732ae75230f6fb31" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>allocate</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a3cce1e14aad82c9444ab3076a8f35482" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>const_pointer</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a449d07320a94b00d4b09fa0f4e1ce399" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>const_reference</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a280882efd5963a11aa5d79ed491c056e" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>construct</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a5db2fe60c59fe95ceee94392508f9f82" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>cudaDeviceAllocator</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a8c6f5c1a2ad3fb5d933911c18f10397e" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>cudaDeviceAllocator</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1aba7fc3e232d452c4c474225bdf4adabb" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>cudaDeviceAllocator</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1acb6d952479fda4ac4269b9d40529a0a7" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>deallocate</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1af50777c1f25a5766980d8fdbdd250b83" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>destroy</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1aaacd3b516ceaa9468e40dcf1a048a453" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>difference_type</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a095d67530352fb7be340775fe0c7b120" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>max_size</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1ae31834c1ab0a8a9c88274ff524cebbac" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>operator!=</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a1038b32b85395c5f2e206221d0f849b7" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>operator==</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a68c29bda337094fcb9fc6f3e9445ca9c" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>pointer</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1aef9d9622074af9b3ce50b5a63346998b" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>reference</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1ac4b1781c2f116866927701d931bf8852" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>size_type</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a37039db4f27e849c44b361c6d107903c" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>value_type</name></member>
      <member refid="classtf_1_1cudaDeviceAllocator_1a1c5dd0ea4e5c574e57b804cfff24ec0b" prot="public" virt="non-virtual"><scope>tf::cudaDeviceAllocator</scope><name>~cudaDeviceAllocator</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
