std::move_only_function::operator=
move_only_function& operator=( move_only_function&& other );
|
(1) | (depuis C++23) |
move_only_function& operator=( const move_only_function& ) = delete;
|
(2) | (depuis C++23) |
move_only_function& operator=( std::nullptr_t ) noexcept;
|
(3) | (depuis C++23) |
template< class F >
move_only_function& operator=( F&& f );
|
(4) | (depuis C++23) |
Assigne une nouvelle cible à std::move_only_function ou détruit sa cible.
other vers *this ou détruit la cible de *this (si elle existe) si other est vide, via auto(std::move(other)).swap(*this). other est dans un état valide avec une valeur non spécifiée après l'assignation par déplacement.std::move_only_function ne satisfait pas CopyAssignable.*this est vide après l'appel.*this sur l'appelable f, ou détruit la cible actuelle si f est un pointeur de fonction nul, un pointeur nul de fonction membre, ou un std::move_only_function vide, comme par exécution de move_only_function(std::forward<F>(f)).swap(*this);. Cette surcharge participe à la résolution de surcharge seulement si le constructeur de move_only_function depuis F participe à la résolution de surcharge. Le programme est mal formé ou a un comportement indéfini si l'appel au constructeur sélectionné est mal formé ou a un comportement indéfini.Paramètres
| other | - |
un autre objet
std::move_only_function
pour déplacer la cible de
|
| f | - | un objet appelable pour initialiser la nouvelle cible avec |
Valeur de retour
* this
Notes
Il est intentionnel de ne pas exiger que l'opérateur d'affectation par déplacement soit
noexcept
pour laisser la place à un
move_only_function
sensible à l'allocateur dans le futur.
move_only_function
peut être assigné à partir de
std::
in_place_type
<
Fn
>
s'il peut être construit à partir de cet argument.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
assigne une nouvelle cible
(fonction membre publique de
std::function<R(Args...)>
)
|