[#bsl-shared_ptr-0a-operator_assign-05] = xref:bsl.adoc[bsl]::xref:bsl/shared_ptr-0a.adoc[shared_ptr]::operator= :relfileprefix: ../../ :mrdocs: Assignment operators == Synopses Declared in `<bslstl_sharedptr.h>` Copy‐assign from a compatible `shared_ptr` `rhs`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/shared_ptr-0a.adoc[shared_ptr]& xref:bsl/shared_ptr-0a/operator_assign-0f.adoc[operator=](xref:bsl/shared_ptr-0a.adoc[shared_ptr] const& rhs) noexcept; ---- [.small]#xref:bsl/shared_ptr-0a/operator_assign-0f.adoc[_» more..._]# Assign from a compatible `shared_ptr` `rhs`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class COMPATIBLE_TYPE> xref:bsl/shared_ptr-0a.adoc[shared_ptr]& xref:bsl/shared_ptr-0a/operator_assign-097.adoc[operator=](xref:bsl/shared_ptr-0a.adoc[shared_ptr<COMPATIBLE_TYPE>] const& rhs) noexcept requires is_convertible<COMPATIBLE_TYPE *, ELEMENT_TYPE *>::value; ---- [.small]#xref:bsl/shared_ptr-0a/operator_assign-097.adoc[_» more..._]# Assign from a compatible `shared_ptr` `rhs`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class COMPATIBLE_TYPE> xref:bsl/shared_ptr-0a.adoc[shared_ptr]& xref:bsl/shared_ptr-0a/operator_assign-09c.adoc[operator=](xref:bsl/shared_ptr-0a.adoc[shared_ptr<COMPATIBLE_TYPE>]&& rhs) noexcept requires is_convertible<COMPATIBLE_TYPE *, ELEMENT_TYPE *>::value; ---- [.small]#xref:bsl/shared_ptr-0a/operator_assign-09c.adoc[_» more..._]# Move‐assign from a compatible `shared_ptr` `rhs`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/shared_ptr-0a.adoc[shared_ptr]& xref:bsl/shared_ptr-0a/operator_assign-0e.adoc[operator=](xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef<shared_ptr>] rhs) noexcept; ---- [.small]#xref:bsl/shared_ptr-0a/operator_assign-0e.adoc[_» more..._]# Assign from a managed pointer, taking ownership of `rhs`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class COMPATIBLE_TYPE> xref:bsl/shared_ptr-0a.adoc[shared_ptr]& xref:bsl/shared_ptr-0a/operator_assign-0a.adoc[operator=](xref:BloombergLP/bslma/ManagedPtr-0fa.adoc[BloombergLP::bslma::ManagedPtr<COMPATIBLE_TYPE>] rhs) requires is_convertible<COMPATIBLE_TYPE *, ELEMENT_TYPE *>::value; ---- [.small]#xref:bsl/shared_ptr-0a/operator_assign-0a.adoc[_» more..._]# Assign from an auto pointer, taking ownership of `rhs`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class COMPATIBLE_TYPE> xref:bsl/shared_ptr-0a.adoc[shared_ptr]& xref:bsl/shared_ptr-0a/operator_assign-02.adoc[operator=](std::auto_ptr<COMPATIBLE_TYPE> rhs) requires is_convertible<COMPATIBLE_TYPE *, ELEMENT_TYPE *>::value; ---- [.small]#xref:bsl/shared_ptr-0a/operator_assign-02.adoc[_» more..._]# Assign from a unique pointer, taking ownership of `rhs`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class COMPATIBLE_TYPE, class UNIQUE_DELETER> xref:bsl/shared_ptr-0a.adoc[shared_ptr]& xref:bsl/shared_ptr-0a/operator_assign-090.adoc[operator=](std::unique_ptr<COMPATIBLE_TYPE, UNIQUE_DELETER>&& rhs) requires is_convertible< typename std::unique_ptr<COMPATIBLE_TYPE, UNIQUE_DELETER>::pointer, ELEMENT_TYPE *>::value; ---- [.small]#xref:bsl/shared_ptr-0a/operator_assign-090.adoc[_» more..._]# == Return Value reference providing modifiable access to this shared pointer == Parameters [cols="1,4"] |=== | Name| Description | *rhs* | right‐hand side operand |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#