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

1) Déplace la cible de 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 se trouve dans un état valide avec une valeur non spécifiée après l'affectation par déplacement.
2) L'opérateur d'affectation par copie est supprimé. std::move_only_function ne satisfait pas CopyAssignable .
3) Détruit la cible actuelle si elle existe. * this est vide après l'appel.
4) Définit la cible de * this comme étant l'objet appelable f , ou détruit la cible actuelle si f est un pointeur de fonction nul, un pointeur nul vers une fonction membre, ou un std::move_only_function vide, comme en exécutant move_only_function ( std:: forward < F > ( f ) ) . swap ( * this ) ; . Cette surcharge participe à la résolution de surcharge uniquement si le constructeur de move_only_function à partir de F participe à la résolution de surcharge. Le programme est mal formé ou a un comportement indéfini si l'appel du constructeur sélectionné est mal formé ou a un comportement indéfini.

Table des matières

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

Voir aussi

assigne une nouvelle cible
(fonction membre publique de std::function<R(Args...)> )