Namespaces
Variants

std::experimental::function<R(Args...)>:: operator=

From cppreference.net
function & operator = ( const function & other ) ;
(1) (Bibliotheksgrundlagen TS)
function & operator = ( function && other ) ;
(2) (Bibliotheksgrundlagen TS)
function & operator = ( std:: nullptr_t ) noexcept ;
(3) (Bibliotheksgrundlagen TS)
template < class F >
function & operator = ( F && f ) ;
(4) (Bibliotheksgrundlagen TS)
(5)
template < class F >
function & operator = ( std:: reference_wrapper < F > f ) ;
(Bibliotheksgrundlagen TS)
template < class F >
function & operator = ( std:: reference_wrapper < F > f ) noexcept ;
(Bibliotheksgrundlagen TS v3)

Weist ein neues Zielobjekt der std::experimental::function zu. In der folgenden Beschreibung sei ALLOCATOR_OF ( f ) der bei der Konstruktion von f angegebene Allokator, oder der Wert von std:: experimental :: pmr :: get_default_resource ( ) (bis Library Fundamentals TS v3) der standardkonstruierte std:: pmr :: polymorphic_allocator <> Wert (Library Fundamentals TS v3) zum Zeitpunkt der Konstruktion, falls kein Allokator angegeben wurde.

1) Weist eine Kopie des target von other zu, als ob durch Ausführung von function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , other ) . swap ( * this ) ; .
2) Verschiebt das Ziel von other nach * this , als ob durch Ausführung von function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , std :: move ( other ) ) . swap ( * this ) ; . other befindet sich in einem gültigen Zustand mit einem nicht spezifizierten Wert.
3) Zerstört das Ziel von * this . * this ist nach dem Aufruf leer . Die Speicherressource, die von get_memory_resource() nach der Zuweisung zurückgegeben wird, ist äquivalent zur Speicherressource vor der Zuweisung, aber die Adresse kann sich ändern.
4) Setzt das target von * this auf das aufrufbare Objekt f , als ob durch Ausführung von function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , std:: forward < F > ( f ) ) . swap ( * this ) ; . Dieser Operator nimmt nicht an der Überladungsauflösung teil, es sei denn f ist Callable für die Argumenttypen Args... und den Rückgabetyp R .
5) Setzt das target von * this auf eine Kopie von f , als ob durch Ausführung von function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , f ) . swap ( * this ) ; .

Inhaltsverzeichnis

Parameter

other - ein weiteres std::experimental::function Objekt, von dem kopiert oder verschoben wird
f - ein Aufrufbares zur Initialisierung des target
Typanforderungen
-
F muss die Anforderungen von Callable erfüllen.

Rückgabewert

* this

Ausnahmen

1,2,4) Ausnahme ausgelöst bei benötigter Allokierung des Speichers oder Initialisierung des Ziels von * this , falls vorhanden.
5) (keine)

Hinweise

Der Move-Zuweisungsoperator muss möglicherweise Speicher allozieren, falls get_memory_resource ( ) ! = other. get_memory_resource ( ) (bis Library Fundamentals TS v3) get_allocator ( ) ! = other. get_allocator ( ) (Library Fundamentals TS v3)