Namespaces
Variants

std::move_only_function:: operator=

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until 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 objetivo de other a * this o destruye el objetivo de * this (si existe) si other está vacío, mediante auto ( std :: move ( other ) ) . swap ( * this ) . other queda en un estado válido con un valor no especificado después de la asignación de movimiento.
2) El operador de asignación de copia está eliminado. std::move_only_function no satisface CopyAssignable .
3) Destruye el objetivo actual si existe. * this está vacío después de la llamada.
4) Establece el objetivo de * this al invocable f , o destruye el objetivo actual si f es un puntero de 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 desde 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.

Contenidos

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...)> )