Metahuman_DNA_Calibration/docs/doxygen/build/xml/ScopedPtr_8h.xml
2023-04-21 12:19:55 +02:00

1677 lines
109 KiB
XML

<?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="ScopedPtr_8h" kind="file" language="C++">
<compoundname>ScopedPtr.h</compoundname>
<includes local="no">utility</includes>
<includedby refid="dna_2types_2Aliases_8h" local="no">Aliases.h</includedby>
<includedby refid="dnacalib_2types_2Aliases_8h" local="no">Aliases.h</includedby>
<includedby refid="trio_2types_2Aliases_8h" local="no">Aliases.h</includedby>
<includedby refid="ArenaMemoryResource_8cpp" local="yes">ArenaMemoryResource.cpp</includedby>
<includedby refid="ArenaMemoryResource_8h" local="yes">ArenaMemoryResource.h</includedby>
<includedby refid="MemoryMappedFileStreamFallback_8cpp" local="no">MemoryMappedFileStreamFallback.cpp</includedby>
<includedby refid="MemoryMappedFileStreamFallback_8h" local="no">MemoryMappedFileStreamFallback.h</includedby>
<incdepgraph>
<node id="1">
<label>ScopedPtr.h</label>
<link refid="ScopedPtr_8h"/>
<childnode refid="2" relation="include">
</childnode>
</node>
<node id="2">
<label>utility</label>
</node>
</incdepgraph>
<invincdepgraph>
<node id="36">
<label>CommandSequence.cpp</label>
<link refid="examples_2CommandSequence_8cpp"/>
</node>
<node id="37">
<label>SingleCommand.cpp</label>
<link refid="SingleCommand_8cpp"/>
</node>
<node id="94">
<label>BinaryStreamReader.h</label>
<link refid="BinaryStreamReader_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
</node>
<node id="105">
<label>BinaryStreamWriter.h</label>
<link refid="BinaryStreamWriter_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="106" relation="include">
</childnode>
</node>
<node id="97">
<label>JSONStreamReader.h</label>
<link refid="JSONStreamReader_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="98" relation="include">
</childnode>
</node>
<node id="108">
<label>JSONStreamWriter.h</label>
<link refid="JSONStreamWriter_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="109" relation="include">
</childnode>
</node>
<node id="91">
<label>Reader.h</label>
<link refid="Reader_8h"/>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="92" relation="include">
</childnode>
<childnode refid="93" relation="include">
</childnode>
<childnode refid="101" relation="include">
</childnode>
</node>
<node id="93">
<label>StreamReader.h</label>
<link refid="StreamReader_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="94" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="100" relation="include">
</childnode>
</node>
<node id="104">
<label>StreamWriter.h</label>
<link refid="StreamWriter_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="105" relation="include">
</childnode>
<childnode refid="108" relation="include">
</childnode>
<childnode refid="111" relation="include">
</childnode>
</node>
<node id="103">
<label>Writer.h</label>
<link refid="Writer_8h"/>
<childnode refid="6" relation="include">
</childnode>
<childnode refid="104" relation="include">
</childnode>
<childnode refid="101" relation="include">
</childnode>
</node>
<node id="90">
<label>BehaviorReader.h</label>
<link refid="BehaviorReader_8h"/>
<childnode refid="91" relation="include">
</childnode>
</node>
<node id="102">
<label>BehaviorWriter.h</label>
<link refid="BehaviorWriter_8h"/>
<childnode refid="103" relation="include">
</childnode>
</node>
<node id="112">
<label>DefinitionReader.h</label>
<link refid="DefinitionReader_8h"/>
<childnode refid="90" relation="include">
</childnode>
<childnode refid="113" relation="include">
</childnode>
</node>
<node id="114">
<label>DefinitionWriter.h</label>
<link refid="DefinitionWriter_8h"/>
<childnode refid="102" relation="include">
</childnode>
<childnode refid="115" relation="include">
</childnode>
</node>
<node id="117">
<label>DescriptorReader.h</label>
<link refid="DescriptorReader_8h"/>
<childnode refid="112" relation="include">
</childnode>
</node>
<node id="118">
<label>DescriptorWriter.h</label>
<link refid="DescriptorWriter_8h"/>
<childnode refid="114" relation="include">
</childnode>
</node>
<node id="113">
<label>GeometryReader.h</label>
<link refid="GeometryReader_8h"/>
<childnode refid="91" relation="include">
</childnode>
</node>
<node id="115">
<label>GeometryWriter.h</label>
<link refid="GeometryWriter_8h"/>
<childnode refid="103" relation="include">
</childnode>
</node>
<node id="2">
<label>Aliases.h</label>
<link refid="dna_2types_2Aliases_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="89" relation="include">
</childnode>
<childnode refid="90" relation="include">
</childnode>
<childnode refid="102" relation="include">
</childnode>
<childnode refid="94" relation="include">
</childnode>
<childnode refid="105" relation="include">
</childnode>
<childnode refid="112" relation="include">
</childnode>
<childnode refid="114" relation="include">
</childnode>
<childnode refid="116" relation="include">
</childnode>
<childnode refid="117" relation="include">
</childnode>
<childnode refid="118" relation="include">
</childnode>
<childnode refid="113" relation="include">
</childnode>
<childnode refid="97" relation="include">
</childnode>
<childnode refid="108" relation="include">
</childnode>
<childnode refid="93" relation="include">
</childnode>
<childnode refid="104" relation="include">
</childnode>
<childnode refid="119" relation="include">
</childnode>
<childnode refid="103" relation="include">
</childnode>
</node>
<node id="39">
<label>Command.h</label>
<link refid="Command_8h"/>
<childnode refid="34" relation="include">
</childnode>
<childnode refid="38" relation="include">
</childnode>
<childnode refid="40" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="43" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
<childnode refid="46" relation="include">
</childnode>
<childnode refid="47" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="50" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
<childnode refid="60" relation="include">
</childnode>
<childnode refid="61" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
</node>
<node id="35">
<label>DNACalib.h</label>
<link refid="DNACalib_8h"/>
<childnode refid="36" relation="include">
</childnode>
<childnode refid="37" relation="include">
</childnode>
</node>
<node id="34">
<label>CalculateMeshLowerLODsCommand.h</label>
<link refid="CalculateMeshLowerLODsCommand_8h"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
</node>
<node id="38">
<label>ClearBlendShapesCommand.h</label>
<link refid="ClearBlendShapesCommand_8h"/>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
</node>
<node id="41">
<label>CommandSequence.h</label>
<link refid="CommandSequence_8h"/>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
</node>
<node id="43">
<label>ConditionalCommand.h</label>
<link refid="ConditionalCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
</node>
<node id="44">
<label>PruneBlendShapeTargetsCommand.h</label>
<link refid="PruneBlendShapeTargetsCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
</node>
<node id="45">
<label>RemoveAnimatedMapCommand.h</label>
<link refid="RemoveAnimatedMapCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
</node>
<node id="46">
<label>RemoveBlendShapeCommand.h</label>
<link refid="RemoveBlendShapeCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
</node>
<node id="47">
<label>RemoveJointAnimationCommand.h</label>
<link refid="RemoveJointAnimationCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
</node>
<node id="48">
<label>RemoveJointCommand.h</label>
<link refid="RemoveJointCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
</node>
<node id="49">
<label>RemoveMeshCommand.h</label>
<link refid="RemoveMeshCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
</node>
<node id="50">
<label>RenameAnimatedMapCommand.h</label>
<link refid="RenameAnimatedMapCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
</node>
<node id="51">
<label>RenameBlendShapeCommand.h</label>
<link refid="RenameBlendShapeCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
</node>
<node id="52">
<label>RenameJointCommand.h</label>
<link refid="RenameJointCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
</node>
<node id="53">
<label>RenameMeshCommand.h</label>
<link refid="RenameMeshCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="54">
<label>RotateCommand.h</label>
<link refid="RotateCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="55">
<label>ScaleCommand.h</label>
<link refid="ScaleCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
</node>
<node id="56">
<label>SetBlendShapeTargetDeltasCommand.h</label>
<link refid="SetBlendShapeTargetDeltasCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
</node>
<node id="57">
<label>SetLODsCommand.h</label>
<link refid="SetLODsCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
</node>
<node id="58">
<label>SetNeutralJointRotationsCommand.h</label>
<link refid="SetNeutralJointRotationsCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
</node>
<node id="59">
<label>SetNeutralJointTranslationsCommand.h</label>
<link refid="SetNeutralJointTranslationsCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
</node>
<node id="60">
<label>SetSkinWeightsCommand.h</label>
<link refid="SetSkinWeightsCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
</node>
<node id="61">
<label>SetVertexPositionsCommand.h</label>
<link refid="SetVertexPositionsCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="62">
<label>TranslateCommand.h</label>
<link refid="TranslateCommand_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
</node>
<node id="64">
<label>DNACalibDNAReader.h</label>
<link refid="DNACalibDNAReader_8h"/>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="6" relation="include">
</childnode>
</node>
<node id="3">
<label>Aliases.h</label>
<link refid="dnacalib_2types_2Aliases_8h"/>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="34" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="38" relation="include">
</childnode>
<childnode refid="39" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="41" relation="include">
</childnode>
<childnode refid="35" relation="include">
</childnode>
<childnode refid="64" relation="include">
</childnode>
<childnode refid="65" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="44" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="45" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="46" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="47" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="48" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="49" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="50" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="51" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="52" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="53" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="54" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="55" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="56" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="57" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="58" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="59" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="60" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
<childnode refid="61" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
<childnode refid="62" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="68" relation="include">
</childnode>
<childnode refid="32" relation="include">
</childnode>
<childnode refid="87" relation="include">
</childnode>
</node>
<node id="87">
<label>VersionInfo.h</label>
<link refid="VersionInfo_8h"/>
<childnode refid="88" relation="include">
</childnode>
</node>
<node id="1">
<label>ScopedPtr.h</label>
<link refid="ScopedPtr_8h"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="138" relation="include">
</childnode>
<childnode refid="154" relation="include">
</childnode>
<childnode refid="155" relation="include">
</childnode>
<childnode refid="143" relation="include">
</childnode>
<childnode refid="141" relation="include">
</childnode>
</node>
<node id="155">
<label>ArenaMemoryResource.h</label>
<link refid="ArenaMemoryResource_8h"/>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="154" relation="include">
</childnode>
<childnode refid="119" relation="include">
</childnode>
<childnode refid="68" relation="include">
</childnode>
</node>
<node id="146">
<label>Stream.h</label>
<link refid="Stream_8h"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="147" relation="include">
</childnode>
<childnode refid="148" relation="include">
</childnode>
<childnode refid="149" relation="include">
</childnode>
<childnode refid="150" relation="include">
</childnode>
<childnode refid="151" relation="include">
</childnode>
<childnode refid="152" relation="include">
</childnode>
</node>
<node id="147">
<label>FileStream.h</label>
<link refid="FileStream_8h"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="139" relation="include">
</childnode>
<childnode refid="141" relation="include">
</childnode>
</node>
<node id="148">
<label>MemoryMappedFileStream.h</label>
<link refid="MemoryMappedFileStream_8h"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="142" relation="include">
</childnode>
<childnode refid="141" relation="include">
</childnode>
</node>
<node id="149">
<label>MemoryStream.h</label>
<link refid="MemoryStream_8h"/>
<childnode refid="2" relation="include">
</childnode>
<childnode refid="3" relation="include">
</childnode>
<childnode refid="144" relation="include">
</childnode>
</node>
<node id="138">
<label>Aliases.h</label>
<link refid="trio_2types_2Aliases_8h"/>
<childnode refid="139" relation="include">
</childnode>
<childnode refid="141" relation="include">
</childnode>
<childnode refid="144" relation="include">
</childnode>
<childnode refid="146" relation="include">
</childnode>
<childnode refid="153" relation="include">
</childnode>
</node>
<node id="151">
<label>StreamScope.h</label>
<link refid="StreamScope_8h"/>
<childnode refid="96" relation="include">
</childnode>
<childnode refid="99" relation="include">
</childnode>
</node>
<node id="89">
<label>BaseImpl.h</label>
<link refid="dna_2BaseImpl_8h"/>
</node>
<node id="124">
<label>DNA.h</label>
<link refid="dna_2DNA_8h"/>
</node>
<node id="116">
<label>DenormalizedData.h</label>
<link refid="dna_2DenormalizedData_8h"/>
</node>
<node id="129">
<label>LODConstraint.h</label>
<link refid="dna_2LODConstraint_8h"/>
</node>
<node id="130">
<label>LODMapping.cpp</label>
<link refid="dna_2LODMapping_8cpp"/>
</node>
<node id="131">
<label>LODMapping.h</label>
<link refid="dna_2LODMapping_8h"/>
</node>
<node id="92">
<label>Reader.cpp</label>
<link refid="Reader_8cpp"/>
</node>
<node id="134">
<label>ReaderImpl.h</label>
<link refid="dna_2ReaderImpl_8h"/>
</node>
<node id="136">
<label>SurjectiveMapping.h</label>
<link refid="dna_2SurjectiveMapping_8h"/>
</node>
<node id="119">
<label>TypeDefs.h</label>
<link refid="src_2dna_2TypeDefs_8h"/>
<childnode refid="120" relation="include">
</childnode>
<childnode refid="121" relation="include">
</childnode>
<childnode refid="96" relation="include">
</childnode>
<childnode refid="95" relation="include">
</childnode>
<childnode refid="107" relation="include">
</childnode>
<childnode refid="122" relation="include">
</childnode>
<childnode refid="123" relation="include">
</childnode>
<childnode refid="124" relation="include">
</childnode>
<childnode refid="125" relation="include">
</childnode>
<childnode refid="126" relation="include">
</childnode>
<childnode refid="99" relation="include">
</childnode>
<childnode refid="98" relation="include">
</childnode>
<childnode refid="110" relation="include">
</childnode>
<childnode refid="127" relation="include">
</childnode>
<childnode refid="128" relation="include">
</childnode>
<childnode refid="129" relation="include">
</childnode>
<childnode refid="130" relation="include">
</childnode>
<childnode refid="131" relation="include">
</childnode>
<childnode refid="132" relation="include">
</childnode>
<childnode refid="133" relation="include">
</childnode>
<childnode refid="134" relation="include">
</childnode>
<childnode refid="135" relation="include">
</childnode>
<childnode refid="136" relation="include">
</childnode>
<childnode refid="101" relation="include">
</childnode>
<childnode refid="137" relation="include">
</childnode>
</node>
<node id="101">
<label>Writer.cpp</label>
<link refid="Writer_8cpp"/>
</node>
<node id="137">
<label>WriterImpl.h</label>
<link refid="dna_2WriterImpl_8h"/>
</node>
<node id="120">
<label>AnimatedMapFilter.cpp</label>
<link refid="filters_2AnimatedMapFilter_8cpp"/>
</node>
<node id="121">
<label>AnimatedMapFilter.h</label>
<link refid="filters_2AnimatedMapFilter_8h"/>
</node>
<node id="122">
<label>BlendShapeFilter.cpp</label>
<link refid="filters_2BlendShapeFilter_8cpp"/>
</node>
<node id="123">
<label>BlendShapeFilter.h</label>
<link refid="filters_2BlendShapeFilter_8h"/>
</node>
<node id="127">
<label>JointFilter.cpp</label>
<link refid="filters_2JointFilter_8cpp"/>
</node>
<node id="128">
<label>JointFilter.h</label>
<link refid="filters_2JointFilter_8h"/>
</node>
<node id="132">
<label>MeshFilter.cpp</label>
<link refid="filters_2MeshFilter_8cpp"/>
</node>
<node id="133">
<label>MeshFilter.h</label>
<link refid="filters_2MeshFilter_8h"/>
</node>
<node id="135">
<label>Remap.h</label>
<link refid="filters_2Remap_8h"/>
</node>
<node id="96">
<label>BinaryStreamReaderImpl.cpp</label>
<link refid="BinaryStreamReaderImpl_8cpp"/>
</node>
<node id="95">
<label>BinaryStreamReaderImpl.h</label>
<link refid="BinaryStreamReaderImpl_8h"/>
<childnode refid="96" relation="include">
</childnode>
</node>
<node id="107">
<label>BinaryStreamWriterImpl.cpp</label>
<link refid="BinaryStreamWriterImpl_8cpp"/>
</node>
<node id="106">
<label>BinaryStreamWriterImpl.h</label>
<link refid="BinaryStreamWriterImpl_8h"/>
<childnode refid="107" relation="include">
</childnode>
</node>
<node id="125">
<label>FilteredInputArchive.cpp</label>
<link refid="FilteredInputArchive_8cpp"/>
</node>
<node id="126">
<label>FilteredInputArchive.h</label>
<link refid="FilteredInputArchive_8h"/>
<childnode refid="95" relation="include">
</childnode>
<childnode refid="125" relation="include">
</childnode>
</node>
<node id="99">
<label>JSONStreamReaderImpl.cpp</label>
<link refid="JSONStreamReaderImpl_8cpp"/>
</node>
<node id="98">
<label>JSONStreamReaderImpl.h</label>
<link refid="JSONStreamReaderImpl_8h"/>
<childnode refid="99" relation="include">
</childnode>
</node>
<node id="110">
<label>JSONStreamWriterImpl.cpp</label>
<link refid="JSONStreamWriterImpl_8cpp"/>
</node>
<node id="109">
<label>JSONStreamWriterImpl.h</label>
<link refid="JSONStreamWriterImpl_8h"/>
<childnode refid="110" relation="include">
</childnode>
</node>
<node id="100">
<label>StreamReader.cpp</label>
<link refid="StreamReader_8cpp"/>
</node>
<node id="111">
<label>StreamWriter.cpp</label>
<link refid="StreamWriter_8cpp"/>
</node>
<node id="40">
<label>Command.cpp</label>
<link refid="Command_8cpp"/>
</node>
<node id="63">
<label>CommandImplBase.h</label>
<link refid="CommandImplBase_8h"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
</node>
<node id="68">
<label>TypeDefs.h</label>
<link refid="src_2dnacalib_2TypeDefs_8h"/>
<childnode refid="69" relation="include">
</childnode>
<childnode refid="70" relation="include">
</childnode>
<childnode refid="71" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="73" relation="include">
</childnode>
<childnode refid="31" relation="include">
</childnode>
<childnode refid="63" relation="include">
</childnode>
<childnode refid="42" relation="include">
</childnode>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="77" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="78" relation="include">
</childnode>
<childnode refid="79" relation="include">
</childnode>
<childnode refid="81" relation="include">
</childnode>
<childnode refid="82" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="83" relation="include">
</childnode>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="84" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
<childnode refid="85" relation="include">
</childnode>
<childnode refid="86" relation="include">
</childnode>
<childnode refid="66" relation="include">
</childnode>
<childnode refid="30" relation="include">
</childnode>
</node>
<node id="7">
<label>CalculateMeshLowerLODsCommand.cpp</label>
<link refid="CalculateMeshLowerLODsCommand_8cpp"/>
</node>
<node id="8">
<label>ClearBlendShapesCommand.cpp</label>
<link refid="ClearBlendShapesCommand_8cpp"/>
</node>
<node id="42">
<label>CommandSequence.cpp</label>
<link refid="src_2dnacalib_2commands_2CommandSequence_8cpp"/>
</node>
<node id="10">
<label>PruneBlendShapeTargetsCommand.cpp</label>
<link refid="PruneBlendShapeTargetsCommand_8cpp"/>
</node>
<node id="11">
<label>RemoveAnimatedMapCommand.cpp</label>
<link refid="RemoveAnimatedMapCommand_8cpp"/>
</node>
<node id="12">
<label>RemoveBlendShapeCommand.cpp</label>
<link refid="RemoveBlendShapeCommand_8cpp"/>
</node>
<node id="13">
<label>RemoveJointAnimationCommand.cpp</label>
<link refid="RemoveJointAnimationCommand_8cpp"/>
</node>
<node id="14">
<label>RemoveJointCommand.cpp</label>
<link refid="RemoveJointCommand_8cpp"/>
</node>
<node id="15">
<label>RemoveMeshCommand.cpp</label>
<link refid="RemoveMeshCommand_8cpp"/>
</node>
<node id="16">
<label>RenameAnimatedMapCommand.cpp</label>
<link refid="RenameAnimatedMapCommand_8cpp"/>
</node>
<node id="17">
<label>RenameBlendShapeCommand.cpp</label>
<link refid="RenameBlendShapeCommand_8cpp"/>
</node>
<node id="18">
<label>RenameJointCommand.cpp</label>
<link refid="RenameJointCommand_8cpp"/>
</node>
<node id="19">
<label>RenameMeshCommand.cpp</label>
<link refid="RenameMeshCommand_8cpp"/>
</node>
<node id="20">
<label>RenameResourceCommand.h</label>
<link refid="RenameResourceCommand_8h"/>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
</node>
<node id="21">
<label>RotateCommand.cpp</label>
<link refid="RotateCommand_8cpp"/>
</node>
<node id="22">
<label>ScaleCommand.cpp</label>
<link refid="ScaleCommand_8cpp"/>
</node>
<node id="23">
<label>SetBlendShapeTargetDeltasCommand.cpp</label>
<link refid="SetBlendShapeTargetDeltasCommand_8cpp"/>
</node>
<node id="24">
<label>SetLODsCommand.cpp</label>
<link refid="SetLODsCommand_8cpp"/>
</node>
<node id="25">
<label>SetNeutralJointRotationsCommand.cpp</label>
<link refid="SetNeutralJointRotationsCommand_8cpp"/>
</node>
<node id="26">
<label>SetNeutralJointTranslationsCommand.cpp</label>
<link refid="SetNeutralJointTranslationsCommand_8cpp"/>
</node>
<node id="27">
<label>SetSkinWeightsCommand.cpp</label>
<link refid="SetSkinWeightsCommand_8cpp"/>
</node>
<node id="28">
<label>SetVertexPositionsCommand.cpp</label>
<link refid="SetVertexPositionsCommand_8cpp"/>
</node>
<node id="85">
<label>SupportFactories.h</label>
<link refid="SupportFactories_8h"/>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="29">
<label>TranslateCommand.cpp</label>
<link refid="TranslateCommand_8cpp"/>
</node>
<node id="4">
<label>BaseImpl.h</label>
<link refid="dnacalib_2dna_2BaseImpl_8h"/>
<childnode refid="5" relation="include">
</childnode>
<childnode refid="30" relation="include">
</childnode>
</node>
<node id="74">
<label>DNA.h</label>
<link refid="dnacalib_2dna_2DNA_8h"/>
<childnode refid="70" relation="include">
</childnode>
<childnode refid="4" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="8" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
<childnode refid="10" relation="include">
</childnode>
<childnode refid="11" relation="include">
</childnode>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
</node>
<node id="9">
<label>DNACalibDNAReaderImpl.cpp</label>
<link refid="DNACalibDNAReaderImpl_8cpp"/>
</node>
<node id="6">
<label>DNACalibDNAReaderImpl.h</label>
<link refid="DNACalibDNAReaderImpl_8h"/>
<childnode refid="7" 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>
<childnode refid="12" relation="include">
</childnode>
<childnode refid="13" relation="include">
</childnode>
<childnode refid="14" relation="include">
</childnode>
<childnode refid="15" relation="include">
</childnode>
<childnode refid="16" relation="include">
</childnode>
<childnode refid="17" relation="include">
</childnode>
<childnode refid="18" relation="include">
</childnode>
<childnode refid="19" relation="include">
</childnode>
<childnode refid="20" relation="include">
</childnode>
<childnode refid="21" relation="include">
</childnode>
<childnode refid="22" relation="include">
</childnode>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="24" relation="include">
</childnode>
<childnode refid="25" relation="include">
</childnode>
<childnode refid="26" relation="include">
</childnode>
<childnode refid="27" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
<childnode refid="29" relation="include">
</childnode>
</node>
<node id="65">
<label>DenormalizedData.h</label>
<link refid="dnacalib_2dna_2DenormalizedData_8h"/>
<childnode refid="5" relation="include">
</childnode>
</node>
<node id="80">
<label>LODConstraint.cpp</label>
<link refid="dnacalib_2dna_2LODConstraint_8cpp"/>
</node>
<node id="79">
<label>LODConstraint.h</label>
<link refid="dnacalib_2dna_2LODConstraint_8h"/>
<childnode refid="80" relation="include">
</childnode>
<childnode refid="81" relation="include">
</childnode>
</node>
<node id="81">
<label>LODMapping.cpp</label>
<link refid="dnacalib_2dna_2LODMapping_8cpp"/>
</node>
<node id="82">
<label>LODMapping.h</label>
<link refid="dnacalib_2dna_2LODMapping_8h"/>
<childnode refid="74" relation="include">
</childnode>
<childnode refid="65" relation="include">
</childnode>
<childnode refid="81" relation="include">
</childnode>
</node>
<node id="5">
<label>ReaderImpl.h</label>
<link refid="dnacalib_2dna_2ReaderImpl_8h"/>
<childnode refid="6" relation="include">
</childnode>
</node>
<node id="86">
<label>SurjectiveMapping.h</label>
<link refid="dnacalib_2dna_2SurjectiveMapping_8h"/>
<childnode refid="74" relation="include">
</childnode>
</node>
<node id="30">
<label>WriterImpl.h</label>
<link refid="dnacalib_2dna_2WriterImpl_8h"/>
<childnode refid="6" relation="include">
</childnode>
</node>
<node id="70">
<label>AnimatedMapFilter.cpp</label>
<link refid="alib_2dna_2filters_2AnimatedMapFilter_8cpp"/>
</node>
<node id="71">
<label>AnimatedMapFilter.h</label>
<link refid="alib_2dna_2filters_2AnimatedMapFilter_8h"/>
<childnode refid="70" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="72">
<label>BlendShapeFilter.cpp</label>
<link refid="alib_2dna_2filters_2BlendShapeFilter_8cpp"/>
</node>
<node id="73">
<label>BlendShapeFilter.h</label>
<link refid="alib_2dna_2filters_2BlendShapeFilter_8h"/>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="9" relation="include">
</childnode>
</node>
<node id="75">
<label>JointFilter.cpp</label>
<link refid="alib_2dna_2filters_2JointFilter_8cpp"/>
</node>
<node id="78">
<label>JointFilter.h</label>
<link refid="alib_2dna_2filters_2JointFilter_8h"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
</node>
<node id="76">
<label>MeshFilter.cpp</label>
<link refid="alib_2dna_2filters_2MeshFilter_8cpp"/>
</node>
<node id="83">
<label>MeshFilter.h</label>
<link refid="alib_2dna_2filters_2MeshFilter_8h"/>
<childnode refid="9" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
</node>
<node id="84">
<label>Remap.h</label>
<link refid="alib_2dna_2filters_2Remap_8h"/>
<childnode refid="70" relation="include">
</childnode>
<childnode refid="72" relation="include">
</childnode>
<childnode refid="75" relation="include">
</childnode>
<childnode refid="76" relation="include">
</childnode>
</node>
<node id="31">
<label>BoundingBox.h</label>
<link refid="BoundingBox_8h"/>
<childnode refid="32" relation="include">
</childnode>
</node>
<node id="67">
<label>Triangle.cpp</label>
<link refid="Triangle_8cpp"/>
</node>
<node id="66">
<label>Triangle.h</label>
<link refid="Triangle_8h"/>
<childnode refid="67" relation="include">
</childnode>
<childnode refid="32" relation="include">
</childnode>
</node>
<node id="33">
<label>UVBarycentricMapping.cpp</label>
<link refid="UVBarycentricMapping_8cpp"/>
</node>
<node id="32">
<label>UVBarycentricMapping.h</label>
<link refid="UVBarycentricMapping_8h"/>
<childnode refid="7" relation="include">
</childnode>
<childnode refid="33" relation="include">
</childnode>
</node>
<node id="69">
<label>Algorithm.h</label>
<link refid="Algorithm_8h"/>
<childnode refid="21" relation="include">
</childnode>
</node>
<node id="77">
<label>FormatString.h</label>
<link refid="FormatString_8h"/>
<childnode refid="23" relation="include">
</childnode>
<childnode refid="28" relation="include">
</childnode>
</node>
<node id="88">
<label>VersionInfo.cpp</label>
<link refid="VersionInfo_8cpp"/>
</node>
<node id="154">
<label>ArenaMemoryResource.cpp</label>
<link refid="ArenaMemoryResource_8cpp"/>
</node>
<node id="150">
<label>Stream.cpp</label>
<link refid="Stream_8cpp"/>
</node>
<node id="140">
<label>FileStreamImpl.cpp</label>
<link refid="FileStreamImpl_8cpp"/>
</node>
<node id="139">
<label>FileStreamImpl.h</label>
<link refid="FileStreamImpl_8h"/>
<childnode refid="140" relation="include">
</childnode>
</node>
<node id="142">
<label>MemoryMappedFileStream.cpp</label>
<link refid="MemoryMappedFileStream_8cpp"/>
</node>
<node id="143">
<label>MemoryMappedFileStreamFallback.cpp</label>
<link refid="MemoryMappedFileStreamFallback_8cpp"/>
</node>
<node id="141">
<label>MemoryMappedFileStreamFallback.h</label>
<link refid="MemoryMappedFileStreamFallback_8h"/>
<childnode refid="142" relation="include">
</childnode>
<childnode refid="143" relation="include">
</childnode>
</node>
<node id="145">
<label>MemoryStreamImpl.cpp</label>
<link refid="MemoryStreamImpl_8cpp"/>
</node>
<node id="144">
<label>MemoryStreamImpl.h</label>
<link refid="MemoryStreamImpl_8h"/>
<childnode refid="145" relation="include">
</childnode>
</node>
<node id="152">
<label>StreamStatus.cpp</label>
<link refid="StreamStatus_8cpp"/>
</node>
<node id="153">
<label>StreamStatus.h</label>
<link refid="StreamStatus_8h"/>
<childnode refid="139" relation="include">
</childnode>
<childnode refid="141" relation="include">
</childnode>
<childnode refid="144" relation="include">
</childnode>
<childnode refid="152" relation="include">
</childnode>
</node>
</invincdepgraph>
<innerclass refid="structpma_1_1New" prot="public">pma::New</innerclass>
<innerclass refid="structpma_1_1Delete" prot="public">pma::Delete</innerclass>
<innerclass refid="structpma_1_1New_3_01T_0f_0e_4" prot="public">pma::New&lt; T[]&gt;</innerclass>
<innerclass refid="structpma_1_1Delete_3_01T_0f_0e_4" prot="public">pma::Delete&lt; T[]&gt;</innerclass>
<innerclass refid="structpma_1_1FactoryCreate" prot="public">pma::FactoryCreate</innerclass>
<innerclass refid="structpma_1_1FactoryDestroy" prot="public">pma::FactoryDestroy</innerclass>
<innerclass refid="structpma_1_1DefaultInstanceCreator" prot="public">pma::DefaultInstanceCreator</innerclass>
<innerclass refid="structpma_1_1DefaultInstanceDestroyer" prot="public">pma::DefaultInstanceDestroyer</innerclass>
<innerclass refid="classpma_1_1ScopedPtr" prot="public">pma::ScopedPtr</innerclass>
<innerclass refid="structpma_1_1ScopedPtr_1_1inspect" prot="private">pma::ScopedPtr::inspect</innerclass>
<innerclass refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4" prot="private">pma::ScopedPtr::inspect&lt; U[]&gt;</innerclass>
<innernamespace refid="namespacepma">pma</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">#ifdef<sp/>_MSC_VER</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/>#pragma<sp/>warning(push)</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><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="8"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="9"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&lt;utility&gt;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="10"><highlight class="normal"></highlight><highlight class="preprocessor">#ifdef<sp/>_MSC_VER</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="11"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/>#pragma<sp/>warning(pop)</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="13"><highlight class="normal"></highlight></codeline>
<codeline lineno="14"><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="15"><highlight class="normal"></highlight></codeline>
<codeline lineno="16"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>B<sp/>=<sp/>T&gt;</highlight></codeline>
<codeline lineno="17" refid="structpma_1_1New" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1New" kindref="compound">New</ref><sp/>{</highlight></codeline>
<codeline lineno="18"><highlight class="normal"><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="19" refid="structpma_1_1New_1a4075b0a5a0357e602f45f38be5924ffa" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>B*<sp/><ref refid="structpma_1_1New_1a4075b0a5a0357e602f45f38be5924ffa" kindref="member">operator()</ref>(Args&amp;&amp;<sp/>...<sp/>args)<sp/>{</highlight></codeline>
<codeline lineno="20"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>T{std::forward&lt;Args&gt;(args)...};</highlight></codeline>
<codeline lineno="21"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="22"><highlight class="normal"></highlight></codeline>
<codeline lineno="23"><highlight class="normal">};</highlight></codeline>
<codeline lineno="24"><highlight class="normal"></highlight></codeline>
<codeline lineno="25"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>B<sp/>=<sp/>T&gt;</highlight></codeline>
<codeline lineno="26" refid="structpma_1_1Delete" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1Delete" kindref="compound">Delete</ref><sp/>{</highlight></codeline>
<codeline lineno="27" refid="structpma_1_1Delete_1a4d19ad91cab70cb5e4a10970562dbf31" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structpma_1_1Delete_1a4d19ad91cab70cb5e4a10970562dbf31" kindref="member">operator()</ref>(B*<sp/>ptr)<sp/>{</highlight></codeline>
<codeline lineno="28"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Calling<sp/>delete<sp/>on<sp/>an<sp/>incomplete<sp/>type<sp/>is<sp/>undefined<sp/>behavior.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="29"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>This<sp/>check<sp/>will<sp/>result<sp/>in<sp/>a<sp/>compile<sp/>error<sp/>for<sp/>incomplete<sp/>types,<sp/>rather<sp/>than<sp/>allow<sp/>UB.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="30"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#if<sp/>!defined(__clang__)<sp/>&amp;&amp;<sp/>defined(__GNUC__)</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="31"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#pragma<sp/>GCC<sp/>diagnostic<sp/>push</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="32"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#pragma<sp/>GCC<sp/>diagnostic<sp/>ignored<sp/>&quot;-Wsign-conversion&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="33"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="34"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">complete_type_checker<sp/>=<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">[</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(T)<sp/>?<sp/>1<sp/>:<sp/>-1];</highlight></codeline>
<codeline lineno="35"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#if<sp/>!defined(__clang__)<sp/>&amp;&amp;<sp/>defined(__GNUC__)</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="36"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#pragma<sp/>GCC<sp/>diagnostic<sp/>pop</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="37"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="38"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="keywordtype">void</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(complete_type_checker));</highlight></codeline>
<codeline lineno="39"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">delete</highlight><highlight class="normal"><sp/>ptr;</highlight></codeline>
<codeline lineno="40"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="41"><highlight class="normal"></highlight></codeline>
<codeline lineno="42"><highlight class="normal">};</highlight></codeline>
<codeline lineno="43"><highlight class="normal"></highlight></codeline>
<codeline lineno="44"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="45" refid="structpma_1_1New_3_01T_0f_0e_4" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1New" kindref="compound">New</ref>&lt;T[]&gt;<sp/>{</highlight></codeline>
<codeline lineno="46" refid="structpma_1_1New_3_01T_0f_0e_4_1a26757bdc24fbb443d9a57f6f32658b06" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>T*<sp/><ref refid="structpma_1_1New_3_01T_0f_0e_4_1a26757bdc24fbb443d9a57f6f32658b06" kindref="member">operator()</ref>(std::size_t<sp/>size)<sp/>{</highlight></codeline>
<codeline lineno="47"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">new</highlight><highlight class="normal"><sp/>T[size]{};</highlight></codeline>
<codeline lineno="48"><highlight class="normal"><sp/><sp/><sp/><sp/>}</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"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="53" refid="structpma_1_1Delete_3_01T_0f_0e_4" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1Delete" kindref="compound">Delete</ref>&lt;T[]&gt;<sp/>{</highlight></codeline>
<codeline lineno="54" refid="structpma_1_1Delete_3_01T_0f_0e_4_1ae5b83ad27959f943e8bf79e588261025" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structpma_1_1Delete_3_01T_0f_0e_4_1ae5b83ad27959f943e8bf79e588261025" kindref="member">operator()</ref>(T*<sp/>ptr)<sp/>{</highlight></codeline>
<codeline lineno="55"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>Calling<sp/>delete<sp/>on<sp/>an<sp/>incomplete<sp/>type<sp/>is<sp/>undefined<sp/>behavior.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="56"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>This<sp/>check<sp/>will<sp/>result<sp/>in<sp/>a<sp/>compile<sp/>error<sp/>for<sp/>incomplete<sp/>types,<sp/>rather<sp/>than<sp/>allow<sp/>UB.</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="57"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#if<sp/>!defined(__clang__)<sp/>&amp;&amp;<sp/>defined(__GNUC__)</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="58"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#pragma<sp/>GCC<sp/>diagnostic<sp/>push</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="59"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#pragma<sp/>GCC<sp/>diagnostic<sp/>ignored<sp/>&quot;-Wsign-conversion&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="60"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">complete_type_checker<sp/>=<sp/></highlight><highlight class="keywordtype">char</highlight><highlight class="normal">[</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(T)<sp/>?<sp/>1<sp/>:<sp/>-1];</highlight></codeline>
<codeline lineno="62"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#if<sp/>!defined(__clang__)<sp/>&amp;&amp;<sp/>defined(__GNUC__)</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="63"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#pragma<sp/>GCC<sp/>diagnostic<sp/>pop</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="64"><highlight class="normal"></highlight><highlight class="preprocessor"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>#endif</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="65"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="keywordtype">void</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(</highlight><highlight class="keyword">sizeof</highlight><highlight class="normal">(complete_type_checker));</highlight></codeline>
<codeline lineno="66"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">delete</highlight><highlight class="normal">[]<sp/>ptr;</highlight></codeline>
<codeline lineno="67"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="68"><highlight class="normal"></highlight></codeline>
<codeline lineno="69"><highlight class="normal">};</highlight></codeline>
<codeline lineno="70"><highlight class="normal"></highlight></codeline>
<codeline lineno="71"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>B<sp/>=<sp/>T&gt;</highlight></codeline>
<codeline lineno="72" refid="structpma_1_1FactoryCreate" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1FactoryCreate" kindref="compound">FactoryCreate</ref><sp/>{</highlight></codeline>
<codeline lineno="73"><highlight class="normal"><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="74" refid="structpma_1_1FactoryCreate_1a1f9a2236922d18874d0ecd034dc8e568" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/>B*<sp/><ref refid="structpma_1_1FactoryCreate_1a1f9a2236922d18874d0ecd034dc8e568" kindref="member">operator()</ref>(Args&amp;&amp;<sp/>...<sp/>args)<sp/>{</highlight></codeline>
<codeline lineno="75"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>T::create(std::forward&lt;Args&gt;(args)...);</highlight></codeline>
<codeline lineno="76"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="77"><highlight class="normal"></highlight></codeline>
<codeline lineno="78"><highlight class="normal">};</highlight></codeline>
<codeline lineno="79"><highlight class="normal"></highlight></codeline>
<codeline lineno="80"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>B<sp/>=<sp/>T&gt;</highlight></codeline>
<codeline lineno="81" refid="structpma_1_1FactoryDestroy" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1FactoryDestroy" kindref="compound">FactoryDestroy</ref><sp/>{</highlight></codeline>
<codeline lineno="82" refid="structpma_1_1FactoryDestroy_1a473311679584ce8f8dbfe29fe14a31e5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="structpma_1_1FactoryDestroy_1a473311679584ce8f8dbfe29fe14a31e5" kindref="member">operator()</ref>(B*<sp/>ptr)<sp/>{</highlight></codeline>
<codeline lineno="83"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>T::destroy(</highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal">T*</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(ptr));</highlight></codeline>
<codeline lineno="84"><highlight class="normal"><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="85"><highlight class="normal"></highlight></codeline>
<codeline lineno="86"><highlight class="normal">};</highlight></codeline>
<codeline lineno="87"><highlight class="normal"></highlight></codeline>
<codeline lineno="88"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="89" refid="structpma_1_1DefaultInstanceCreator" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1DefaultInstanceCreator" kindref="compound">DefaultInstanceCreator</ref><sp/>{</highlight></codeline>
<codeline lineno="90" refid="structpma_1_1DefaultInstanceCreator_1a1ea0d319dc8d3c123701e59874831fb0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1New" kindref="compound">type</ref><sp/>=<sp/><ref refid="structpma_1_1New" kindref="compound">New&lt;T&gt;</ref>;</highlight></codeline>
<codeline lineno="91"><highlight class="normal">};</highlight></codeline>
<codeline lineno="92"><highlight class="normal"></highlight></codeline>
<codeline lineno="93"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>T&gt;</highlight></codeline>
<codeline lineno="94" refid="structpma_1_1DefaultInstanceDestroyer" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1DefaultInstanceDestroyer" kindref="compound">DefaultInstanceDestroyer</ref><sp/>{</highlight></codeline>
<codeline lineno="95" refid="structpma_1_1DefaultInstanceDestroyer_1ab724a6263ad9e223de7ac002ed81b413" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1Delete" kindref="compound">type</ref><sp/>=<sp/><ref refid="structpma_1_1Delete" kindref="compound">Delete&lt;T&gt;</ref>;</highlight></codeline>
<codeline lineno="96"><highlight class="normal">};</highlight></codeline>
<codeline lineno="97"><highlight class="normal"></highlight></codeline>
<codeline lineno="115"><highlight class="normal">template&lt;class<sp/>T,<sp/>class<sp/>TDestroyer<sp/>=<sp/>typename<sp/>DefaultInstanceDestroyer&lt;T&gt;::type&gt;</highlight></codeline>
<codeline lineno="116" refid="classpma_1_1ScopedPtr" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref><sp/>:<sp/></highlight><highlight class="keyword">private</highlight><highlight class="normal"><sp/>TDestroyer<sp/>{</highlight></codeline>
<codeline lineno="117"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="118"><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/>U&gt;</highlight></codeline>
<codeline lineno="119" refid="structpma_1_1ScopedPtr_1_1inspect" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1ScopedPtr_1_1inspect" kindref="compound">inspect</ref><sp/>{</highlight></codeline>
<codeline lineno="120" refid="structpma_1_1ScopedPtr_1_1inspect_1a768cad4da332933a1f2c7858581679d7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1ScopedPtr_1_1inspect_1a768cad4da332933a1f2c7858581679d7" kindref="member">element_type</ref><sp/>=<sp/>U;</highlight></codeline>
<codeline lineno="121" refid="structpma_1_1ScopedPtr_1_1inspect_1a65e0530eb035ca653cdcf06f6cca6303" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1ScopedPtr_1_1inspect_1a65e0530eb035ca653cdcf06f6cca6303" kindref="member">pointer_type</ref><sp/>=<sp/><ref refid="structpma_1_1ScopedPtr_1_1inspect_1a768cad4da332933a1f2c7858581679d7" kindref="member">element_type</ref>*;</highlight></codeline>
<codeline lineno="122" refid="structpma_1_1ScopedPtr_1_1inspect_1a4b0d903c4ddd2525e232deee61b1f4e0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1ScopedPtr_1_1inspect_1a4b0d903c4ddd2525e232deee61b1f4e0" kindref="member">is_array</ref><sp/>=<sp/>std::false_type;</highlight></codeline>
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="124"><highlight class="normal"></highlight></codeline>
<codeline lineno="125"><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/>U&gt;</highlight></codeline>
<codeline lineno="126" refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4" refkind="compound"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">struct<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1ScopedPtr_1_1inspect" kindref="compound">inspect</ref>&lt;U[]&gt;<sp/>{</highlight></codeline>
<codeline lineno="127" refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4_1a1fd1e03602efd1c81552b3c5878aec82" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4_1a1fd1e03602efd1c81552b3c5878aec82" kindref="member">element_type</ref><sp/>=<sp/>U;</highlight></codeline>
<codeline lineno="128" refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4_1a112390d8b9e26ee3a1621744fce1279a" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4_1a112390d8b9e26ee3a1621744fce1279a" kindref="member">pointer_type</ref><sp/>=<sp/><ref refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4_1a1fd1e03602efd1c81552b3c5878aec82" kindref="member">element_type</ref>*;</highlight></codeline>
<codeline lineno="129" refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4_1addf3cf09337a87064e287733f5c03888" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal"><ref refid="structpma_1_1ScopedPtr_1_1inspect_3_01U_0f_0e_4_1addf3cf09337a87064e287733f5c03888" kindref="member">is_array</ref><sp/>=<sp/>std::true_type;</highlight></codeline>
<codeline lineno="130"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>};</highlight></codeline>
<codeline lineno="131"><highlight class="normal"></highlight></codeline>
<codeline lineno="132"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="133" refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" 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_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="structpma_1_1ScopedPtr_1_1inspect" kindref="compound">inspect&lt;T&gt;::pointer_type</ref>;</highlight></codeline>
<codeline lineno="134" refid="classpma_1_1ScopedPtr_1a83af2259fff86f3d2e3ec35b2b5aa1e0" 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_1ScopedPtr_1a83af2259fff86f3d2e3ec35b2b5aa1e0" kindref="member">element_type</ref><sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="structpma_1_1ScopedPtr_1_1inspect" kindref="compound">inspect&lt;T&gt;::element_type</ref>;</highlight></codeline>
<codeline lineno="135" refid="classpma_1_1ScopedPtr_1a1597e9b99b3b6603408019b3ec499c24" 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_1ScopedPtr_1a1597e9b99b3b6603408019b3ec499c24" kindref="member">destroyer_type</ref><sp/>=<sp/>TDestroyer;</highlight></codeline>
<codeline lineno="136"><highlight class="normal"></highlight></codeline>
<codeline lineno="137"><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/>U,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>UDestroyer&gt;</highlight></codeline>
<codeline lineno="138" refid="classpma_1_1ScopedPtr_1ad7a0c2d2fe0645e486fd69448787efc8" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">friend</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>;</highlight></codeline>
<codeline lineno="139"><highlight class="normal"></highlight></codeline>
<codeline lineno="140"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="141" refid="classpma_1_1ScopedPtr_1a0674d14b18df2c96eb3571726c105e3e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a0674d14b18df2c96eb3571726c105e3e" kindref="member">ScopedPtr</ref>()<sp/>:<sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>{nullptr}<sp/>{</highlight></codeline>
<codeline lineno="142"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="143"><highlight class="normal"></highlight></codeline>
<codeline lineno="144" refid="classpma_1_1ScopedPtr_1ae7890da5ce12bd4b234231f92a708acf" 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_1ScopedPtr_1ae7890da5ce12bd4b234231f92a708acf" kindref="member">ScopedPtr</ref>(<ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/>ptr_)<sp/>:<sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>{ptr_}<sp/>{</highlight></codeline>
<codeline lineno="145"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="146"><highlight class="normal"></highlight></codeline>
<codeline lineno="147" refid="classpma_1_1ScopedPtr_1adaeed2ec20f00f446c3816ada04d0e87" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1adaeed2ec20f00f446c3816ada04d0e87" kindref="member">ScopedPtr</ref>(<ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/>ptr_,<sp/><ref refid="classpma_1_1ScopedPtr_1a1597e9b99b3b6603408019b3ec499c24" kindref="member">destroyer_type</ref>&amp;&amp;<sp/>destroyer)<sp/>:<sp/><ref refid="classpma_1_1ScopedPtr_1a1597e9b99b3b6603408019b3ec499c24" kindref="member">destroyer_type</ref>{std::move(destroyer)},<sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>{ptr_}<sp/>{</highlight></codeline>
<codeline lineno="148"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="149"><highlight class="normal"></highlight></codeline>
<codeline lineno="150" refid="classpma_1_1ScopedPtr_1a3897fb8c749466513e4d362c64aa60f4" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a3897fb8c749466513e4d362c64aa60f4" kindref="member">~ScopedPtr</ref>()<sp/>{</highlight></codeline>
<codeline lineno="151"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(<ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>)<sp/>{</highlight></codeline>
<codeline lineno="152"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>destroyer_type::operator()(<ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>);</highlight></codeline>
<codeline lineno="153"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref><sp/>=<sp/><ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref>{};</highlight></codeline>
<codeline lineno="154"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="155"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="156"><highlight class="normal"></highlight></codeline>
<codeline lineno="157" refid="classpma_1_1ScopedPtr_1a80748b4d68ff271915fd315e0cedf5eb" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a80748b4d68ff271915fd315e0cedf5eb" kindref="member">ScopedPtr</ref>(std::nullptr_t)<sp/>:<sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>{nullptr}<sp/>{</highlight></codeline>
<codeline lineno="158"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="159"><highlight class="normal"></highlight></codeline>
<codeline lineno="160" refid="classpma_1_1ScopedPtr_1a8fdc1264bae639901db043b6ea5bc909" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;<sp/><ref refid="classpma_1_1ScopedPtr_1a8fdc1264bae639901db043b6ea5bc909" kindref="member">operator=</ref>(std::nullptr_t)<sp/>{</highlight></codeline>
<codeline lineno="161"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1aa750521aec166786408e47968f84a55b" kindref="member">reset</ref>();</highlight></codeline>
<codeline lineno="162"><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/>*</highlight><highlight class="keyword">this</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="163"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="164"><highlight class="normal"></highlight></codeline>
<codeline lineno="165" refid="classpma_1_1ScopedPtr_1ad3149c1e95c611d0fa47fdfce6b7f5b7" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1ad3149c1e95c611d0fa47fdfce6b7f5b7" kindref="member">ScopedPtr</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;)<sp/>=<sp/></highlight><highlight class="keyword">delete</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="166" refid="classpma_1_1ScopedPtr_1a58c652176e44bab898cf013b34aca15c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;<sp/><ref refid="classpma_1_1ScopedPtr_1a58c652176e44bab898cf013b34aca15c" kindref="member">operator=</ref>(</highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;)<sp/>=<sp/></highlight><highlight class="keyword">delete</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="167"><highlight class="normal"></highlight></codeline>
<codeline lineno="168" refid="classpma_1_1ScopedPtr_1ae769ada6bcf5d0ff8ed4f615eb7b90af" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1ae769ada6bcf5d0ff8ed4f615eb7b90af" kindref="member">ScopedPtr</ref>(<ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;&amp;<sp/>rhs)<sp/>noexcept<sp/>:<sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>{</highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">}<sp/>{</highlight></codeline>
<codeline lineno="169"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>rhs.swap(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="170"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="171"><highlight class="normal"></highlight></codeline>
<codeline lineno="172" refid="classpma_1_1ScopedPtr_1a146b5a34330ca6a22ab676365df343c0" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;<sp/><ref refid="classpma_1_1ScopedPtr_1a146b5a34330ca6a22ab676365df343c0" kindref="member">operator=</ref>(<ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;&amp;<sp/>rhs)<sp/></highlight><highlight class="keyword">noexcept</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="173"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>rhs.<ref refid="classpma_1_1ScopedPtr_1a447bbbfc9c8ec22c04dc933510016b6b" kindref="member">swap</ref>(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="174"><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/>*</highlight><highlight class="keyword">this</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="175"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="176"><highlight class="normal"></highlight></codeline>
<codeline lineno="177"><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/>U,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>UDestroyer&gt;</highlight></codeline>
<codeline lineno="178" refid="classpma_1_1ScopedPtr_1af7d6b2059c1838fe67310e85df8c1ba3" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1af7d6b2059c1838fe67310e85df8c1ba3" kindref="member">ScopedPtr</ref>(<ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr&lt;U, UDestroyer&gt;</ref>&amp;&amp;<sp/>rhs)<sp/>noexcept<sp/>:<sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>{</highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">}<sp/>{</highlight></codeline>
<codeline lineno="179"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr&lt;T, destroyer_type&gt;</ref><sp/>tmp{rhs.<ref refid="classpma_1_1ScopedPtr_1ab73c30167b7f884a639b520308d8dcb5" kindref="member">release</ref>(),<sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal">UDestroyer<sp/>&amp;&amp;</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(rhs)};</highlight></codeline>
<codeline lineno="180"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>tmp.swap(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="181"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="182"><highlight class="normal"></highlight></codeline>
<codeline lineno="183"><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/>U,<sp/></highlight><highlight class="keyword">class</highlight><highlight class="normal"><sp/>UDestroyer&gt;</highlight></codeline>
<codeline lineno="184" refid="classpma_1_1ScopedPtr_1abbb7e68a6f1859b4d18456654d47920e" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;<sp/><ref refid="classpma_1_1ScopedPtr_1abbb7e68a6f1859b4d18456654d47920e" kindref="member">operator=</ref>(<ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr&lt;U, UDestroyer&gt;</ref>&amp;&amp;<sp/>rhs)<sp/></highlight><highlight class="keyword">noexcept</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="185"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr&lt;T, destroyer_type&gt;</ref><sp/>tmp{rhs.<ref refid="classpma_1_1ScopedPtr_1ab73c30167b7f884a639b520308d8dcb5" kindref="member">release</ref>(),<sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal">UDestroyer<sp/>&amp;&amp;</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(rhs)};</highlight></codeline>
<codeline lineno="186"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>tmp.swap(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="187"><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/>*</highlight><highlight class="keyword">this</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="188"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="189"><highlight class="normal"></highlight></codeline>
<codeline lineno="190"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>template&lt;typename<sp/>U<sp/>=<sp/>T,<sp/>typename<sp/>IA<sp/>=<sp/>typename<sp/>inspect&lt;U&gt;::is_array&gt;</highlight></codeline>
<codeline lineno="191" refid="classpma_1_1ScopedPtr_1a0741a90a3daa0571c5420e6e3a32c61c" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::enable_if&lt;IA::value,<sp/>element_type&amp;&gt;::type<sp/><ref refid="classpma_1_1ScopedPtr_1a0741a90a3daa0571c5420e6e3a32c61c" kindref="member">operator[]</ref>(std::size_t<sp/>index)<sp/></highlight><highlight class="keyword">const</highlight><highlight class="normal"><sp/></highlight><highlight class="keyword">noexcept</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="192"><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_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>[index];</highlight></codeline>
<codeline lineno="193"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="194"><highlight class="normal"></highlight></codeline>
<codeline lineno="195"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>template&lt;typename<sp/>U<sp/>=<sp/>T,<sp/>typename<sp/>IA<sp/>=<sp/>typename<sp/>inspect&lt;U&gt;::is_array&gt;</highlight></codeline>
<codeline lineno="196" refid="classpma_1_1ScopedPtr_1af2b15934db75caa3ccca89ed57705269" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::enable_if&lt;!IA::value,<sp/>element_type&amp;&gt;::type<sp/><ref refid="classpma_1_1ScopedPtr_1af2b15934db75caa3ccca89ed57705269" kindref="member">operator*</ref>()<sp/>const<sp/>noexcept<sp/>{</highlight></codeline>
<codeline lineno="197"><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_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>;</highlight></codeline>
<codeline lineno="198"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="199"><highlight class="normal"></highlight></codeline>
<codeline lineno="200" refid="classpma_1_1ScopedPtr_1a23a87ac7001d08ff238dddd00159a278" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/><ref refid="classpma_1_1ScopedPtr_1a23a87ac7001d08ff238dddd00159a278" kindref="member">operator-&gt;</ref>()<sp/>const<sp/>noexcept<sp/>{</highlight></codeline>
<codeline lineno="201"><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_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>;</highlight></codeline>
<codeline lineno="202"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="203"><highlight class="normal"></highlight></codeline>
<codeline lineno="204" refid="classpma_1_1ScopedPtr_1a63ffd83e8de52b12fb81008df024dfa2" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">operator</highlight><highlight class="normal"><sp/>bool()<sp/>const<sp/>noexcept<sp/>{</highlight></codeline>
<codeline lineno="205"><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_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref><sp/>!=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="206"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="207"><highlight class="normal"></highlight></codeline>
<codeline lineno="208" refid="classpma_1_1ScopedPtr_1a31d55fe3140cc2ba79a521e20b1b51cf" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/><ref refid="classpma_1_1ScopedPtr_1a31d55fe3140cc2ba79a521e20b1b51cf" kindref="member">get</ref>()<sp/>const<sp/>noexcept<sp/>{</highlight></codeline>
<codeline lineno="209"><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_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>;</highlight></codeline>
<codeline lineno="210"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="211"><highlight class="normal"></highlight></codeline>
<codeline lineno="212" refid="classpma_1_1ScopedPtr_1ab73c30167b7f884a639b520308d8dcb5" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/><ref refid="classpma_1_1ScopedPtr_1ab73c30167b7f884a639b520308d8dcb5" kindref="member">release</ref>()<sp/>noexcept<sp/>{</highlight></codeline>
<codeline lineno="213"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/>result<sp/>=<sp/></highlight><highlight class="keyword">nullptr</highlight><highlight class="normal">;</highlight></codeline>
<codeline lineno="214"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::swap(result,<sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>);</highlight></codeline>
<codeline lineno="215"><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/>result;</highlight></codeline>
<codeline lineno="216"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="217"><highlight class="normal"></highlight></codeline>
<codeline lineno="218" refid="classpma_1_1ScopedPtr_1aa750521aec166786408e47968f84a55b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="classpma_1_1ScopedPtr_1aa750521aec166786408e47968f84a55b" kindref="member">reset</ref>(<ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/>rhs<sp/>=<sp/><ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref>())<sp/>noexcept<sp/>{</highlight></codeline>
<codeline lineno="219"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/>old<sp/>=<sp/><ref refid="classpma_1_1ScopedPtr_1ab73c30167b7f884a639b520308d8dcb5" kindref="member">release</ref>();</highlight></codeline>
<codeline lineno="220"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref><sp/>=<sp/>rhs;</highlight></codeline>
<codeline lineno="221"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">if</highlight><highlight class="normal"><sp/>(old)<sp/>{</highlight></codeline>
<codeline lineno="222"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>destroyer_type::operator()(old);</highlight></codeline>
<codeline lineno="223"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="224"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="225"><highlight class="normal"></highlight></codeline>
<codeline lineno="226" refid="classpma_1_1ScopedPtr_1a447bbbfc9c8ec22c04dc933510016b6b" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="classpma_1_1ScopedPtr_1a447bbbfc9c8ec22c04dc933510016b6b" kindref="member">swap</ref>(<ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr</ref>&amp;<sp/>rhs)<sp/></highlight><highlight class="keyword">noexcept</highlight><highlight class="normal"><sp/>{</highlight></codeline>
<codeline lineno="227"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::swap(</highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal"><ref refid="classpma_1_1ScopedPtr_1a1597e9b99b3b6603408019b3ec499c24" kindref="member">destroyer_type</ref>&amp;</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(*</highlight><highlight class="keyword">this</highlight><highlight class="normal">),<sp/></highlight><highlight class="keyword">static_cast&lt;</highlight><highlight class="normal"><ref refid="classpma_1_1ScopedPtr_1a1597e9b99b3b6603408019b3ec499c24" kindref="member">destroyer_type</ref>&amp;</highlight><highlight class="keyword">&gt;</highlight><highlight class="normal">(rhs));</highlight></codeline>
<codeline lineno="228"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::swap(<ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>,<sp/>rhs.ptr);</highlight></codeline>
<codeline lineno="229"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>}</highlight></codeline>
<codeline lineno="230"><highlight class="normal"></highlight></codeline>
<codeline lineno="231"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">private</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="232" refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><ref refid="classpma_1_1ScopedPtr_1a2cb86e04e9f54957b972a4a16bf7db00" kindref="member">pointer</ref><sp/><ref refid="classpma_1_1ScopedPtr_1a5ceb3522644f71462c6131ecc248228d" kindref="member">ptr</ref>;</highlight></codeline>
<codeline lineno="233"><highlight class="normal">};</highlight></codeline>
<codeline lineno="234"><highlight class="normal"></highlight></codeline>
<codeline lineno="250"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">T,<sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">TCreator,<sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">TDestroyer,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>...<sp/>Args,</highlight></codeline>
<codeline lineno="251"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>Base<sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>std::remove_pointer<sp/>&lt;<sp/></highlight><highlight class="keyword">decltype</highlight><highlight class="normal">(TCreator{}<sp/>(std::declval&lt;Args&gt;()...))<sp/>&gt;<sp/>::type&gt;</highlight></codeline>
<codeline lineno="252" refid="namespacepma_1a64805040921b916b618da85c7b1b52b6" refkind="member"><highlight class="normal"><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr&lt;Base, TDestroyer&gt;</ref><sp/><ref refid="namespacepma_1a64805040921b916b618da85c7b1b52b6" kindref="member">makeScoped</ref>(Args&amp;&amp;<sp/>...<sp/>args)<sp/>{</highlight></codeline>
<codeline lineno="253"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">static_assert</highlight><highlight class="normal">(std::is_same&lt;Base,<sp/>T&gt;::value<sp/>||</highlight></codeline>
<codeline lineno="254"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::is_base_of&lt;Base,<sp/>T&gt;::value<sp/>||</highlight></codeline>
<codeline lineno="255"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/>std::is_convertible&lt;T,<sp/>typename<sp/>std::add_pointer&lt;Base&gt;::type&gt;::value,</highlight></codeline>
<codeline lineno="256"><highlight class="normal"><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/><sp/></highlight><highlight class="stringliteral">&quot;Incompatible<sp/>types.&quot;</highlight><highlight class="normal">);</highlight></codeline>
<codeline lineno="257"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr&lt;Base, TDestroyer&gt;</ref>{TCreator{}<sp/>(std::forward&lt;Args&gt;(args)...)};</highlight></codeline>
<codeline lineno="258"><highlight class="normal">}</highlight></codeline>
<codeline lineno="259"><highlight class="normal"></highlight></codeline>
<codeline lineno="260"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">T,<sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">...&gt;<sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">TCreatorTemplate,<sp/></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">...&gt;<sp/></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">TDestroyerTemplate,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>...<sp/>Args&gt;</highlight></codeline>
<codeline lineno="261" refid="namespacepma_1a7a64f35105cb3740a4fe55d119791810" refkind="member"><highlight class="normal"><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr&lt;T, TDestroyerTemplate&lt;T&gt;</ref><sp/>&gt;<sp/><ref refid="namespacepma_1a64805040921b916b618da85c7b1b52b6" kindref="member">makeScoped</ref>(Args&amp;&amp;<sp/>...<sp/>args)<sp/>{</highlight></codeline>
<codeline lineno="262"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">TCreator<sp/>=<sp/>TCreatorTemplate&lt;T&gt;;</highlight></codeline>
<codeline lineno="263"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">TDestroyer<sp/>=<sp/>TDestroyerTemplate&lt;T&gt;;</highlight></codeline>
<codeline lineno="264"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>makeScoped&lt;T,<sp/>TCreator,<sp/>TDestroyer&gt;(std::forward&lt;Args&gt;(args)...);</highlight></codeline>
<codeline lineno="265"><highlight class="normal">}</highlight></codeline>
<codeline lineno="266"><highlight class="normal"></highlight></codeline>
<codeline lineno="267"><highlight class="normal"></highlight><highlight class="keyword">template</highlight><highlight class="normal">&lt;</highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal">T,<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/>...<sp/>Args&gt;</highlight></codeline>
<codeline lineno="268" refid="namespacepma_1af6fd07e6cb33f1e87c818f3562c3eaba" refkind="member"><highlight class="normal"><ref refid="classpma_1_1ScopedPtr" kindref="compound">ScopedPtr&lt;T, typename DefaultInstanceDestroyer&lt;T&gt;::type</ref>&gt;<sp/><ref refid="namespacepma_1a64805040921b916b618da85c7b1b52b6" kindref="member">makeScoped</ref>(Args&amp;&amp;<sp/>...<sp/>args)<sp/>{</highlight></codeline>
<codeline lineno="269"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">TCreator<sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="structpma_1_1New" kindref="compound">DefaultInstanceCreator&lt;T&gt;::type</ref>;</highlight></codeline>
<codeline lineno="270"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">using<sp/></highlight><highlight class="normal">TDestroyer<sp/>=<sp/></highlight><highlight class="keyword">typename</highlight><highlight class="normal"><sp/><ref refid="structpma_1_1Delete" kindref="compound">DefaultInstanceDestroyer&lt;T&gt;::type</ref>;</highlight></codeline>
<codeline lineno="271"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordflow">return</highlight><highlight class="normal"><sp/>makeScoped&lt;T,<sp/>TCreator,<sp/>TDestroyer&gt;(std::forward&lt;Args&gt;(args)...);</highlight></codeline>
<codeline lineno="272"><highlight class="normal">}</highlight></codeline>
<codeline lineno="273"><highlight class="normal"></highlight></codeline>
<codeline lineno="274"><highlight class="normal">}<sp/><sp/></highlight><highlight class="comment">//<sp/>namespace<sp/>pma</highlight><highlight class="normal"></highlight></codeline>
</programlisting>
<location file="C:/source/MetaHuman-DNA-Calibration_clean/dnacalib/DNACalib/include/pma/ScopedPtr.h"/>
</compounddef>
</doxygen>