Namespaces
Variants

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

From cppreference.net
function & operator = ( const function & other ) ;
(1) (spécifications techniques des bibliothèques fondamentales)
function & operator = ( function && other ) ;
(2) (spécifications techniques des bibliothèques fondamentales)
function & operator = ( std:: nullptr_t ) noexcept ;
(3) (spécifications techniques des bibliothèques fondamentales)
template < class F >
function & operator = ( F && f ) ;
(4) (spécifications techniques des bibliothèques fondamentales)
(5)
template < class F >
function & operator = ( std:: reference_wrapper < F > f ) ;
(spécifications techniques des bibliothèques fondamentales)
template < class F >
function & operator = ( std:: reference_wrapper < F > f ) noexcept ;
(spécifications techniques des bibliothèques fondamentales v3)

Attribue une nouvelle cible à std::experimental::function . Dans la description ci-dessous, soit ALLOCATOR_OF ( f ) l'allocateur spécifié lors de la construction de f , ou la valeur de std:: experimental :: pmr :: get_default_resource ( ) (jusqu'à la bibliothèque fundamentals TS v3) l'allocateur construit par défaut std:: pmr :: polymorphic_allocator <> au moment de la construction si aucun allocateur n'a été spécifié. (bibliothèque fundamentals TS v3)

1) Attribue une copie de target de other , comme en exécutant function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , other ) . swap ( * this ) ; .
2) Déplace la cible de other vers * this , comme en exécutant function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , std :: move ( other ) ) . swap ( * this ) ; . other se trouve dans un état valide avec une valeur non spécifiée.
3) Détruit la cible de * this . * this est vide après l'appel. La ressource mémoire retournée par get_memory_resource() après l'affectation est équivalente à la ressource mémoire avant l'affectation, mais l'adresse peut changer.
4) Définit la cible de * this comme étant l'objet appelable f , comme en exécutant function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , std:: forward < F > ( f ) ) . swap ( * this ) ; . Cet opérateur ne participe pas à la résolution de surcharge sauf si f est Callable pour les types d'arguments Args... et le type de retour R .
5) Définit la cible de * this comme une copie de f , comme en exécutant function ( std:: allocator_arg , ALLOCATOR_OF ( * this ) , f ) . swap ( * this ) ; .

Table des matières

Paramètres

other - autre objet std::experimental::function à copier ou déplacer
f - un appelable pour initialiser la cible
Exigences de type
-
F doit satisfaire aux exigences de Callable .

Valeur de retour

* this

Exceptions

1,2,4) Exception levée lors de l'allocation nécessaire du stockage ou de l'initialisation de la cible de * this , le cas échéant.
5) (aucun)

Notes

L'opérateur d'affectation par déplacement peut avoir besoin d'allouer du stockage si get_memory_resource ( ) ! = other. get_memory_resource ( ) (jusqu'à la bibliothèque fundamentals TS v3) get_allocator ( ) ! = other. get_allocator ( ) (bibliothèque fundamentals TS v3)