pma::ScopedPtr typename DefaultInstanceDestroyer::type ScopedPtr.h pma::ScopedPtr::inspect pma::ScopedPtr::inspect< U[]> class T class TDestroyer typename DefaultInstanceDestroyer<T>::type typename inspect< T >::pointer_type using pma::ScopedPtr< T, TDestroyer >::pointer = typename inspect<T>::pointer_type pointer pma::ScopedPtr::pointer typename inspect< T >::element_type using pma::ScopedPtr< T, TDestroyer >::element_type = typename inspect<T>::element_type element_type pma::ScopedPtr::element_type TDestroyer using pma::ScopedPtr< T, TDestroyer >::destroyer_type = TDestroyer destroyer_type pma::ScopedPtr::destroyer_type typename U class UDestroyer class friend class ScopedPtr ScopedPtr pma::ScopedPtr::ScopedPtr ScopedPtr pointer pointer pma::ScopedPtr< T, TDestroyer >::ptr ptr pma::ScopedPtr::ptr pma::ScopedPtr< T, TDestroyer >::get pma::ScopedPtr< T, TDestroyer >::operator bool pma::ScopedPtr< T, TDestroyer >::operator* pma::ScopedPtr< T, TDestroyer >::operator-> pma::ScopedPtr< T, TDestroyer >::operator[] pma::ScopedPtr< T, TDestroyer >::release pma::ScopedPtr< T, TDestroyer >::reset pma::ScopedPtr< T, TDestroyer >::swap pma::ScopedPtr< T, TDestroyer >::~ScopedPtr pma::ScopedPtr< T, TDestroyer >::ScopedPtr () ScopedPtr pma::ScopedPtr::ScopedPtr pma::ScopedPtr< T, TDestroyer >::ScopedPtr (pointer ptr_) ScopedPtr pma::ScopedPtr::ScopedPtr pointer ptr_ pma::ScopedPtr< T, TDestroyer >::ScopedPtr (pointer ptr_, destroyer_type &&destroyer) ScopedPtr pma::ScopedPtr::ScopedPtr pointer ptr_ destroyer_type && destroyer pma::ScopedPtr< T, TDestroyer >::~ScopedPtr () ~ScopedPtr pma::ScopedPtr::~ScopedPtr pma::ScopedPtr< T, TDestroyer >::ptr pma::ScopedPtr< T, TDestroyer >::ScopedPtr (std::nullptr_t) ScopedPtr pma::ScopedPtr::ScopedPtr std::nullptr_t ScopedPtr & ScopedPtr & pma::ScopedPtr< T, TDestroyer >::operator= (std::nullptr_t) operator= pma::ScopedPtr::operator= std::nullptr_t pma::ScopedPtr< T, TDestroyer >::reset pma::ScopedPtr< T, TDestroyer >::ScopedPtr (const ScopedPtr &)=delete ScopedPtr pma::ScopedPtr::ScopedPtr const ScopedPtr & ScopedPtr & ScopedPtr & pma::ScopedPtr< T, TDestroyer >::operator= (const ScopedPtr &)=delete operator= pma::ScopedPtr::operator= const ScopedPtr & pma::ScopedPtr< T, TDestroyer >::ScopedPtr (ScopedPtr &&rhs) noexcept ScopedPtr pma::ScopedPtr::ScopedPtr ScopedPtr && rhs ScopedPtr & ScopedPtr & pma::ScopedPtr< T, TDestroyer >::operator= (ScopedPtr &&rhs) noexcept operator= pma::ScopedPtr::operator= ScopedPtr && rhs pma::ScopedPtr< T, TDestroyer >::swap typename U class UDestroyer pma::ScopedPtr< T, TDestroyer >::ScopedPtr (ScopedPtr< U, UDestroyer > &&rhs) noexcept ScopedPtr pma::ScopedPtr::ScopedPtr ScopedPtr< U, UDestroyer > && rhs typename U class UDestroyer ScopedPtr & ScopedPtr & pma::ScopedPtr< T, TDestroyer >::operator= (ScopedPtr< U, UDestroyer > &&rhs) noexcept operator= pma::ScopedPtr::operator= ScopedPtr< U, UDestroyer > && rhs pma::ScopedPtr< T, TDestroyer >::release typename U T typename IA typename inspect<U>::is_array std::enable_if< IA::value, element_type & >::type std::enable_if< IA::value, element_type & >::type pma::ScopedPtr< T, TDestroyer >::operator[] (std::size_t index) const noexcept operator[] pma::ScopedPtr::operator[] std::size_t index pma::ScopedPtr< T, TDestroyer >::ptr typename U T typename IA typename inspect<U>::is_array std::enable_if<!IA::value, element_type & >::type std::enable_if<!IA::value, element_type & >::type pma::ScopedPtr< T, TDestroyer >::operator* () const noexcept operator* pma::ScopedPtr::operator* pma::ScopedPtr< T, TDestroyer >::ptr pointer pointer pma::ScopedPtr< T, TDestroyer >::operator-> () const noexcept operator-> pma::ScopedPtr::operator-> pma::ScopedPtr< T, TDestroyer >::ptr pma::ScopedPtr< T, TDestroyer >::operator bool () const noexcept operator bool pma::ScopedPtr::operator bool pma::ScopedPtr< T, TDestroyer >::ptr pointer pointer pma::ScopedPtr< T, TDestroyer >::get () const noexcept get pma::ScopedPtr::get pma::ScopedPtr< T, TDestroyer >::ptr pointer pointer pma::ScopedPtr< T, TDestroyer >::release () noexcept release pma::ScopedPtr::release pma::ScopedPtr< T, TDestroyer >::ptr pma::ScopedPtr< T, TDestroyer >::operator= pma::ScopedPtr< T, TDestroyer >::reset void void pma::ScopedPtr< T, TDestroyer >::reset (pointer rhs=pointer()) noexcept reset pma::ScopedPtr::reset pointer rhs pointer() pma::ScopedPtr< T, TDestroyer >::ptr pma::ScopedPtr< T, TDestroyer >::release pma::ScopedPtr< T, TDestroyer >::operator= void void pma::ScopedPtr< T, TDestroyer >::swap (ScopedPtr &rhs) noexcept swap pma::ScopedPtr::swap ScopedPtr & rhs pma::ScopedPtr< T, TDestroyer >::ptr pma::ScopedPtr< T, TDestroyer >::operator= Takes ownership over the given pointer and handles it's lifetime. As ScopedPtr inherits the specified destroyer type, stateless lifetime managers are zero-cost, but it's also possible to use stateful lifetime managers (such as lambdas with captures and what-not). For stateful lifetime managers, a dedicated constructor exists that receives the destroyer instance and initializes the inherited destroyer type with it. makeScoped New Delete FactoryCreate FactoryDestroy DefaultInstanceCreator DefaultInstanceDestroyer < dnac::CalculateMeshLowerLODsCommand::Impl > < dnac::ClearBlendShapesCommand::Impl > < dnac::CommandSequence::Impl > < dnac::PruneBlendShapeTargetsCommand::Impl > < dnac::RemoveJointAnimationCommand::Impl > < dnac::RemoveJointCommand::Impl > < dnac::RemoveMeshCommand::Impl > < dnac::RenameAnimatedMapCommand::Impl > < dnac::RenameBlendShapeCommand::Impl > < dnac::RenameJointCommand::Impl > < dnac::RenameMeshCommand::Impl > < dnac::RotateCommand::Impl > < dnac::ScaleCommand::Impl > < dnac::SetBlendShapeTargetDeltasCommand::Impl > < dnac::SetLODsCommand::Impl > < dnac::SetNeutralJointRotationsCommand::Impl > < dnac::SetNeutralJointTranslationsCommand::Impl > < dnac::SetSkinWeightsCommand::Impl > < dnac::SetVertexPositionsCommand::Impl > < dnac::TranslateCommand::Impl > < pma::ArenaMemoryResource::Impl, pma::FactoryDestroy< pma::ArenaMemoryResource::Impl > > < trio::FileStream > < T > -ptr pma::ScopedPtrdestroyer_type pma::ScopedPtrelement_type pma::ScopedPtrget pma::ScopedPtroperator bool pma::ScopedPtroperator* pma::ScopedPtroperator-> pma::ScopedPtroperator= pma::ScopedPtroperator= pma::ScopedPtroperator= pma::ScopedPtroperator= pma::ScopedPtroperator[] pma::ScopedPtrpointer pma::ScopedPtrptr pma::ScopedPtrrelease pma::ScopedPtrreset pma::ScopedPtrScopedPtr pma::ScopedPtrScopedPtr pma::ScopedPtrScopedPtr pma::ScopedPtrScopedPtr pma::ScopedPtrScopedPtr pma::ScopedPtrScopedPtr pma::ScopedPtrScopedPtr pma::ScopedPtrScopedPtr pma::ScopedPtrswap pma::ScopedPtr~ScopedPtr