Espacios de nombres
Variantes
Acciones

std::function::operator=

De cppreference.com
< cpp‎ | utility‎ | functional‎ | function
 
 
Biblioteca de servicios
 
Objetos función
Envoltorios de funciones
(C++11)
(C++11)
Aplicación parcial de funciones
(C++20)
(C++11)
Invocación de funciones
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de referencias
(C++11)(C++11)
Envoltorios de operador 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)
Negadores
(C++17)
Buscadores
Comparadores restringidos
Vinculadores y adaptadores antiguos
(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)
 
 
function& operator=( const function& other );
(1) (desde C++11)
function& operator=( function&& other );
(2) (desde C++11)
function& operator=( std::nullptr_t ) noexcept;
(3) (desde C++11)
template< class F >
function& operator=( F&& f );
(4) (desde C++11)
template< class F >
function& operator=( std::reference_wrapper<F> f ) noexcept;
(5) (desde C++11)

Asigna un nuevo destino a std::function.

1) Asigna una copia del destino de other, como si se ejecutara function(other).swap(*this);
2) Mueve el destino of other to *this. other se encuentra en un estado válido con un valor no especificado.
3) Se deshace del destino actual. *this está vacío después de la llamada.
4) Establece el destino de *this en el invocable f, como si se ejecutara function(std::forward<F>(f)).swap(*this);. Este operador no participa en la resolución de sobrecarga a menos que f sea Callable para los tipos de argumento Args... y el tipo de retorno R.
5) Establece el destino de *this en una copia de f, como si se ejecutara function(f).swap(*this);.

Contenido

[editar] Parámetros

other - Otro objeto std::function del que copiar el destino.
f - Un invocable con el que inicializar el destino.
Requisitos de tipo
-
F debe satisfacer los requisitos de Callable.

[editar] Valor de retorno

*this.

[editar] Notas

Incluso antes de que se eliminara la compatibilidad con el asignador de std::function en C++17, estos operadores de asignación usan el asignador por defecto en lugar del asignador de *this o el asignador de other (véase Asunto LWG 2386).

[editar] Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 2132 C++11 La sobrecarga que toma un objeto Callable podría ser ambigua. Se restringió.
LWG 2401 C++11 No se requería que el operador de asignación de std::nullptr_t fuera noexcept. Se requirió.

[editar] Véase también

(C++23)
Reemplaza o destruye el objetivo.
(función miembro pública de std::move_only_function<R(Args...) cv ref noexcept(noex)>) [editar]
(eliminado en C++17)
Asigna un nuevo destino.
(función miembro pública) [editar]