std::out_ptr_t<Smart,Pointer,Args...>:: ~out_ptr_t
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
out_ptr_t::~out_ptr_t
|
||||
| Non-member functions | ||||
|
~out_ptr_t
(
)
;
|
(depuis C++23) | |
Réinitialise l'objet adapté
Smart
par la valeur de l'objet modifié
Pointer
(ou l'objet
void
*
si
operator
void
**
(
)
a été appelé) et les arguments capturés.
Soit
-
sdésigne l'objetSmartadapté, -
args...désigne les arguments capturés, -
pdésigne la valeur duPointerstocké, ou static_cast < Pointer > ( * operator void ** ( ) ) si operator void ** a été appelé, -
SPest- 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 * , si std:: pointer_traits < Smart > :: element_type est valide et désigne un type, sinon,
-
Pointer.
Si s. reset ( static_cast < SP > ( p ) , std:: forward < Args > ( args ) ... ) est bien formé, le destructeur effectue
- if ( p ) s. reset ( static_cast < SP > ( p ) , std:: forward < Args > ( args ) ... ) ; ,
sinon, si std:: is_constructible_v < Smart, SP, Args... > est true , le destructeur effectue
- if ( p ) s = Smart ( static_cast < SP > ( p ) , std:: forward < Args > ( args ) ... ) ; ,
sinon, le programme est mal formé.
Notes
Si
Smart
est une spécialisation de
std::shared_ptr
, l'implémentation peut allouer le stockage pour le nouveau bloc de contrôle lors de la construction, afin de laisser les opérations non levantes au destructeur.
Les arguments capturés par valeur sont détruits après la réinitialisation.