Namespaces
Variants

std::move_only_function:: operator=

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until 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 ein neues Zielobjekt zu std::move_only_function oder zerstört dessen Zielobjekt.

1) Verschiebt das Ziel von other nach * this oder zerstört das Ziel von * this (falls vorhanden), falls other leer ist, durch auto ( std :: move ( other ) ) . swap ( * this ) . other befindet sich nach der Verschiebezuweisung in einem gültigen Zustand mit einem nicht spezifizierten Wert.
2) Der Kopierzuweisungsoperator ist gelöscht. std::move_only_function erfüllt nicht die Anforderungen von CopyAssignable .
3) Zerstört das aktuelle Ziel, falls es existiert. * this ist nach dem Aufruf leer.
4) Setzt das Ziel von * this auf das aufrufbare Objekt f oder zerstört das aktuelle Ziel, falls f ein null-Funktionszeiger, ein null-Zeiger auf Memberfunktion oder ein leeres std::move_only_function ist, als ob durch Ausführung von move_only_function ( std:: forward < F > ( f ) ) . swap ( * this ) ; . 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 fehlerhaft oder hat undefiniertes Verhalten, wenn der ausgewählte Konstruktoraufruf fehlerhaft ist oder undefiniertes Verhalten hat.

Inhaltsverzeichnis

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...)> )