std::move_only_function::operator=
Von de.cppreference.net
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.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
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
weist ein neues Ziel zu
(öffentliche Elementfunktion von
std::function<R(Args...)>
)
|