Namespaces
Variants

std::move_only_function::operator=

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support du langage
Support des types (types de base, RTTI)
Macros de test des fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
Fonctions de comparaison d'entiers
(C++20)(C++20)(C++20)    
(C++20)
Swap et opérations de type
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Types de vocabulaire courants
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
Objets fonction
Invocation de fonction
(C++17)(C++23)
Objet fonction identité
(C++20)
Enveloppes d'opérateur 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)
(C++14)

Anciens binders et adaptateurs
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)  
(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++20*)
(jusqu'à C++20*)
(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)

(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++20*)
(jusqu'à 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 est dans un état valide avec une valeur non spécifiée après l'assignation par déplacement.
2) L'opérateur d'assignation 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 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

Voir aussi

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