Namespaces
Variants

std::inout_ptr_t<Smart,Pointer,Args...>:: inout_ptr_t

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
explicit inout_ptr_t ( Smart & sp, Args... args ) ;
(1) (depuis C++23)
inout_ptr_t ( const inout_ptr_t & ) = delete ;
(2) (depuis C++23)
1) Crée un inout_ptr_t . Adapte sp comme s'il le liait au membre Smart & , capture chaque argument t dans args... comme s'il initialisait le membre correspondant de type T dans Args... avec std:: forward < T > ( t ) , puis initialise le Pointer stocké avec sp si Smart est un type pointeur, sinon, l'initialise avec sp. get ( ) . sp. release ( ) peut être appelé si Smart n'est pas un type pointeur, auquel cas il ne sera pas rappelé dans le destructeur.
2) Le constructeur de copie est explicitement supprimé. inout_ptr_t n'est ni copiable ni déplaçable.

Table des matières

Paramètres

sp - l'objet (généralement un pointeur intelligent) à adapter
args... - les arguments utilisés pour la réinitialisation à capturer

Valeur de retour

(aucun)

Exceptions

Peut lever des exceptions définies par l'implémentation.

Notes

Si Smart n'est pas un type pointeur et que sp. release ( ) n'est pas appelé par le constructeur, il peut être appelé par le destructeur avant de réinitialiser sp .

Chaque argument dans args... est déplacé dans le inout_ptr_t créé s'il est d'un type objet, ou transféré dans le inout_ptr_t créé tel quel s'il est d'un type référence.

Le constructeur de inout_ptr_t est autorisé à lever des exceptions. Par exemple, lorsque sp est un pointeur intrusif avec un bloc de contrôle, l'allocation pour le nouveau bloc de contrôle peut être effectuée dans le constructeur plutôt que dans le destructeur.

Exemple