Namespaces
Variants

std::move_only_function::operator=

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
Objetos función
Invocación de funciones
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de operadores transparentes
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Antiguos adaptadores y enlazadores
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)  
(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta C++20*)
(hasta C++17*)(hasta C++17*)
(hasta C++17*)(hasta C++17*)

(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta C++20*)
 
 
move_only_function& operator=( move_only_function&& other );
(1) (desde C++23)
move_only_function& operator=( const move_only_function& ) = delete;
(2) (desde C++23)
move_only_function& operator=( std::nullptr_t ) noexcept;
(3) (desde C++23)
template< class F >
move_only_function& operator=( F&& f );
(4) (desde C++23)

Asigna un nuevo destino a std::move_only_function o destruye su destino.

1) Mueve el destino de other a *this o destruye el destino de *this (si existe) si other está vacío, mediante auto(std::move(other)).swap(*this). other está en un estado válido con un valor no especificado después de la asignación por movimiento.
2) El operador de asignación por copia está eliminado. std::move_only_function no satisface CopyAssignable.
3) Destruye el destino actual si existe. *this queda vacío después de la llamada.
4) Establece el destino de *this al invocable f, o destruye el destino actual si f es un puntero a función nulo, un puntero nulo a función miembro, o un std::move_only_function vacío, como si se ejecutara move_only_function(std::forward<F>(f)).swap(*this);. Esta sobrecarga participa en la resolución de sobrecarga solo si el constructor de move_only_function a partir de F participa en la resolución de sobrecarga. El programa está mal formado o tiene comportamiento indefinido si la llamada al constructor seleccionado está mal formada o tiene comportamiento indefinido.

Parámetros

otro - otro objeto std::move_only_function para mover el objetivo de
f - un objeto invocable para inicializar el nuevo objetivo con

Valor de retorno

* this

Notas

Es intencional no requerir que el operador de asignación por movimiento sea noexcept para dejar espacio para un move_only_function consciente del asignador en el futuro.

move_only_function puede asignarse desde std:: in_place_type < Fn > siempre que pueda construirse a partir de ese argumento.

Ejemplo

Véase también

asigna un nuevo destino
(función miembro pública de std::function<R(Args...)> )