Constructors

Synopses

Declared in <bslma_managedptr.h>

Create an empty managed pointer.

Create a managed pointer by taking ownership from original.

ManagedPtr(ManagedPtr& original) noexcept;

Create a managed pointer by taking ownership from compatible original.

template<class BDE_OTHER_TYPE>
ManagedPtr(ManagedPtr<BDE_OTHER_TYPE>&& original) noexcept
requires bsl::is_convertible<BDE_OTHER_TYPE *, TARGET_TYPE *>::value;

Create an empty managed pointer from a null pointer literal.

ManagedPtr(bsl::nullptr_t nullPointerLiteral);

Create a managed pointer by taking ownership from ref.

Create a managed pointer by taking ownership from original.

Create a managed pointer owning *ptr, destroyed with delete.

template<class MANAGED_TYPE>
explicit
ManagedPtr(MANAGED_TYPE* ptr);

Create an empty managed pointer from two null‐pointer literals.

explicit
ManagedPtr(
    bsl::nullptr_t nullPointerLiteral,
    bsl::nullptr_t cookieNullPointerLiteral);

Create an empty managed pointer; factory is ignored.

template<class FACTORY_TYPE>
ManagedPtr(
    bsl::nullptr_t nullPointerLiteral,
    FACTORY_TYPE* factory);

Create an aliasing managed pointer from alias targeting ptr.

template<class ALIASED_TYPE>
ManagedPtr(
    ManagedPtr<ALIASED_TYPE>& alias,
    TARGET_TYPE* ptr);

Move‐construct an aliasing managed pointer from alias targeting ptr.

template<class ALIASED_TYPE>
ManagedPtr(
    ManagedPtr<ALIASED_TYPE>&& alias,
    TARGET_TYPE* ptr);

Create a managed pointer owning *ptr, destroyed via factory.

template<
    class MANAGED_TYPE,
    class FACTORY_TYPE>
ManagedPtr(
    MANAGED_TYPE* ptr,
    FACTORY_TYPE* factory);

Create a managed pointer owning *ptr with the specified deleter.

ManagedPtr(
    TARGET_TYPE* ptr,
    void* cookie,
    DeleterFunc deleter);

Create a managed pointer owning *ptr with the specified deleter.

template<class MANAGED_TYPE>
ManagedPtr(
    MANAGED_TYPE* ptr,
    void* cookie,
    DeleterFunc deleter);

Create a managed pointer owning *ptr with the specified deleter.

template<
    class MANAGED_TYPE,
    class MANAGED_BASE>
ManagedPtr(
    MANAGED_TYPE* ptr,
    void* cookie,
    void(* deleter)(MANAGED_BASE*, void*));

Create a managed pointer owning *ptr with the specified deleter.

template<
    class MANAGED_TYPE,
    class MANAGED_BASE,
    class COOKIE_TYPE,
    class COOKIE_BASE>
ManagedPtr(
    MANAGED_TYPE* ptr,
    COOKIE_TYPE* cookie,
    void(* deleter)(MANAGED_BASE*, COOKIE_BASE*));

Parameters

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

Created with MrDocs