std::shared_ptr<T>:: operator=
From de.cppreference.net
<
cpp
|
memory
|
shared ptr
|
shared_ptr
&
operator
=
(
const
shared_ptr
&
r
)
noexcept
;
|
(1) | |
|
template
<
class
Y
>
shared_ptr & operator = ( const shared_ptr < Y > & r ) noexcept ; |
(2) | |
|
shared_ptr
&
operator
=
(
shared_ptr
&&
r
)
noexcept
;
|
(3) | |
|
template
<
class
Y
>
shared_ptr & operator = ( shared_ptr < Y > && r ) noexcept ; |
(4) | |
|
template
<
class
Y
>
shared_ptr & operator = ( std:: auto_ptr < Y > && r ) ; |
(5) |
(in C++11 veraltet)
(in C++17 entfernt) |
|
template
<
class
Y,
class
Deleter
>
shared_ptr & operator = ( std:: unique_ptr < Y, Deleter > && r ) ; |
(6) | |
Ersetzt das verwaltete Objekt durch das von r verwaltete Objekt.
Wenn
*
this
bereits ein Objekt besitzt und es der letzte
shared_ptr
ist, der es besitzt, und
r
nicht dasselbe wie
*
this
ist, wird das Objekt durch den enthaltenen Deleter zerstört.
1,2)
Übernimmt die gemeinsame Eigentümerschaft des durch
r
verwalteten Objekts. Falls
r
kein Objekt verwaltet, verwaltet auch
*
this
kein Objekt. Entspricht
shared_ptr
<
T
>
(
r
)
.
swap
(
*
this
)
.
3,4)
Führt eine Move-Zuweisung eines
shared_ptr
von
r
durch. Nach der Zuweisung enthält
*
this
eine Kopie des vorherigen Zustands von
r
, und
r
ist leer. Entspricht
shared_ptr
<
T
>
(
std
::
move
(
r
)
)
.
swap
(
*
this
)
.
5)
Überträgt die Eigentümerschaft des von
r
verwalteten Objekts auf
*
this
. Wenn
r
kein Objekt verwaltet, verwaltet
*
this
ebenfalls kein Objekt. Nach der Zuweisung enthält
*
this
den zuvor von
r
gehaltenen Zeiger, und
use_count
(
)
==
1
; außerdem ist
r
leer. Entspricht
shared_ptr
<
T
>
(
r
)
.
swap
(
*
this
)
.
6)
Überträgt die Eigentümerschaft des durch
r
verwalteten Objekts auf
*
this
. Der mit
r
assoziierte Deleter wird für die zukünftige Löschung des verwalteten Objekts gespeichert.
r
verwaltet nach dem Aufruf kein Objekt mehr. Entspricht
shared_ptr
<
T
>
(
std
::
move
(
r
)
)
.
swap
(
*
this
)
.
Inhaltsverzeichnis |
Parameter
| r | - | ein weiterer intelligenter Zeiger, um die Eigentümerschaft zu teilen oder zu übernehmen |
Rückgabewert
* this
Hinweise
Die Implementierung kann die Anforderungen erfüllen, ohne ein temporäres
shared_ptr
Objekt zu erstellen.
Exceptions
5,6)
Kann implementierungsdefinierte Ausnahmen werfen.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
ersetzt das verwaltete Objekt
(öffentliche Elementfunktion) |