std::out_ptr_t<Smart,Pointer,Args...>:: out_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
out_ptr_t::out_ptr_t
|
||||
| Non-member functions | ||||
|
explicit
out_ptr_t
(
Smart
&
sp, Args...
args
)
;
|
(1) | (depuis C++23) |
|
out_ptr_t
(
const
out_ptr_t
&
)
=
delete
;
|
(2) | (depuis C++23) |
out_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 par défaut le
Pointer
stocké.
Appelle ensuite sp. reset ( ) si l'expression est bien formée ; sinon, appelle sp = Smart ( ) si std:: is_default_constructible_v < Smart > est true . Le programme est mal formé si les deux opérations de réinitialisation sont mal formées.
out_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
Après la construction, l'objet
Pointer
ou
void
*
pointé par la valeur de retour de l'une ou l'autre fonction de conversion est égal à
nullptr
.
Chaque argument dans
args...
est déplacé dans le
out_ptr_t
créé s'il est d'un type objet, ou transféré dans le
out_ptr_t
créé tel quel s'il est d'un type référence.
Le constructeur de
out_ptr_t
est autorisé à lever des exceptions. Par exemple, lorsque
sp
est un
std::shared_ptr
, 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 |