std::inout_ptr_t<Smart,Pointer,Args...>:: inout_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
inout_ptr_t::inout_ptr_t
|
||||
| Non-member functions | ||||
|
explicit
inout_ptr_t
(
Smart
&
sp, Args...
args
)
;
|
(1) | (depuis C++23) |
|
inout_ptr_t
(
const
inout_ptr_t
&
)
=
delete
;
|
(2) | (depuis C++23) |
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.
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
|
Cette section est incomplète
Raison : aucun exemple |