[#BloombergLP-bslma-ManagedPtr-0fa-2constructor-0c] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr]::ManagedPtr :relfileprefix: ../../../ :mrdocs: Constructors == Synopses Declared in `<bslma_managedptr.h>` Create an empty managed pointer. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-01f.adoc[ManagedPtr](); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-01f.adoc[_» more..._]# Create a managed pointer by taking ownership from `original`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-008.adoc[ManagedPtr](xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr]& original) noexcept; ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-008.adoc[_» more..._]# Create a managed pointer by taking ownership from compatible `original`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class BDE_OTHER_TYPE> xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-09.adoc[ManagedPtr](xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<BDE_OTHER_TYPE>]&& original) noexcept requires bsl::is_convertible<BDE_OTHER_TYPE *, TARGET_TYPE *>::value; ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-09.adoc[_» more..._]# Create an empty managed pointer from a null pointer literal. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-06.adoc[ManagedPtr](xref:bsl/nullptr_t-08.adoc[bsl::nullptr_t] nullPointerLiteral); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-06.adoc[_» more..._]# Create a managed pointer by taking ownership from `ref`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0b.adoc[ManagedPtr](xref:BloombergLP/bslma/ManagedPtr_Ref.adoc[ManagedPtr_Ref<TARGET_TYPE>] ref) noexcept; ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0b.adoc[_» more..._]# Create a managed pointer by taking ownership from `original`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-052c.adoc[ManagedPtr](xref:BloombergLP/bslmf/MovableRef.adoc[bslmf::MovableRef<ManagedPtr>] original) noexcept; ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-052c.adoc[_» more..._]# Create a managed pointer owning `*ptr`, destroyed with `delete`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class MANAGED_TYPE> explicit xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-083.adoc[ManagedPtr](MANAGED_TYPE* ptr); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-083.adoc[_» more..._]# Create an empty managed pointer from two null‐pointer literals. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-012.adoc[ManagedPtr]( xref:bsl/nullptr_t-08.adoc[bsl::nullptr_t] nullPointerLiteral, xref:bsl/nullptr_t-08.adoc[bsl::nullptr_t] cookieNullPointerLiteral); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-012.adoc[_» more..._]# Create an empty managed pointer; `factory` is ignored. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class FACTORY_TYPE> xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0a.adoc[ManagedPtr]( xref:bsl/nullptr_t-08.adoc[bsl::nullptr_t] nullPointerLiteral, FACTORY_TYPE* factory); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0a.adoc[_» more..._]# Create an aliasing managed pointer from `alias` targeting `ptr`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class ALIASED_TYPE> xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0524.adoc[ManagedPtr]( xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<ALIASED_TYPE>]& alias, TARGET_TYPE* ptr); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0524.adoc[_» more..._]# Move‐construct an aliasing managed pointer from `alias` targeting `ptr`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class ALIASED_TYPE> xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0d3.adoc[ManagedPtr]( xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<ALIASED_TYPE>]&& alias, TARGET_TYPE* ptr); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0d3.adoc[_» more..._]# Create a managed pointer owning `*ptr`, destroyed via `factory`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class MANAGED_TYPE, class FACTORY_TYPE> xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-07.adoc[ManagedPtr]( MANAGED_TYPE* ptr, FACTORY_TYPE* factory); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-07.adoc[_» more..._]# Create a managed pointer owning `*ptr` with the specified deleter. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0e.adoc[ManagedPtr]( TARGET_TYPE* ptr, void* cookie, xref:BloombergLP/bslma/ManagedPtr-0fa/DeleterFunc.adoc[DeleterFunc] deleter); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0e.adoc[_» more..._]# Create a managed pointer owning `*ptr` with the specified deleter. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class MANAGED_TYPE> xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-006.adoc[ManagedPtr]( MANAGED_TYPE* ptr, void* cookie, xref:BloombergLP/bslma/ManagedPtr-0fa/DeleterFunc.adoc[DeleterFunc] deleter); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-006.adoc[_» more..._]# Create a managed pointer owning `*ptr` with the specified deleter. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class MANAGED_TYPE, class MANAGED_BASE> xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-086.adoc[ManagedPtr]( MANAGED_TYPE* ptr, void* cookie, void(* deleter)(MANAGED_BASE*, void*)); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-086.adoc[_» more..._]# Create a managed pointer owning `*ptr` with the specified deleter. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class MANAGED_TYPE, class MANAGED_BASE, class COOKIE_TYPE, class COOKIE_BASE> xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0d9.adoc[ManagedPtr]( MANAGED_TYPE* ptr, COOKIE_TYPE* cookie, void(* deleter)(MANAGED_BASE*, COOKIE_BASE*)); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/2constructor-0d9.adoc[_» more..._]# == Parameters [cols="1,4"] |=== | Name| Description | *original* | managed pointer from which to take ownership | *nullPointerLiteral* | null‐pointer literal (unused; selects this overload) | *ref* | managed‐pointer reference from which to take ownership | *ptr* | pointer to the object to manage, or null | *cookieNullPointerLiteral* | null‐pointer literal (unused; selects this overload) | *factory* | unused factory pointer | *alias* | managed pointer supplying ownership of the managed object | *cookie* | cookie passed to `deleter` when the object is destroyed | *deleter* | function used to destroy the managed object |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#