std::experimental::function<R(Args...)>::operator=
Von cppreference.com
< cpp | experimental | function
| function& operator=( const function& other ); |
(1) | (library fundamentals TS) |
| function& operator=( function&& other ); |
(2) | (library fundamentals TS) |
| function& operator=( std::nullptr_t ) noexcept; |
(3) | (library fundamentals TS) |
| template< class F > function& operator=( F&& f ); |
(4) | (library fundamentals TS) |
| (5) | ||
template< class F > function& operator=( std::reference_wrapper<F> f ); |
(library fundamentals TS) | |
| template< class F > function& operator=( std::reference_wrapper<F> f ) noexcept; |
(library fundamentals TS v3) | |
Weist ein neues *Ziel* zu std::experimental::function. In der folgenden Beschreibung sei ALLOCATOR_OF(f) der Allokator, der bei der Konstruktion von f angegeben wurde, oder der Wert von std::experimental::pmr::get_default_resource()(bis library fundamentals TS v3)der Standardkonstruktionswert von std::pmr::polymorphic_allocator<>(library fundamentals TS v3) angegeben wurde, falls kein Allokator angegeben wurde.
1) Weist eine Kopie des *Ziels* 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 vom Speicherressource zurückgegebene Speicherressource von
get_memory_resource() nach der Zuweisung ist äquivalent zur Speicherressource vor der Zuweisung, aber die Adresse kann sich ändern.4) Setzt das *Ziel* 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 *Ziel* von *this auf eine Kopie von f, als ob durch Ausführung von function(std::allocator_arg, ALLOCATOR_OF(*this), f).swap(*this);.
Inhalt |
[bearbeiten] Parameter
| Sonstiges | - | ein anderes std::experimental::function-Objekt, von dem kopiert oder verschoben werden soll |
| f | - | ein aufrufbares Objekt, mit dem das *Ziel* initialisiert werden soll |
| Typanforderungen | ||
-F muss die Anforderungen an Callable erfüllen. | ||
[bearbeiten] Rückgabewert
*this
[bearbeiten] Ausnahmen
1,2,4) Ausnahme wird ausgelöst, wenn eine Speicherzuweisung oder die Initialisierung des Ziels von *this erforderlich ist, falls vorhanden.
5) (keine)
[bearbeiten] Anmerkungen
Der Move-Assignment-Operator muss möglicherweise Speicher zuweisen, wenn get_memory_resource() != other.get_memory_resource()(bis library fundamentals TS v3)get_allocator() != other.get_allocator()(library fundamentals TS v3)