Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
 
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)