Namespaces
Variants

std::move_only_function::operator=

Von de.cppreference.net
 
 
Dienstprogrammbibliothek
Sprachunterstützung
Typunterstützung (Basistypen, RTTI)
Bibliotheks-Feature-Test-Makros (C++20)
Programm-Dienstprogramme
Variadische Funktionen
Koroutinen-Unterstützung (C++20)
Vertragsunterstützung (C++26)
Dreiseitiger Vergleich
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Allgemeine Dienstprogramme
Relationale Operatoren (veraltet in C++20)
Ganzzahl-Vergleichsfunktionen
(C++20)(C++20)(C++20)    
(C++20)
Swap und Typoperationen
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Allgemeine Vokabular-Typen
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
Funktionsobjekte
Funktionsaufruf
(C++17)(C++23)
Identitätsfunktionsobjekt
(C++20)
Transparente Operator-Wrapper
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Alte Binder und Adaptoren
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
(bis C++17*)(bis C++17*)
(bis C++17*)(bis C++17*)

(bis C++17*)
(bis C++17*)(bis C++17*)(bis C++17*)(bis C++17*)
(bis C++20*)
(bis C++20*)
 
 
move_only_function& operator=( move_only_function&& other );
(1) (seit C++23)
move_only_function& operator=( const move_only_function& ) = delete;
(2) (seit C++23)
move_only_function& operator=( std::nullptr_t ) noexcept;
(3) (seit C++23)
template< class F >
move_only_function& operator=( F&& f );
(4) (seit C++23)

Weist std::move_only_function ein neues Ziel zu oder zerstört dessen Ziel.

1) Verschiebt das Ziel von other nach *this oder zerstört das Ziel von *this (falls vorhanden), wenn other leer ist, mittels auto(std::move(other)).swap(*this). other befindet sich nach der Verschiebungszuweisung in einem gültigen Zustand mit einem nicht spezifizierten Wert.
2) Der Kopierzuweisungsoperator ist gelöscht. std::move_only_function erfüllt nicht CopyAssignable.
3) Zerstört das aktuelle Ziel, falls es vorhanden ist. *this ist nach dem Aufruf leer.
4) Setzt das Ziel von *this auf das aufrufbare Objekt f oder zerstört das aktuelle Ziel, wenn f ein Null-Funktionszeiger, ein Null-Zeiger auf eine Elementfunktion oder ein leeres std::move_only_function ist, als ob move_only_function(std::forward<F>(f)).swap(*this); ausgeführt würde. Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn der Konstruktor von move_only_function aus F an der Überladungsauflösung teilnimmt. Das Programm ist falsch formatiert oder hat ein undefiniertes Verhalten, wenn der ausgewählte Konstruktoraufruf falsch formatiert ist oder undefiniertes Verhalten hat.

Parameter

other - ein weiteres std::move_only_function Objekt, von dem das Ziel verschoben wird
f - ein aufrufbares Objekt zur Initialisierung des neuen Ziels

Rückgabewert

* this

Hinweise

Es ist absichtlich nicht erforderlich, dass der Move-Zuweisungsoperator noexcept ist, um Spielraum für einen allocator-aware move_only_function in der Zukunft zu lassen.

move_only_function kann zugewiesen werden von std:: in_place_type < Fn > vorausgesetzt, es kann aus diesem Argument konstruiert werden.

Beispiel

Siehe auch

weist ein neues Ziel zu
(öffentliche Elementfunktion von std::function<R(Args...)> )