std:: inout_ptr
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
inout_ptr
|
|
Défini dans l'en-tête
<memory>
|
||
|
template
<
class
Pointer
=
void
,
class
Smart,
class
...
Args
>
auto inout_ptr ( Smart & s, Args && ... args ) ; |
(depuis C++23) | |
Retourne un
inout_ptr_t
avec des arguments de template déduits qui capture les arguments pour la réinitialisation par référence.
Le programme est mal formé si la construction de la valeur de retour (voir ci-dessous) est mal formée.
Table des matières |
Paramètres
| s | - | l'objet (généralement un pointeur intelligent) à adapter |
| args... | - | les arguments de réinitialisation à capturer |
Valeur de retour
std::
inout_ptr_t
<
Smart, P, Args
&&
>
(
s,
std::
forward
<
Args
>
(
args
)
...
)
, où
P
est
-
Pointer, siPointern'est pas un type void , sinon, - Smart :: pointer , s'il est valide et désigne un type, sinon,
- Smart :: element_type * , si Smart :: element_type est valide et désigne un type, sinon,
- std:: pointer_traits < Smart > :: element_type * .
Notes
Les utilisateurs peuvent spécifier l'argument template pour le paramètre template
Pointer
, afin d'interagir avec des fonctions externes qui prennent un
Pointer
*
.
Comme tous les arguments pour la réinitialisation sont capturés par référence, le
inout_ptr_t
retourné doit être un objet temporaire détruit à la fin de l'expression complète contenant l'appel à la fonction externe, afin d'éviter les références pendantes.
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_out_ptr
|
202106L
|
(C++23) |
std::out_ptr
,
std::inout_ptr
|
202311L
|
(C++26) |
version autonome
std::out_ptr
et
std::inout_ptr
|
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
(C++23)
|
crée un
out_ptr_t
avec un pointeur intelligent associé et des arguments de réinitialisation
(modèle de fonction) |
|
(C++14)
(C++20)
|
crée un pointeur unique qui gère un nouvel objet
(modèle de fonction) |
|
crée un pointeur partagé qui gère un nouvel objet
(modèle de fonction) |