std::experimental::unique_resource<R, D>::operator=
| unique_resource& operator=( unique_resource&& other ) noexcept(/*siehe unten*/); |
(library fundamentals TS v3) | |
Zuweisungsoperator für Verschiebung. Ersetzt die verwaltete Ressource und den Deleter durch die von other.
Formal sei RS der Typ des gespeicherten Ressourcengriffs
- Zuerst wird reset() aufgerufen, um die aktuell besessene Ressource zu entsorgen, falls vorhanden.
- Dann werden der gespeicherte Ressourcengriff und der Deleter mit denen von other zugewiesen. `std::move` wird auf den gespeicherten Ressourcengriff oder den Deleter von other angewendet, wenn std::is_nothrow_move_assignable_v<RS> oder std::is_nothrow_move_assignable_v<D> entsprechend true ist. Die Zuweisung des gespeicherten Ressourcengriffs 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 wird *this so eingestellt, dass es die Ressource besitzt, wenn und nur wenn other sie vor der Zuweisung besaß, und other die Ressource nicht besitzt.
Wenn std::is_nothrow_move_assignable_v<RS> true ist, muss `RS` die Anforderungen der MoveAssignable erfüllen; andernfalls muss `RS` die Anforderungen der CopyAssignable erfüllen. Wenn std::is_nothrow_move_assignable_v<D> true ist, muss `D` die Anforderungen der MoveAssignable erfüllen; andernfalls muss `D` die Anforderungen der CopyAssignable erfüllen. Nichteinhaltung der obigen Anforderungen führt zu undefiniertem Verhalten.
Inhalt |
[edit] Parameter
| Sonstiges | - | Ressourcen-Wrapper, von dem die Besitzerschaft übertragen wird |
[edit] Rückgabewert
*this
[edit] Ausnahmen
Jede Ausnahme, die bei der Kopierzuweisung ausgelöst wird.
[edit] Hinweise
Wenn eine Kopie eines Mitglieds eine Ausnahme auslöst, lässt dieser Mechanismus other intakt und *this im freigegebenen Zustand.
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Siehe auch
| verwaltet oder ersetzt die verwaltete Ressource (public member function) | |
| weist den `unique_ptr` zu (öffentliche Memberfunktion von std::unique_ptr<T,Deleter>) |