[#BloombergLP-bslma-ManagedPtr-0fa-operator_assign-09] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslma.adoc[bslma]::xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr]::operator= :relfileprefix: ../../../ :mrdocs: Assignment operators == Synopses Declared in `<bslma_managedptr.h>` If this object and the specified `rhs` manage the same object, return a reference to this managed pointer; otherwise, destroy the managed object owned by this managed pointer, transfer ownership of the managed object owned by `rhs` to this managed pointer, set this managed pointer to point to the target object referenced by `rhs`, reset `rhs` to empty, and return a reference to this managed pointer. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<TARGET_TYPE>]& xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-01f.adoc[operator=](xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr]& rhs) noexcept; ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-01f.adoc[_» more..._]# If this object and the specified `rhs` manage the same object, return a reference to this managed pointer; otherwise, destroy the managed object owned by this managed pointer, transfer ownership of the managed object owned by `rhs` to this managed pointer, set this managed pointer to point to the target object referenced by `rhs`, reset `rhs` to empty, and return a reference to this managed pointer. `TARGET_TYPE` must be an accessible and unambiguous base of `BDE_OTHER_TYPE`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class BDE_OTHER_TYPE> xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<TARGET_TYPE>]& xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-013.adoc[operator=](xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<BDE_OTHER_TYPE>]&& rhs) noexcept requires bsl::is_convertible<BDE_OTHER_TYPE *, TARGET_TYPE *>::value; ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-013.adoc[_» more..._]# Destroy the current managed object (if any) and reset this managed pointer to empty. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<TARGET_TYPE>]& xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-0d.adoc[operator=](xref:bsl/nullptr_t-08.adoc[bsl::nullptr_t]); ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-0d.adoc[_» more..._]# If this object and the managed pointer reference by the specified `ref` manage the same object, return a reference to this managed pointer; otherwise, destroy the managed object owned by this managed pointer, transfer ownership of the managed object owned by the managed pointer referenced by `ref`, and set this managed pointer to point to the target object currently referenced the managed pointer referenced by `ref`; then reset the managed pointer referenced by `ref` to empty, and return a reference to this managed pointer. This operator is (implicitly) used to assign from a managed pointer rvalue, or from a managed pointer to a "compatible" type, where "compatible" means a built‐in conversion from `MANAGED_TYPE *` to `TARGET_TYPE *` is defined, e.g., `derived *` to `base *`, `T *` to `const T *`, or `T *` to `void *`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<TARGET_TYPE>]& xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-0b.adoc[operator=](xref:BloombergLP/bslma/ManagedPtr_Ref.adoc[ManagedPtr_Ref<TARGET_TYPE>] ref) noexcept; ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-0b.adoc[_» more..._]# If this object and the specified `rhs` manage the same object, return a reference to this managed pointer; otherwise, destroy the managed object owned by this managed pointer, transfer ownership of the managed object owned by `rhs` to this managed pointer, set this managed pointer to point to the target object referenced by `rhs`, reset `rhs` to empty, and return a reference to this managed pointer. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[ManagedPtr<TARGET_TYPE>]& xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-0c.adoc[operator=](xref:BloombergLP/bslmf/MovableRef.adoc[bslmf::MovableRef<ManagedPtr>] rhs) noexcept; ---- [.small]#xref:BloombergLP/bslma/ManagedPtr-0fa/operator_assign-0c.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#