Metahuman_DNA_Calibration/docs/doxygen/build/xml/ManagedInstance_8h.xml

158 lines
16 KiB
XML
Raw Normal View History

2022-11-28 19:21:26 +08:00
<?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.4" xml:lang="en-US">
<compounddef id="ManagedInstance_8h" kind="file" language="C++">
<compoundname>ManagedInstance.h</compoundname>
<includes refid="PolyAllocator_8h" local="yes">pma/PolyAllocator.h</includes>
<includes local="no">functional</includes>
<includes local="no">memory</includes>
<includes local="no">utility</includes>
<incdepgraph>
<node id="4">
<label>pma/Defs.h</label>
<link refid="pma_2Defs_8h"/>
</node>
<node id="3">
<label>pma/MemoryResource.h</label>
<link refid="MemoryResource_8h"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
</node>
<node id="2">
<label>pma/PolyAllocator.h</label>
<link refid="PolyAllocator_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
</node>
<node id="6">
<label>pma/resources/DefaultMemoryResource.h</label>
<link refid="DefaultMemoryResource_8h"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
</node>
<node id="1">
<label>ManagedInstance.h</label>
<link refid="ManagedInstance_8h"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
</node>
<node id="7">
<label>cassert</label>
</node>
<node id="5">
<label>cstddef</label>
</node>
<node id="12">
<label>functional</label>
</node>
<node id="8">
<label>memory</label>
</node>
<node id="9">
<label>scoped_allocator</label>
</node>
<node id="10">
<label>type_traits</label>
</node>
<node id="11">
<label>utility</label>
</node>
</incdepgraph>
<innerclass refid="classpma_1_1impl_1_1ManagedInstance" prot="public">pma::impl::ManagedInstance</innerclass>
<innernamespace refid="namespacepma">pma</innernamespace>
<innernamespace refid="namespacepma_1_1impl">pma::impl</innernamespace>
<briefdescription>
</briefdescription>
<detaileddescription>
</detaileddescription>
<programlisting>
<codeline lineno="1"><highlight class="comment">//<sp/>Copyright<sp/>Epic<sp/>Games,<sp/>Inc.<sp/>All<sp/>Rights<sp/>Reserved.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight></codeline>
<codeline lineno="3"><highlight class="normal"></highlight><highlight class="preprocessor">#pragma<sp/>once</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;<ref refid="PolyAllocator_8h" kindref="compound">pma/PolyAllocator.h</ref>&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>_MSC_VER</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="8"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/>#pragma<sp/>warning(push)</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/>#pragma<sp/>warning(disable<sp/>:<sp/>4365<sp/>4987)</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;functional&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;memory&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;utility&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="14"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>_MSC_VER</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="15"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/>#pragma<sp/>warning(pop)</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></codeline>
<codeline lineno="18"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal"><ref refid="namespacepma" kindref="compound">pma</ref><sp/>{</highlight></codeline>
<codeline lineno="19"><highlight class="normal"></highlight></codeline>
<codeline lineno="20"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">MemoryResource;</highlight></codeline>
<codeline lineno="21"><highlight class="normal"></highlight></codeline>
<codeline lineno="22"><highlight class="normal"></highlight><highlight class="keyword">namespace<sp/></highlight><highlight class="normal">impl<sp/>{</highlight></codeline>
<codeline lineno="23"><highlight class="normal"></highlight></codeline>
<codeline lineno="24"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>TPo</highlight><highlight class="keywordtype">int</highlight><highlight class="normal">er,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>TTarget,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>TBase<sp/>=<sp/>TTarget&gt;</highlight></codeline>
<codeline lineno="25" refid="classpma_1_1impl_1_1ManagedInstance" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classpma_1_1impl_1_1ManagedInstance" kindref="compound">ManagedInstance</ref><sp/>{</highlight></codeline>
<codeline lineno="26"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="27" refid="classpma_1_1impl_1_1ManagedInstance_1afd448d8fa106beee2840f3f816d61d52" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="classpma_1_1impl_1_1ManagedInstance_1afd448d8fa106beee2840f3f816d61d52" kindref="member">PointerType</ref><sp/>=<sp/>TPointer;</highlight></codeline>
<codeline lineno="28"><highlight class="normal"></highlight></codeline>
<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="30" refid="classpma_1_1impl_1_1ManagedInstance_1a03f64bdfbad9365a5cfeccd802b58bc6" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">explicit</highlight><highlight class="normal"><sp/><ref refid="classpma_1_1impl_1_1ManagedInstance_1a03f64bdfbad9365a5cfeccd802b58bc6" kindref="member">ManagedInstance</ref>(<ref refid="classpma_1_1MemoryResource" kindref="compound">MemoryResource</ref>*<sp/>memRes)<sp/>:<sp/><ref refid="classpma_1_1impl_1_1ManagedInstance_1a17409d6c31580fae9161a26ecead8a8d" kindref="member">pMemRes</ref>{memRes}<sp/>{</highlight></codeline>
<codeline lineno="31"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight></codeline>
<codeline lineno="33"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="34" refid="classpma_1_1impl_1_1ManagedInstance_1a377169afd485fcbcc7a7758a101d381d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static</highlight><highlight class="normal"><sp/><ref refid="classpma_1_1impl_1_1ManagedInstance" kindref="compound">ManagedInstance</ref><sp/><ref refid="classpma_1_1impl_1_1ManagedInstance_1a377169afd485fcbcc7a7758a101d381d" kindref="member">with</ref>(<ref refid="classpma_1_1MemoryResource" kindref="compound">MemoryResource</ref>*<sp/>memRes)<sp/>{</highlight></codeline>
<codeline lineno="35"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classpma_1_1impl_1_1ManagedInstance" kindref="compound">ManagedInstance</ref>{memRes};</highlight></codeline>
<codeline lineno="36"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="37"><highlight class="normal"></highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>...<sp/>Args&gt;</highlight></codeline>
<codeline lineno="39" refid="classpma_1_1impl_1_1ManagedInstance_1a4db0954a07f5e243c42b286d49d956dd" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1impl_1_1ManagedInstance_1afd448d8fa106beee2840f3f816d61d52" kindref="member">PointerType</ref><sp/><ref refid="classpma_1_1impl_1_1ManagedInstance_1a4db0954a07f5e243c42b286d49d956dd" kindref="member">create</ref>(Args&amp;&amp;<sp/>...<sp/>args)<sp/>{</highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1PolyAllocator" kindref="compound">pma::PolyAllocator&lt;TTarget&gt;</ref><sp/>alloc{<ref refid="classpma_1_1impl_1_1ManagedInstance_1a17409d6c31580fae9161a26ecead8a8d" kindref="member">pMemRes</ref>};</highlight></codeline>
<codeline lineno="41"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">auto</highlight><highlight class="normal"><sp/>deleter<sp/>=<sp/>[alloc](TBase*<sp/>ptr)<sp/></highlight><highlight class="keyword">mutable</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="42"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>alloc.deleteObject(</highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal">TTarget*</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(ptr));</highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="44"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>{alloc.newObject(std::forward&lt;Args&gt;(args)...),<sp/>deleter};</highlight></codeline>
<codeline lineno="45"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="46"><highlight class="normal"></highlight></codeline>
<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="48" refid="classpma_1_1impl_1_1ManagedInstance_1a17409d6c31580fae9161a26ecead8a8d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1MemoryResource" kindref="compound">MemoryResource</ref>*<sp/><ref refid="classpma_1_1impl_1_1ManagedInstance_1a17409d6c31580fae9161a26ecead8a8d" kindref="member">pMemRes</ref>;</highlight></codeline>
<codeline lineno="49"><highlight class="normal"></highlight></codeline>
<codeline lineno="50"><highlight class="normal">};</highlight></codeline>
<codeline lineno="51"><highlight class="normal"></highlight></codeline>
<codeline lineno="52"><highlight class="normal">}<sp/><sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>impl</highlight><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">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>TTarget,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>TBase<sp/>=<sp/>TTarget&gt;</highlight></codeline>
<codeline lineno="55" refid="namespacepma_1a8a889fca042c1a201a8c7f3c822e02ac" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="classpma_1_1impl_1_1ManagedInstance" kindref="compound">UniqueInstance</ref><sp/>=<sp/><ref refid="classpma_1_1impl_1_1ManagedInstance" kindref="compound">impl::ManagedInstance</ref>&lt;std::unique_ptr&lt;TBase,<sp/>std::function&lt;void<sp/>(TBase*)&gt;<sp/>&gt;,<sp/>TTarget,<sp/>TBase&gt;;</highlight></codeline>
<codeline lineno="56"><highlight class="normal"></highlight></codeline>
<codeline lineno="57"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>TTarget,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>TBase<sp/>=<sp/>TTarget&gt;</highlight></codeline>
<codeline lineno="58" refid="namespacepma_1ae5d5b3ccc2827874d96c73b97ade544e" refkind="member"><highlight class="normal"></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="classpma_1_1impl_1_1ManagedInstance" kindref="compound">SharedInstance</ref><sp/>=<sp/><ref refid="classpma_1_1impl_1_1ManagedInstance" kindref="compound">impl::ManagedInstance&lt;std::shared_ptr&lt;TBase&gt;</ref>,<sp/>TTarget,<sp/>TBase&gt;;</highlight></codeline>
<codeline lineno="59"><highlight class="normal"></highlight></codeline>
<codeline lineno="60"><highlight class="normal">}<sp/><sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>pma</highlight><highlight class="normal"></highlight></codeline>
</programlisting>
2022-12-02 21:35:01 +08:00
<location file="C:/source/MetaHuman-DNA-Calibration_clean/dnacalib/DNACalib/include/pma/utils/ManagedInstance.h"/>
2022-11-28 19:21:26 +08:00
</compounddef>
</doxygen>