[#BloombergLP-bslstl-SharedPtrAllocateOutofplaceRep_InitProctor] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslstl.adoc[bslstl]::SharedPtrAllocateOutofplaceRep_InitProctor :relfileprefix: ../../ :mrdocs: This proctor is used for out‐of‐place shared pointer instantiations. Generally, a proctor is created prior to constructing a `SharedPtrAllocateOutofplaceRep` and released after successful construction. In the event that an exception is thrown during construction of the representation, the proctor will delete the provided pointer using the provided deleter. Note that the provided deleter is held by reference and must remain valid for the lifetime of the proctor. If the proctor is not released before it's destruction, a copy of the deleter is instantiated to delete the pointer (in case `operator()` is non‐`const`). Also note that if the deleter throws during copy construction, the provided pointer will not be destroyed. == Synopsis Declared in `<bslstl_sharedptrallocateoutofplacerep.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class TYPE, class DELETER> class SharedPtrAllocateOutofplaceRep_InitProctor; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslstl/SharedPtrAllocateOutofplaceRep_InitProctor/2constructor.adoc[`SharedPtrAllocateOutofplaceRep_InitProctor`] [.small]#[constructor]# | Create a proctor managing the specified `ptr` and using the specified `deleter` to destroy `ptr` when the proctor is destroyed, unless it has been released from management by a call to `release`. | xref:BloombergLP/bslstl/SharedPtrAllocateOutofplaceRep_InitProctor/2destructor.adoc[`~SharedPtrAllocateOutofplaceRep_InitProctor`] [.small]#[destructor]# | Destroy this proctor and the object (if any) managed by this proctor. | xref:BloombergLP/bslstl/SharedPtrAllocateOutofplaceRep_InitProctor/release.adoc[`release`] | Release from management the object referred to by this proctor. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#