std::move_only_function::operator=
Von cppreference.com
< cpp | utility | functional | move only function
| 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 sein Ziel.
1) Verschiebt das Ziel von other nach *this oder zerstört das Ziel von *this (falls vorhanden), wenn other leer ist, durch auto(std::move(other)).swap(*this). other befindet sich nach der Zuweisung durch Verschieben in einem gültigen Zustand mit einem undefinierten Wert.
3) Zerstört das aktuelle Ziel, falls vorhanden. *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 Member-Funktion oder eine leere
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 Auflösung von Überladungen teil, wenn der Konstruktor von move_only_function aus F an der Auflösung von Überladungen teilnimmt. Das Programm ist fehlerhaft oder hat undefiniertes Verhalten, wenn der ausgewählte Konstruktoraufruf fehlerhaft ist oder undefiniertes Verhalten aufweist.Inhalt |
[edit] Parameter
| Sonstiges | - | ein weiteres std::move_only_function-Objekt, von dem das Ziel verschoben werden soll |
| f | - | ein aufrufbares Objekt, mit dem das neue Ziel initialisiert werden soll |
[edit] Rückgabewert
*this
[edit] Hinweise
Es ist beabsichtigt, den Zuweisungsoperator durch Verschieben nicht als noexcept zu bezeichnen, um zukünftig Raum für eine zuweisungsfähige move_only_function zu lassen.
move_only_function kann von std::in_place_type<Fn> zugewiesen werden, vorausgesetzt, es kann aus diesem Argument konstruiert werden.
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Siehe auch
| weist ein neues Ziel zu (public member function of std::function<R(Args...)>) |