Namespaces
Variants

std::experimental::unique_resource<R, D>:: operator=

From cppreference.net
unique_resource & operator = ( unique_resource && other )
noexcept ( /*voir ci-dessous*/ ) ;
(bibliothèque fundamentals TS v3)

Opérateur d'affectation par déplacement. Remplace la ressource gérée et le suppresseur par ceux de other .

Formellement, soit RS le type du handle de ressource stockée :

  • Premièrement, appelle reset ( ) pour libérer la ressource actuellement possédée, le cas échéant.
  • Puis assigne le gestionnaire de ressource stocké et le suppresseur avec ceux de other . std::move est appliqué au gestionnaire de ressource stocké ou au suppresseur de other si std:: is_nothrow_move_assignable_v < RS > ou std:: is_nothrow_move_assignable_v < D > est true respectivement. L'assignation du gestionnaire de ressource stocké est exécutée en premier, sauf si std:: is_nothrow_move_assignable_v < D > est false et std:: is_nothrow_move_assignable_v < RS > est true .
  • Finalement, définit * this pour posséder la ressource si et seulement si other la possédait avant l'assignation, et other ne possède plus la ressource.

Si std:: is_nothrow_move_assignable_v < RS > est true , RS doit satisfaire aux exigences MoveAssignable ; sinon RS doit satisfaire aux exigences CopyAssignable . Si std:: is_nothrow_move_assignable_v < D > est true , D doit satisfaire aux exigences MoveAssignable ; sinon D doit satisfaire aux exigences CopyAssignable . Le non-respect de ces exigences entraîne un comportement indéfini.

Table des matières

Paramètres

autre - gestionnaire de ressource dont la propriété sera transférée

Valeur de retour

* this

Exceptions

Toute exception levée lors de la copie-assignation.

Notes

Si une copie d'un membre lève une exception, ce mécanisme laisse other intact et * this dans l'état libéré.

Exemple

Voir aussi

supprime ou remplace la ressource gérée
(fonction membre publique)
assigne le unique_ptr
(fonction membre publique de std::unique_ptr<T,Deleter> )