Namespaces
Variants

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

From cppreference.net
function & operator = ( const function & other ) ;
(1) (TS de fundamentos de biblioteca)
function & operator = ( function && other ) ;
(2) (TS de fundamentos de biblioteca)
function & operator = ( std:: nullptr_t ) noexcept ;
(3) (TS de fundamentos de biblioteca)
template < class F >
function & operator = ( F && f ) ;
(4) (TS de fundamentos de biblioteca)
(5)
template < class F >
function & operator = ( std:: reference_wrapper < F > f ) ;
(TS de fundamentos de biblioteca)
template < class F >
function & operator = ( std:: reference_wrapper < F > f ) noexcept ;
(TS de fundamentos de biblioteca v3)

Asigna un nuevo objetivo a std::experimental::function . En la descripción a continuación, sea ALLOCATOR_OF ( f ) el asignador especificado en la construcción de f , o el valor de std:: experimental :: pmr :: get_default_resource ( ) (hasta library fundamentals TS v3) el valor construido por defecto de std:: pmr :: polymorphic_allocator <> (library fundamentals TS v3) en el momento de la construcción si no se especificó ningún asignador.

1) Asigna una copia del target de other , como si se ejecutara function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , other ) . swap ( * this ) ; .
2) Mueve el objetivo de other a * this , como si se ejecutara function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , std :: move ( other ) ) . swap ( * this ) ; . other queda en un estado válido con un valor no especificado.
3) Destruye el objetivo de * this . * this queda vacío después de la llamada. El recurso de memoria devuelto por get_memory_resource() después de la asignación es equivalente al recurso de memoria antes de la asignación, pero la dirección puede cambiar.
4) Establece el objetivo de * this al invocable f , como si se ejecutara function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , 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 argumentos Args... y tipo de retorno R .
5) Establece el target de * this a una copia de f , como si ejecutara function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , f ) . swap ( * this ) ; .

Contenidos

Parámetros

otro - otro objeto std::experimental::function desde el cual copiar o mover
f - un invocable para inicializar el target con
Requisitos de tipo
-
F debe cumplir con los requisitos de Callable .

Valor de retorno

* this

Excepciones

1,2,4) Excepción lanzada en la asignación necesaria del almacenamiento o inicialización del destino de * this , si la hay.
5) (ninguno)

Notas

El operador de asignación de movimiento puede necesitar asignar almacenamiento si get_memory_resource ( ) ! = other. get_memory_resource ( ) (hasta library fundamentals TS v3) get_allocator ( ) ! = other. get_allocator ( ) (library fundamentals TS v3)