std::experimental::unique_resource<R, D>:: operator=
|
unique_resource
&
operator
=
(
unique_resource
&&
other
)
noexcept ( /*siehe unten*/ ) ; |
(Library Fundamentals TS v3) | |
Verschiebezuweisungsoperator. Ersetzt die verwaltete Ressource und den Löscher mit denen von other .
Formal sei
RS
der Typ des gespeicherten Resource Handles:
- Zuerst ruft es reset ( ) auf, um die aktuell gehaltene Ressource freizugeben, falls vorhanden.
-
Dann weist es den gespeicherten Ressourcen-Handle und den Deleter mit denen von
other
zu.
std::movewird auf den gespeicherten Ressourcen-Handle oder den Deleter von other angewendet, falls std:: is_nothrow_move_assignable_v < RS > oder std:: is_nothrow_move_assignable_v < D > jeweils true ist. Die Zuweisung des gespeicherten Ressourcen-Handles wird zuerst ausgeführt, es sei denn std:: is_nothrow_move_assignable_v < D > ist false und std:: is_nothrow_move_assignable_v < RS > ist true . - Schließlich setzt es * this so, dass es die Ressource genau dann besitzt, wenn other sie vor der Zuweisung besaß, und other die Ressource nicht mehr besitzt.
Falls
std::
is_nothrow_move_assignable_v
<
RS
>
true
ist, muss
RS
die
MoveAssignable
-Anforderungen erfüllen; andernfalls muss
RS
die
CopyAssignable
-Anforderungen erfüllen. Falls
std::
is_nothrow_move_assignable_v
<
D
>
true
ist, muss
D
die
MoveAssignable
-Anforderungen erfüllen; andernfalls muss
D
die
CopyAssignable
-Anforderungen erfüllen. Die Nichterfüllung der oben genannten Anforderungen führt zu undefiniertem Verhalten.
Inhaltsverzeichnis |
Parameter
| other | - | Ressourcen-Wrapper, von dem das Eigentum übertragen wird |
Rückgabewert
* this
Ausnahmen
Jede Ausnahme, die bei der Copy-Zuweisung geworfen wird.
Hinweise
Wenn eine Kopie eines Members eine Exception wirft, lässt dieser Mechanismus other intakt und * this im freigegebenen Zustand.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
verwaltet oder ersetzt die verwaltete Ressource
(öffentliche Elementfunktion) |
|
weist den
unique_ptr
zu
(öffentliche Elementfunktion von
std::unique_ptr<T,Deleter>
)
|